Compare commits

...

6 commits

18 changed files with 266 additions and 160 deletions

View file

@ -113,11 +113,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1712014858, "lastModified": 1717285511,
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -205,11 +205,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1712452624, "lastModified": 1717896375,
"narHash": "sha256-R35K+4krhK5B2fcV6W2HFe/uhXmP8YGTb35uZ+nDAxw=", "narHash": "sha256-qI8f1XSFo1X29+RSVmYo5hDAMKKULnpmIZbRl77u21A=",
"owner": "fufexan", "owner": "fufexan",
"repo": "nix-gaming", "repo": "nix-gaming",
"rev": "06314bbf8fedd83c7253442994a2f0c81d47988e", "rev": "6ed58348c20bab127555a3645e832591d2611f0c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -225,11 +225,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1712459390, "lastModified": 1717919703,
"narHash": "sha256-e12bNDottaGoBgd0AdH/bQvk854xunlWAdZwr/oHO1c=", "narHash": "sha256-4i/c31+dnpv6KdUA3BhbMDS9Lvg/CDin78caYJlq0bY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "4676d72d872459e1e3a248d049609f110c570e9a", "rev": "a157a81d0a4bc909b2b6666dd71909bcdc8cd0d6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -240,11 +240,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1712760404, "lastModified": 1717828156,
"narHash": "sha256-4zhaEW1nB+nGbCNMjOggWeY5nXs/H0Y71q0+h+jdxoU=", "narHash": "sha256-YvstO0lobf3JWQuAfZCLYRTROC2ZDEgtWeQtWbO49p4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "e1c4bac14beb8c409d0534382cf967171706b9d9", "rev": "057a7996d012f342a38a26261ee529cebb1755ef",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -263,11 +263,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1710449465, "lastModified": 1717515088,
"narHash": "sha256-2orO8nfplp6uQJBFqKkj1iyNMC6TysmwbWwbb4osTag=", "narHash": "sha256-nWOLpPA7+k7V1OjXTuxdsVd5jeeI0b13Di57wvnqkic=",
"owner": "simple-nixos-mailserver", "owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver", "repo": "nixos-mailserver",
"rev": "79c8cfcd5873a85559da6201b116fb38b490d030", "rev": "0d51a32e4799d081f260eb4db37145f5f4ee7456",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@ -298,35 +298,46 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1717670519, "lastModified": 1717922286,
"narHash": "sha256-4p8B6Iv55BUG+d4ZJRUBhx70yWnqYlJ2EGSxx3dk4nc=", "narHash": "sha256-RsV7rNWYceglPDVgVukwYfoYK2fuAgyvyvSE/Gyah+Y=",
"owner": "chayleaf", "owner": "chayleaf",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "411826c44e54583b30f767d76489e37dabf1707c", "rev": "47c40a60d0952cd6b86c171898870142b0747602",
"type": "github"
},
"original": {
"owner": "chayleaf",
"ref": "ci",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-kernel": {
"locked": {
"lastModified": 1712608508,
"narHash": "sha256-vMZ5603yU0wxgyQeHJryOI+O61yrX2AHwY6LOFyV1gM=",
"owner": "chayleaf",
"repo": "nixpkgs",
"rev": "4cba8b53da471aea2ab2b0c1f30a81e7c451f4b6",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "chayleaf", "owner": "chayleaf",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "4cba8b53da471aea2ab2b0c1f30a81e7c451f4b6",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"dir": "lib", "lastModified": 1717284937,
"lastModified": 1711703276, "narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=",
"narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=", "type": "tarball",
"owner": "NixOS", "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
"repo": "nixpkgs",
"rev": "d8fe5e6c92d0d190646fb9f1056741a229980089",
"type": "github"
}, },
"original": { "original": {
"dir": "lib", "type": "tarball",
"owner": "NixOS", "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
} }
}, },
"notlua": { "notlua": {
@ -336,11 +347,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1697413333, "lastModified": 1718058511,
"narHash": "sha256-2nmu/+QhR/VhxFFr54l0Ok/yVhLCrrYVuTgeD4LHEhE=", "narHash": "sha256-OjkGD9v9hfgIkToZXoXFzvBlXQg5Dp4+dmpZUATGYdA=",
"owner": "chayleaf", "owner": "chayleaf",
"repo": "notlua", "repo": "notlua",
"rev": "ef7cdb7a883fe87238c9fff13bc14ad1fd06f4ba", "rev": "a8e09538d284f35aad88e1adc9c044f4163eadf8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -371,11 +382,11 @@
}, },
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1712785619, "lastModified": 1717921035,
"narHash": "sha256-1RCStMZUGqus3DAl7jivw7XM5jpbecfqWtA1r45Ts90=", "narHash": "sha256-TxZv3M3M2EromaaJCbRKWWjrnk9DSeJ139K4DkJlhAg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "a0471f14e0499a66898fc1c7d5aff259a9fa58b9", "rev": "02f829e2432d4204370445272084ce22761ba4bc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -397,6 +408,7 @@
"nixos-mailserver": "nixos-mailserver", "nixos-mailserver": "nixos-mailserver",
"nixos-router": "nixos-router", "nixos-router": "nixos-router",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-kernel": "nixpkgs-kernel",
"notlua": "notlua", "notlua": "notlua",
"notnft": "notnft", "notnft": "notnft",
"nur": "nur", "nur": "nur",
@ -411,11 +423,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1712715149, "lastModified": 1717899611,
"narHash": "sha256-uOx7GaLV+5hekAYtm/CBr627Pi7+d1Yh70hwKmVjYYo=", "narHash": "sha256-9Z95F8lnY/5sOf7Z4IdABKz1ulB0ueNrZU864rQj280=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "9ef1eca23bee5fb8080863909af3802130b2ee57", "rev": "1f536afad5c18ea4ae6bb592c3fef038e1e33568",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -4,7 +4,8 @@
inputs = { inputs = {
#nixpkgs.url = "github:NixOS/nixpkgs/3dc2b4f8166f744c3b3e9ff8224e7c5d74a5424f"; #nixpkgs.url = "github:NixOS/nixpkgs/3dc2b4f8166f744c3b3e9ff8224e7c5d74a5424f";
# nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; # nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs.url = "github:chayleaf/nixpkgs"; nixpkgs-kernel.url = "github:chayleaf/nixpkgs/4cba8b53da471aea2ab2b0c1f30a81e7c451f4b6";
nixpkgs.url = "github:chayleaf/nixpkgs/ci";
nixos-hardware.url = "github:NixOS/nixos-hardware"; nixos-hardware.url = "github:NixOS/nixos-hardware";
nix-index-database = { nix-index-database = {
url = "github:nix-community/nix-index-database"; url = "github:nix-community/nix-index-database";
@ -107,9 +108,12 @@
}); });
# this is actual config, it gets processed below # this is actual config, it gets processed below
config = let config = let
mkBpiR3 = args: config: config // { mkBpiR3 = args: config: config // rec {
system = "aarch64-linux"; system = "aarch64-linux";
modules = config.modules or [ ] ++ [ (import ./system/devices/bpi-r3-router.nix args) ]; modules = config.modules or [ ] ++ [
({ _module.args.pkgs-kernel = import inputs.nixpkgs-kernel { inherit system; overlays = [ overlay ]; }; })
(import ./system/devices/bpi-r3-router.nix args)
];
}; };
routerConfig = rec { routerConfig = rec {
system = "aarch64-linux"; system = "aarch64-linux";

View file

@ -42,7 +42,7 @@
home.stateVersion = "22.11"; home.stateVersion = "22.11";
home.username = "user"; home.username = "user";
home.homeDirectory = "/home/user"; home.homeDirectory = "/home/user";
terminals = [ "kitty" ]; terminals = [ "alacritty" "foot" "kitty" ];
# xsession.windowManager.i3.enable = true; # xsession.windowManager.i3.enable = true;
wayland.windowManager.sway.enable = true; wayland.windowManager.sway.enable = true;
services.kdeconnect.enable = true; services.kdeconnect.enable = true;
@ -58,13 +58,13 @@
anki-bin anki-bin
(gimp.overrideAttrs (old: { doCheck = false; })) krita blender-hip (gimp.overrideAttrs (old: { doCheck = false; })) krita blender-hip
kdenlive glaxnimate mediainfo kdenlive glaxnimate mediainfo
ghidra (cutter.withPlugins (p: with p; [ sigdb rz-ghidra ])) ghidra # (cutter.withPlugins (p: with p; [ sigdb rz-ghidra ]))
openrgb piper openrgb piper
steam-run steam steam-run steam
# faf-client # faf-client
(osu-lazer-bin.override { #(osu-lazer-bin.override {
command_prefix = "env SDL_VIDEODRIVER=wayland ${obs-studio-plugins.obs-vkcapture}/bin/obs-gamecapture"; #command_prefix = "env SDL_VIDEODRIVER=wayland ${obs-studio-plugins.obs-vkcapture}/bin/obs-gamecapture";
}) #})
taisei taisei
techmino techmino
(wrapOBS { (wrapOBS {

View file

@ -190,7 +190,7 @@
text/html; ${pkgs.w3m}/bin/w3m -dump -o document_charset=%{charset} -o display_link_number=1 '%s'; nametemplate=%s.html; copiousoutput text/html; ${pkgs.w3m}/bin/w3m -dump -o document_charset=%{charset} -o display_link_number=1 '%s'; nametemplate=%s.html; copiousoutput
''; '';
home.file.".cache/nix-index/files".source = assert config.xdg.cacheHome == "${config.home.homeDirectory}/.cache"; inputs.nix-index-database.legacyPackages.${pkgs.system}.database; home.file.".cache/nix-index/files".source = assert config.xdg.cacheHome == "${config.home.homeDirectory}/.cache"; inputs.nix-index-database.packages.${pkgs.system}.nix-index-database;
systemd.user.tmpfiles.rules = builtins.map (file: "r! \"/home/${config.home.username}/${file}\"") [ systemd.user.tmpfiles.rules = builtins.map (file: "r! \"/home/${config.home.username}/${file}\"") [
".local/share/clipman.json" ".local/share/clipman.json"

View file

@ -80,6 +80,7 @@
ripgrep ripgrep
(python3.withPackages (p: with p; [ (python3.withPackages (p: with p; [
python-lsp-server python-lsp-server
python-lsp-black
pylsp-mypy pylsp-mypy
python-lsp-server.optional-dependencies.pyflakes python-lsp-server.optional-dependencies.pyflakes
python-lsp-server.optional-dependencies.mccabe python-lsp-server.optional-dependencies.mccabe
@ -433,6 +434,7 @@
pylsp = { pylsp = {
settings = { settings = {
pylsp.plugins.pylsp_mypy.enabled = true; pylsp.plugins.pylsp_mypy.enabled = true;
pylsp.plugins.black.enabled = true;
}; };
}; };
svelte = { }; svelte = { };

View file

@ -22,24 +22,24 @@
"pinned": false, "pinned": false,
"src": { "src": {
"name": null, "name": null,
"sha256": "sha256-wCIffeayOy3kEwmIKB7e+NrliuSpKXoVYC334fxVB3U=", "sha256": "sha256-4jh3mDm1GpR9tQBkzx9BRsJ5awNrBgRzylyRB04LqIE=",
"type": "url", "type": "url",
"url": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton9-1/GE-Proton9-1.tar.gz" "url": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton9-7/GE-Proton9-7.tar.gz"
}, },
"version": "GE-Proton9-1" "version": "GE-Proton9-7"
}, },
"searxng": { "searxng": {
"cargoLocks": null, "cargoLocks": null,
"date": "2024-03-15", "date": "2024-06-07",
"extract": null, "extract": null,
"name": "searxng", "name": "searxng",
"passthru": null, "passthru": null,
"pinned": false, "pinned": false,
"src": { "src": {
"sha256": "sha256-BqVnp/lByAMr/LOCGkuXCYsomu9hRBGXK3DbBQX10TA=", "sha256": "sha256-WWbpfZZei3kOdN607/J2M1oSzbPZKaLbsU5gO2kIc90=",
"type": "tarball", "type": "tarball",
"url": "https://github.com/searxng/searxng/archive/e2af3e49702f6fb40e1614f826544dc3b03bca2f.tar.gz" "url": "https://github.com/searxng/searxng/archive/f5eb56b63f250c7804e5e1cf4426e550bc933906.tar.gz"
}, },
"version": "e2af3e49702f6fb40e1614f826544dc3b03bca2f" "version": "f5eb56b63f250c7804e5e1cf4426e550bc933906"
} }
} }

View file

@ -12,19 +12,19 @@
}; };
proton-ge = { proton-ge = {
pname = "proton-ge"; pname = "proton-ge";
version = "GE-Proton9-1"; version = "GE-Proton9-7";
src = fetchurl { src = fetchurl {
url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton9-1/GE-Proton9-1.tar.gz"; url = "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton9-7/GE-Proton9-7.tar.gz";
sha256 = "sha256-wCIffeayOy3kEwmIKB7e+NrliuSpKXoVYC334fxVB3U="; sha256 = "sha256-4jh3mDm1GpR9tQBkzx9BRsJ5awNrBgRzylyRB04LqIE=";
}; };
}; };
searxng = { searxng = {
pname = "searxng"; pname = "searxng";
version = "e2af3e49702f6fb40e1614f826544dc3b03bca2f"; version = "f5eb56b63f250c7804e5e1cf4426e550bc933906";
src = fetchTarball { src = fetchTarball {
url = "https://github.com/searxng/searxng/archive/e2af3e49702f6fb40e1614f826544dc3b03bca2f.tar.gz"; url = "https://github.com/searxng/searxng/archive/f5eb56b63f250c7804e5e1cf4426e550bc933906.tar.gz";
sha256 = "sha256-BqVnp/lByAMr/LOCGkuXCYsomu9hRBGXK3DbBQX10TA="; sha256 = "sha256-WWbpfZZei3kOdN607/J2M1oSzbPZKaLbsU5gO2kIc90=";
}; };
date = "2024-03-15"; date = "2024-06-07";
}; };
} }

View file

@ -20,66 +20,7 @@ in
{ {
inherit (inputs.nix-gaming.packages.${pkgs.system}) faf-client osu-lazer-bin; inherit (inputs.nix-gaming.packages.${pkgs.system}) faf-client osu-lazer-bin;
inherit nixForNixPlugins; matrix-appservice-discord = pkgs.callPackage ./matrix-appservice-discord { inherit (pkgs) matrix-appservice-discord; };
nix = nixForNixPlugins;
nixVersions = pkgs.nixVersions // {
stable = nixForNixPlugins;
unstable = nixForNixPlugins;
};
matrix-appservice-discord = pkgs.matrix-appservice-discord.overrideAttrs (old: {
patches = (old.patches or []) ++ [
(pkgs.fetchpatch {
url = "https://github.com/matrix-org/matrix-appservice-discord/commit/eb989fa710e8db4ebc8f2ce36c6679ee6cbc1a44.patch";
hash = "sha256-GPeFDw3XujqXHJveHSsBHwHuG51vad50p55FX1Esq58=";
})
(pkgs.fetchpatch {
url = "https://github.com/matrix-org/matrix-appservice-discord/commit/a4cd5e3a6a2d544adac2a263e164671c8a9009d9.patch";
hash = "sha256-qQJ4V6/Ns2Msu8+X8JoEycuQ2Jc90TXulsuLLmPecGU=";
})
(pkgs.fetchpatch {
url = "https://github.com/matrix-org/matrix-appservice-discord/commit/fc850ba2473973e28858449ec4020380470d78b2.patch";
hash = "sha256-Lq0FWmR08wLsoq4APRTokZzb7U2po98pgyxH4UR/9/M=";
})
(pkgs.fetchpatch {
url = "https://github.com/matrix-org/matrix-appservice-discord/commit/7f3d41d86ebce057cfdc82ce3aaab64b533e8f0b.patch";
hash = "sha256-HmQ1KASZS+a78fe5yOCVXAnXLRmJUglzc6OxNJazOSk=";
})
];
});
# Various patches to change Nix version of existing packages so they don't error out because of nix-plugins in nix.conf
/*nix-plugins = (pkgs.nix-plugins.override { nix = nixForNixPlugins; }).overrideAttrs (old: {
version = "13.0.0";
patches = [
(pkgs.fetchpatch {
# pull 16
url = "https://github.com/chayleaf/nix-plugins/commit/8f945cadad7f2e60e8f308b2f498ec5e16961ede.patch";
hash = "sha256-pOogMtjXYkSDtXW12TmBpGr/plnizJtud2nP3q2UldQ=";
})
];
});*/
harmonia = (pkgs.harmonia.override { nixVersions.nix_2_21 = nixForNixPlugins; }).overrideAttrs (old: rec {
version = "0.7.3";
src = old.src.override {
rev = "refs/tags/${old.pname}-v${version}";
hash = "sha256-XtnK54HvZMKZGSCrVD0FO5PQLMo3Vkj8ezUlsfqStq0=";
};
cargoDeps = pkgs.rustPlatform.importCargoLock { lockFile = "${src}/Cargo.lock"; };
});
nix-init = pkgs.nix-init.override { nix = nixForNixPlugins; };
nix-serve = pkgs.nix-serve.override { nix = nixForNixPlugins; };
nix-serve-ng = pkgs.nix-serve-ng.override { nix = nixForNixPlugins; };
hydra_unstable = (pkgs.hydra_unstable.override {
nix = nixForNixPlugins;
}).overrideAttrs (old: {
version = "2023-12-01";
# who cares about tests amirite
doCheck = false;
src = old.src.override {
rev = "4d1c8505120961f10897b8fe9a070d4e193c9a13";
hash = "sha256-vXTuE83GL15mgZHegbllVAsVdDFcWWSayPfZxTJN5ys=";
};
});
nurl = pkgs.nurl.override { nix = nixForNixPlugins; };
buffyboard = pkgs.callPackage ./buffyboard { }; buffyboard = pkgs.callPackage ./buffyboard { };
clang-tools_latest = pkgs.clang-tools_16; clang-tools_latest = pkgs.clang-tools_16;
@ -99,9 +40,11 @@ in
sha256 = "sha256-6vYbNmNJBCoU23nVculac24tHqH7F4AZVftIjL93WJU="; sha256 = "sha256-6vYbNmNJBCoU23nVculac24tHqH7F4AZVftIjL93WJU=";
fetchSubmodules = true; fetchSubmodules = true;
}; };
patches = [ ];
}); });
kvmfrOverlay = kvmfr: kvmfr.overrideAttrs (old: { kvmfrOverlay = kvmfr: kvmfr.overrideAttrs (old: {
inherit (pkgs'.looking-glass-client) version src; inherit (pkgs'.looking-glass-client) version src;
patches = [ ./looking-glass.patch ];
}); });
mobile-config-firefox = callPackage ./mobile-config-firefox { }; mobile-config-firefox = callPackage ./mobile-config-firefox { };
osu-wine = callPackage ./osu-wine { }; osu-wine = callPackage ./osu-wine { };
@ -152,6 +95,48 @@ in
stdenv = pkgs'.ccacheStdenv; stdenv = pkgs'.ccacheStdenv;
}; };
} }
// lib.optionalAttrs isOverlay {
inherit nixForNixPlugins;
nix = nixForNixPlugins;
nixVersions = pkgs.nixVersions // {
stable = nixForNixPlugins;
unstable = nixForNixPlugins;
};
# Various patches to change Nix version of existing packages so they don't error out because of nix-plugins in nix.conf
/*nix-plugins = (pkgs.nix-plugins.override { nix = nixForNixPlugins; }).overrideAttrs (old: {
version = "13.0.0";
patches = [
(pkgs.fetchpatch {
# pull 16
url = "https://github.com/chayleaf/nix-plugins/commit/8f945cadad7f2e60e8f308b2f498ec5e16961ede.patch";
hash = "sha256-pOogMtjXYkSDtXW12TmBpGr/plnizJtud2nP3q2UldQ=";
})
];
});*/
harmonia = (pkgs.harmonia.override { nixVersions.nix_2_21 = nixForNixPlugins; }).overrideAttrs (old: rec {
version = "0.7.3";
src = old.src.override {
rev = "refs/tags/${old.pname}-v${version}";
hash = "sha256-XtnK54HvZMKZGSCrVD0FO5PQLMo3Vkj8ezUlsfqStq0=";
};
cargoDeps = pkgs.rustPlatform.importCargoLock { lockFile = "${src}/Cargo.lock"; };
});
nix-init = pkgs.nix-init.override { nix = nixForNixPlugins; };
nix-serve = pkgs.nix-serve.override { nix = nixForNixPlugins; };
nix-serve-ng = pkgs.nix-serve-ng.override { nix = nixForNixPlugins; };
hydra_unstable = (pkgs.hydra_unstable.override {
nix = nixForNixPlugins;
}).overrideAttrs (old: {
version = "2023-12-01";
# who cares about tests amirite
doCheck = false;
src = old.src.override {
rev = "4d1c8505120961f10897b8fe9a070d4e193c9a13";
hash = "sha256-vXTuE83GL15mgZHegbllVAsVdDFcWWSayPfZxTJN5ys=";
};
});
nurl = pkgs.nurl.override { nix = nixForNixPlugins; };
}
// import ./ccache.nix { inherit pkgs pkgs' lib sources; } // import ./ccache.nix { inherit pkgs pkgs' lib sources; }
// import ../system/hardware/bpi-r3/pkgs.nix { inherit pkgs pkgs' lib sources; } // import ../system/hardware/bpi-r3/pkgs.nix { inherit pkgs pkgs' lib sources; }
// import ../system/hardware/oneplus-enchilada/pkgs.nix { inherit inputs pkgs pkgs' lib sources; } // import ../system/hardware/oneplus-enchilada/pkgs.nix { inherit inputs pkgs pkgs' lib sources; }

View file

@ -2,10 +2,10 @@
{ {
"fastforwardteam" = buildFirefoxXpiAddon { "fastforwardteam" = buildFirefoxXpiAddon {
pname = "fastforwardteam"; pname = "fastforwardteam";
version = "0.2334"; version = "0.2383";
addonId = "addon@fastforward.team"; addonId = "addon@fastforward.team";
url = "https://addons.mozilla.org/firefox/downloads/file/4177101/fastforwardteam-0.2334.xpi"; url = "https://addons.mozilla.org/firefox/downloads/file/4258067/fastforwardteam-0.2383.xpi";
sha256 = "d790219622469f08316b41c0d01abf2b584a37fa87b45666a74bd30cffb95ed0"; sha256 = "eec6328df3df1afe2cb6a331f6907669d804235551ea766d48655f8f831caf28";
meta = with lib; meta = with lib;
{ {
homepage = "https://fastforward.team"; homepage = "https://fastforward.team";
@ -23,10 +23,10 @@
}; };
"rikaitan" = buildFirefoxXpiAddon { "rikaitan" = buildFirefoxXpiAddon {
pname = "rikaitan"; pname = "rikaitan";
version = "24.3.7.1"; version = "24.5.21.0";
addonId = "tatsu@autistici.org"; addonId = "tatsu@autistici.org";
url = "https://addons.mozilla.org/firefox/downloads/file/4246908/rikaitan-24.3.7.1.xpi"; url = "https://addons.mozilla.org/firefox/downloads/file/4291845/rikaitan-24.5.21.0.xpi";
sha256 = "db849343b029b2f1b510cc66032157502e3fe9e6168072d27e8aad9867b6ec17"; sha256 = "a2a94d88af04023f14daaafda1f6ca7a7197f2ab92ada08ee2e9e4292d57a391";
meta = with lib; meta = with lib;
{ {
homepage = "https://github.com/Ajatt-Tools/rikaitan"; homepage = "https://github.com/Ajatt-Tools/rikaitan";

24
pkgs/looking-glass.patch Normal file
View file

@ -0,0 +1,24 @@
diff --git a/kvmfr.c b/kvmfr.c
index 121aae5b..4c386f98 100644
--- a/kvmfr.c
+++ b/kvmfr.c
@@ -30,6 +30,7 @@
#include <linux/highmem.h>
#include <linux/memremap.h>
#include <linux/version.h>
+#include <linux/vmalloc.h>
#include <asm/io.h>
@@ -539,7 +540,11 @@ static int __init kvmfr_module_init(void)
if (kvmfr->major < 0)
goto out_free;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0)
kvmfr->pClass = class_create(THIS_MODULE, KVMFR_DEV_NAME);
+#else
+ kvmfr->pClass = class_create(KVMFR_DEV_NAME);
+#endif
if (IS_ERR(kvmfr->pClass))
goto out_unreg;

View file

@ -0,0 +1,47 @@
{ matrix-appservice-discord, fetchpatch }:
matrix-appservice-discord.overrideAttrs (old: {
doCheck = false;
patches = (old.patches or []) ++ [
# https://github.com/matrix-org/matrix-appservice-discord/pull/917
(fetchpatch {
url = "https://github.com/matrix-org/matrix-appservice-discord/commit/eb989fa710e8db4ebc8f2ce36c6679ee6cbc1a44.patch";
hash = "sha256-GPeFDw3XujqXHJveHSsBHwHuG51vad50p55FX1Esq58=";
name = "set-missing-config-defaults.patch";
})
# https://github.com/matrix-org/matrix-appservice-discord/pull/918
(fetchpatch {
url = "https://github.com/matrix-org/matrix-appservice-discord/commit/a4cd5e3a6a2d544adac2a263e164671c8a9009d9.patch";
hash = "sha256-qQJ4V6/Ns2Msu8+X8JoEycuQ2Jc90TXulsuLLmPecGU=";
name = "dont-send-filenames.patch";
})
# https://github.com/matrix-org/matrix-appservice-discord/pull/878/
(fetchpatch {
url = "https://github.com/matrix-org/matrix-appservice-discord/commit/fc850ba2473973e28858449ec4020380470d78b2.patch";
hash = "sha256-Lq0FWmR08wLsoq4APRTokZzb7U2po98pgyxH4UR/9/M=";
name = "bridge-discord-replies-1.patch";
})
(fetchpatch {
url = "https://github.com/matrix-org/matrix-appservice-discord/commit/86388901fa44d5d0f9d3dec8727c18cc00d613e7.patch";
hash = "sha256-XcLbKJPmFZElzwU4YS8Md8dNLajddJPKmau0U65bp00=";
name = "bridge-discord-replies-2.patch";
})
(fetchpatch {
url = "https://github.com/matrix-org/matrix-appservice-discord/commit/8299c626188e676723a708e49635d2c4afa26ffa.patch";
hash = "sha256-ZfUwpJ21/m3QbktbxxHyO8Lcl/IuDhaSKQRXBEPeJBo=";
name = "bridge-discord-replies-3.patch";
})
# https://github.com/matrix-org/matrix-appservice-discord/pull/819
(fetchpatch {
url = "https://github.com/matrix-org/matrix-appservice-discord/commit/1c3223387aaf78ba5637f58ca57bd8206ad0446c.patch";
hash = "sha256-3hxyqjI9F4j/XBq/59b7c2PorYRN2mR4XZJjpygs9dI=";
name = "bridge-matrix-edits-1.patch";
})
(fetchpatch {
url = "https://github.com/matrix-org/matrix-appservice-discord/commit/f8e9449908b332d97f11932fb835552adca0aa5b.patch";
hash = "sha256-1qb4Zah1XKzxTpVJqOOqz+TiXMFmnsIMZeuqJQdqSIA=";
name = "bridge-matrix-edits-2.patch";
})
./disable-attachment-forwarding-to-matrix.patch
];
})

View file

@ -0,0 +1,25 @@
diff --git a/src/bot.ts b/src/bot.ts
index fc575cd..b0b2624 100644
--- a/src/bot.ts
+++ b/src/bot.ts
@@ -1042,7 +1042,7 @@ export class DiscordBot {
try {
const intent = this.GetIntentFromDiscordMember(msg.author, msg.webhookID);
// Check Attachements
- if (!editEventId) {
+ if (false && !editEventId) {
// on discord you can't edit in images, you can only edit text
// so it is safe to only check image upload stuff if we don't have
// an edit
@@ -1093,6 +1093,11 @@ export class DiscordBot {
});
});
}
+ for (let attachment of msg.attachments.array()) {
+ // this will be a temporary URL, which I don't care about, it's fine
+ if (!msg.content) msg.content = "";
+ msg.content += "\n" + attachment.url;
+ }
if (!msg.content && msg.embeds.length === 0) {
return;
}

View file

@ -1,4 +1,5 @@
{ pkgs { pkgs
, pkgs-kernel
, config , config
, ... }: , ... }:
@ -8,7 +9,7 @@
generic-extlinux-compatible.enable = true; generic-extlinux-compatible.enable = true;
}; };
boot.kernelPackages = pkgs.linuxPackagesFor (pkgs.buildLinuxWithCcache pkgs.linux_bpiR3); boot.kernelPackages = pkgs-kernel.linuxPackagesFor (pkgs-kernel.buildLinuxWithCcache pkgs-kernel.linux_bpiR3);
hardware.deviceTree.enable = true; hardware.deviceTree.enable = true;
hardware.deviceTree.filter = "mt7986a-bananapi-bpi-r3.dtb"; hardware.deviceTree.filter = "mt7986a-bananapi-bpi-r3.dtb";

View file

@ -206,7 +206,7 @@ IF_UNSPEC = -1
PROTO_UNSPEC = -1 PROTO_UNSPEC = -1
Domains = dict[str, dict] Domains = dict[str, "Domains | bool"]
class NftQuery(TypedDict): class NftQuery(TypedDict):
@ -591,15 +591,22 @@ def add_ips(set: str, ipv6: bool, ips: list[str], flush: bool = False):
traceback.print_exc(file=f) traceback.print_exc(file=f)
def add_split_domain(domains: Domains, split_domain): def add_split_domain(domains: Domains, split_domain: list[str]):
domains1: dict = domains if not split_domain:
while split_domain: return
split_domain = split_domain[:]
while len(split_domain) > 1:
key = split_domain[-1] key = split_domain[-1]
if key not in domains1.keys(): if key in domains.keys():
domains1[key] = {} domains1 = domains[key]
domains = domains1[key] if isinstance(domains1, bool):
split_domain = split_domain[:-1] return
domains1["__IsTrue__"] = True else:
domains1 = {}
domains[key] = domains1
domains = domains1
split_domain.pop()
domains[split_domain[-1]] = True
def build_domains(domains: list[str]) -> Domains: def build_domains(domains: list[str]) -> Domains:
@ -611,20 +618,14 @@ def build_domains(domains: list[str]) -> Domains:
def lookup_domain(domains: Domains, domain: str) -> bool: def lookup_domain(domains: Domains, domain: str) -> bool:
split_domain: list[str] = domain.split(".") split_domain: list[str] = domain.split(".")
domains1: dict = domains
while len(split_domain): while len(split_domain):
key: str = split_domain[-1] key: str = split_domain[-1]
split_domain = split_domain[:-1] split_domain = split_domain[:-1]
star: Optional[dict] = domains1.get("*", None) domains1 = domains.get(key, False)
if star is not None and star.get("__IsTrue__", False): if isinstance(domains1, bool):
return True return domains1
domains1 = domains1.get(key, None) domains = domains1
if domains1 is None: return False
return False
star = domains.get("*", None)
if star is not None and star.get("__IsTrue__", False):
return True
return bool(domains.get("__IsTrue__", False))
class DpiInfo(TypedDict): class DpiInfo(TypedDict):
@ -827,7 +828,7 @@ def operate(id, event, qstate, qdata) -> bool:
n4 = n3.removesuffix(f".{k}") n4 = n3.removesuffix(f".{k}")
qdomains = v["domains"] qdomains = v["domains"]
if not lookup_domain(qdomains, n4): if not lookup_domain(qdomains, n4):
add_split_domain(qdomains, ["*"] + n4.split(".")) add_split_domain(qdomains, n4.split("."))
old = [] old = []
if os.path.exists(f"/var/lib/unbound/{k}_domains.json"): if os.path.exists(f"/var/lib/unbound/{k}_domains.json"):
with open(f"/var/lib/unbound/{k}_domains.json", "rt") as f: with open(f"/var/lib/unbound/{k}_domains.json", "rt") as f:
@ -836,7 +837,7 @@ def operate(id, event, qstate, qdata) -> bool:
f"/var/lib/unbound/{k}_domains.json", f"/var/lib/unbound/{k}_domains.json",
f"/var/lib/unbound/{k}_domains.json.bak", f"/var/lib/unbound/{k}_domains.json.bak",
) )
old.append("*." + n4) old.append(n4)
with open(f"/var/lib/unbound/{k}_domains.json", "wt") as f: with open(f"/var/lib/unbound/{k}_domains.json", "wt") as f:
json.dump(old, f) json.dump(old, f)
elif n2.endswith(f".tmp{NFT_TOKEN}"): elif n2.endswith(f".tmp{NFT_TOKEN}"):
@ -846,7 +847,7 @@ def operate(id, event, qstate, qdata) -> bool:
n4 = n3.removesuffix(f".{k}") n4 = n3.removesuffix(f".{k}")
qdomains = v["domains"] qdomains = v["domains"]
if not lookup_domain(qdomains, n4): if not lookup_domain(qdomains, n4):
add_split_domain(qdomains, ["*"] + n4.split(".")) add_split_domain(qdomains, n4.split("."))
return True return True
qnames: list[str] = [] qnames: list[str] = []
for k, v in NFT_QUERIES.items(): for k, v in NFT_QUERIES.items():

View file

@ -72,7 +72,7 @@ in {
}; };
services.nextcloud = { services.nextcloud = {
enable = true; enable = true;
package = pkgs.nextcloud28; package = pkgs.nextcloud29;
autoUpdateApps.enable = true; autoUpdateApps.enable = true;
# TODO: use socket auth and remove the next line # TODO: use socket auth and remove the next line
database.createLocally = false; database.createLocally = false;

View file

@ -133,7 +133,7 @@ in {
extraGroups = [ "wheel" ]; extraGroups = [ "wheel" ];
}; };
# nixos-hardware uses mkDefault here, so we use slightly higher priority # nixos-hardware uses mkDefault here, so we use slightly higher priority
services.xserver.libinput.enable = mkForceDefault (!cfg.minimal); services.libinput.enable = mkForceDefault (!cfg.minimal);
programs.fuse.userAllowOther = true; programs.fuse.userAllowOther = true;
# autologin once after boot # autologin once after boot
# --skip-login means directly call login instead of first asking for username # --skip-login means directly call login instead of first asking for username
@ -190,6 +190,9 @@ in {
}) })
(lib.mkIf (!cfg.minimal) { (lib.mkIf (!cfg.minimal) {
environment.systemPackages = with pkgs; [
unixtools.xxd
];
hardware.pulseaudio.enable = false; hardware.pulseaudio.enable = false;
services.pipewire = { services.pipewire = {
enable = lib.mkDefault true; enable = lib.mkDefault true;

View file

@ -95,6 +95,8 @@ in {
{ directory = /var/lib/hydra; user = "hydra"; group = "hydra"; mode = "0755"; } { directory = /var/lib/hydra; user = "hydra"; group = "hydra"; mode = "0755"; }
] ++ lib.optionals config.services.jellyfin.enable [ ] ++ lib.optionals config.services.jellyfin.enable [
{ directory = /var/lib/jellyfin; user = "jellyfin"; group = "jellyfin"; mode = "0750"; } { directory = /var/lib/jellyfin; user = "jellyfin"; group = "jellyfin"; mode = "0750"; }
] ++ lib.optionals config.services.matrix-appservice-discord.enable [
{ directory = /var/lib/private/matrix-appservice-discord; mode = "0750"; defaultPerms.mode = "0700"; }
] ++ lib.optionals config.services.matrix-synapse.enable [ ] ++ lib.optionals config.services.matrix-synapse.enable [
{ directory = /var/lib/matrix-synapse; user = "matrix-synapse"; group = "matrix-synapse"; mode = "0700"; } { directory = /var/lib/matrix-synapse; user = "matrix-synapse"; group = "matrix-synapse"; mode = "0700"; }
] ++ lib.optionals (config.services.maubot.enable or false) [ ] ++ lib.optionals (config.services.maubot.enable or false) [

View file

@ -7,9 +7,9 @@ mozilla-addons-to-nix \
./pkgs/firefox-addons/addons.json \ ./pkgs/firefox-addons/addons.json \
./pkgs/firefox-addons/generated.nix || echo "failed to update firefox addons" ./pkgs/firefox-addons/generated.nix || echo "failed to update firefox addons"
nix flake update nix flake update
if [ -z ${SUDO_ASKPASS+x} ]; then #if [ -z ${SUDO_ASKPASS+x} ]; then
sudo nixos-rebuild switch --flake . --option extra-builtins-file "$(pwd)/extra-builtins.nix" # sudo nixos-rebuild switch --flake . --option extra-builtins-file "$(pwd)/extra-builtins.nix"
else #else
sudo -A nixos-rebuild switch --flake . --option extra-builtins-file "$(pwd)/extra-builtins.nix" # sudo -A nixos-rebuild switch --flake . --option extra-builtins-file "$(pwd)/extra-builtins.nix"
fi #fi
home-manager switch --flake . --option extra-builtins-file "$(pwd)/extra-builtins.nix" #home-manager switch --flake . --option extra-builtins-file "$(pwd)/extra-builtins.nix"