diff --git a/.pi/prompts/flake-update.md b/.pi/prompts/flake-update.md new file mode 100644 index 00000000..8b2fb959 --- /dev/null +++ b/.pi/prompts/flake-update.md @@ -0,0 +1,10 @@ +--- +description: Audit an uncommitted flake update +--- +Audit the flake update in `@`; follow AGENTS.md. + +1. Run `nix flake check --no-build --show-trace` first. Fix straightforward compatibility failures as they appear; ask before policy or behavior changes. +2. Compare `flake.lock` with `@-` and identify changed direct root inputs. For each except nixpkgs, fetch the upstream compare/changelog and check changed modules/options against their actual use in this repo. +3. Treat nixpkgs lightly: evaluate old and new direct NixOS/Home Manager package lists, compare package names/versions, and inspect only noteworthy service upgrades, removals, or breaking releases. Avoid a recursive closure diff. +4. Re-run evaluation, format touched Nix files, and build only focused compatibility fixes when useful—skip heavyweight builds unless requested. +5. Report actionable risks, fixes made, remaining warnings, and verification. Update the current jj description with revision ranges and meaningful upstream changes, but don't finalize or push it. diff --git a/flake.lock b/flake.lock index 49db587e..0f74a209 100644 --- a/flake.lock +++ b/flake.lock @@ -18,11 +18,11 @@ }, "crane": { "locked": { - "lastModified": 1781825982, - "narHash": "sha256-SlXKwIRIhrOSAcTjCB3ftPLzJWZStQIPS7J1FlZPnKk=", + "lastModified": 1787326676, + "narHash": "sha256-lWhBbBvC05/xwivKBBiM2YNizpmgqCgyOIzomvRuwxs=", "owner": "ipetkov", "repo": "crane", - "rev": "469fd08d0bcf6926321fa973c6777fbc87785dd7", + "rev": "692f7e9ef2ece8125b466f66f2af532b3edaed0d", "type": "github" }, "original": { @@ -59,11 +59,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1782100937, - "narHash": "sha256-CBYbKi6gcjHvlxYYoTduennOprxQtUMQfMlRmcg8ONc=", + "lastModified": 1787630552, + "narHash": "sha256-w3LGSHkHWKRH5K4A8plRWaFbaSWfdZAIxv32kO2mpOg=", "owner": "rycee", "repo": "nur-expressions", - "rev": "a5ad6b67a2f1ff6bd9f676ff2eee53c2f5187f88", + "rev": "25227969423d7ef599f70e16364ac550a0f713cd", "type": "gitlab" }, "original": { @@ -183,18 +183,17 @@ "nixos-mailserver", "flake-compat" ], - "gitignore": "gitignore_2", "nixpkgs": [ "nixos-mailserver", "nixpkgs" ] }, "locked": { - "lastModified": 1778507602, - "narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=", + "lastModified": 1784288435, + "narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a", + "rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9", "type": "github" }, "original": { @@ -204,50 +203,6 @@ } }, "gitignore": { - "inputs": { - "nixpkgs": [ - "lanzaboote", - "pre-commit", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_2": { - "inputs": { - "nixpkgs": [ - "nixos-mailserver", - "git-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_3": { "inputs": { "nixpkgs": [ "system-manager", @@ -277,11 +232,11 @@ ] }, "locked": { - "lastModified": 1785232496, - "narHash": "sha256-65EQYIRRpTdpH8lUiB6Mvo5uBkG60aBIzAJuALfx+O0=", + "lastModified": 1787144466, + "narHash": "sha256-HHfv2/HkNSKbbSyU9iD/g8lbP6r4tl33sSw1W4rXCk0=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "2e790b0a6be8ec2b76174ac0931b8ff11919ec98", + "rev": "0471accf8d0a8210b31d947497d179ecc99e0021", "type": "github" }, "original": { @@ -297,11 +252,11 @@ ] }, "locked": { - "lastModified": 1782233665, - "narHash": "sha256-h/xOtrByoA/Ak1lWHn0O1lVZz4qWYbwOSLQ8YSwQO0I=", + "lastModified": 1787540599, + "narHash": "sha256-MHwk52ty3NsLhq9a1IbIfBJZlCUJIdiUYFo52JLK9hY=", "owner": "nix-community", "repo": "home-manager", - "rev": "062581938b4a378a82dfbb294b494808157153a1", + "rev": "03f4cd46bc1dd4f3a96da778d2ce9f7ce39dd450", "type": "github" }, "original": { @@ -364,11 +319,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1782160136, - "narHash": "sha256-APwmLI4UuSTim0JO/kZ6FXDPiZVp3zIj0uGDF2UZ5kU=", + "lastModified": 1787658383, + "narHash": "sha256-I+zCjwAtkmgnet+08H+7HV8qJjf6BoFMYsX/8lMiW/s=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "6650fb7c6b48177c8200e21ffac99a4adc72b08d", + "rev": "69cf334f9dbc11213c6228c97e9b32924d51443f", "type": "github" }, "original": { @@ -388,11 +343,11 @@ ] }, "locked": { - "lastModified": 1782091909, - "narHash": "sha256-q9ygpiowWPeS/FzBz7gekF4uUamJSXH/TTMf4y0j23I=", + "lastModified": 1787622081, + "narHash": "sha256-N79fmlnKWnOxkXw0o8dyiB14DTNOoBHmGy+VpUbJ6Zw=", "owner": "infinidoge", "repo": "nix-minecraft", - "rev": "794884dacd31b251bce5abf2cf324be3659d5322", + "rev": "25b4dfcd9a7c1215d1647529326250a9cf871fa7", "type": "github" }, "original": { @@ -431,11 +386,11 @@ ] }, "locked": { - "lastModified": 1781892035, - "narHash": "sha256-e46EhlHo0jupcYCLE4QJRitd3+y+RgIQYNcfcCdLbKg=", + "lastModified": 1786567397, + "narHash": "sha256-H713vbgy+n1asVNn/0kBwbFgroNgC1dnx8pEMKcFdgk=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "c37fd9c40877450716692b6478e6dda330dfc46a", + "rev": "e668474df221aeef1ebd374d0364aa07f1d4f827", "type": "gitlab" }, "original": { @@ -446,11 +401,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1781577229, - "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", + "lastModified": 1787498568, + "narHash": "sha256-9i/VTdusq/+NM/tz+J1Re+ojkMB8MBf0QshnYfzHz30=", "owner": "nixos", "repo": "nixpkgs", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", + "rev": "56c02bc00adcf003215cc4bd996d6efaf4cff188", "type": "github" }, "original": { @@ -460,26 +415,41 @@ "type": "github" } }, + "nixpkgs-runescape": { + "locked": { + "lastModified": 1787525875, + "narHash": "sha256-sKbMlkDCBVmAjUVT94LwhVtET/YEMtZaFdn5UduWxz8=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "a3b98866eecd08edac6e61a3081e69540a35020f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-26.05", + "repo": "nixpkgs", + "type": "github" + } + }, "pre-commit": { "inputs": { "flake-compat": "flake-compat", - "gitignore": "gitignore", "nixpkgs": [ "lanzaboote", "nixpkgs" ] }, "locked": { - "lastModified": 1781733627, - "narHash": "sha256-U3yTuGBnmXvXoQI3qkpfEDsn9RovQPAjN7ndRco+3u0=", + "lastModified": 1787424939, + "narHash": "sha256-O2tBn84NNuHrnqNVxx/XqsXwfYvS1YwBh+7CBnbCYsk=", "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "3bbec39bc90eadfa031e6f3b77272f3f60803e39", + "repo": "git-hooks.nix", + "rev": "809414f0cdadf82cf11b06c2b29ba9b3168b3297", "type": "github" }, "original": { "owner": "cachix", - "repo": "pre-commit-hooks.nix", + "repo": "git-hooks.nix", "type": "github" } }, @@ -490,7 +460,7 @@ "userborn", "flake-compat" ], - "gitignore": "gitignore_3", + "gitignore": "gitignore", "nixpkgs": [ "system-manager", "userborn", @@ -524,6 +494,7 @@ "nix-system-graphics": "nix-system-graphics", "nixos-mailserver": "nixos-mailserver", "nixpkgs": "nixpkgs", + "nixpkgs-runescape": "nixpkgs-runescape", "sops-nix": "sops-nix", "system-manager": "system-manager", "systems": "systems_3" @@ -537,11 +508,11 @@ ] }, "locked": { - "lastModified": 1782012058, - "narHash": "sha256-9mWUnReOUXfKjZuJAL/bAFH3LUyECTRtXgSNVjRw3UY=", + "lastModified": 1787454509, + "narHash": "sha256-r4LDUF+zmJnkftvCVkCrUhSJazsf6EVJF+V2l4/MYbI=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "8534567325bd8a8d2928e6afd81e0a87d19efd3c", + "rev": "f60c1b57ff805a46b5175c76fc981fb4f81efbcc", "type": "github" }, "original": { @@ -557,11 +528,11 @@ ] }, "locked": { - "lastModified": 1781943681, - "narHash": "sha256-NFHmA7H47adqiyp+0iEOyZOQhmigDqA/NBAlf4imB6U=", + "lastModified": 1786629091, + "narHash": "sha256-gkig4nPi1CWc4Z50GBsjE4ygSE7hMpl/TwID2an2Cck=", "owner": "mic92", "repo": "sops-nix", - "rev": "420f8d2e9882911f65cfac15cc706f639ba96cca", + "rev": "a8627b21b9107c5711c96b84f32a9a4b3d45295f", "type": "github" }, "original": { @@ -579,11 +550,11 @@ "userborn": "userborn" }, "locked": { - "lastModified": 1784579760, - "narHash": "sha256-7YKNfK0RQbUoYkjDI/EpTk76nDUiONJYuOxZnflx7tI=", + "lastModified": 1786747314, + "narHash": "sha256-L8GneKBeYOStPrLUAypI8bDGNjntcH2AngxSig/ul8c=", "owner": "numtide", "repo": "system-manager", - "rev": "48d47346e0c6ad05b6c869ea92649c47723d1cfc", + "rev": "64748b62d6ae74c069234103ce368626bcad8c70", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 99933c5e..6c880141 100644 --- a/flake.nix +++ b/flake.nix @@ -13,6 +13,7 @@ inputs = { # Nix ecosystem nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixpkgs-runescape.url = "github:nixos/nixpkgs/nixos-26.05"; systems.url = "github:nix-systems/default-linux"; hardware = { @@ -108,7 +109,7 @@ overlays = import ./overlays {inherit inputs outputs;}; hydraJobs = import ./hydra.nix {inherit inputs outputs;}; - packages = forEachSystem (pkgs: import ./pkgs {inherit pkgs;}); + packages = forEachSystem (pkgs: import ./pkgs {inherit inputs pkgs;}); devShells = forEachSystem (pkgs: import ./shell.nix {inherit pkgs;}); formatter = forEachSystem (pkgs: pkgs.alejandra); diff --git a/home/gabriel/features/cli/fish/bindings.nix b/home/gabriel/features/cli/fish/bindings.nix index fbebcfb9..052a7aa2 100644 --- a/home/gabriel/features/cli/fish/bindings.nix +++ b/home/gabriel/features/cli/fish/bindings.nix @@ -31,7 +31,7 @@ in { rev = "8a5c7999ec67ae6d70de11334aa888734b3af8d7"; hash = "sha256-04cL9/m5v0/5dkqz0tEqurOY+5sDjCB5mMKvqgpV4vM="; }; - patches = [../../../../../overlays/fish-helix-fish43-compat.patch]; + patches = [../../../../../overlays/fish-helix-modern-fish-compat.patch]; dontBuild = true; installPhase = "cp -r . $out"; }; diff --git a/home/gabriel/features/desktop/common/gtk.nix b/home/gabriel/features/desktop/common/gtk.nix index 32fc6096..6ff41a94 100644 --- a/home/gabriel/features/desktop/common/gtk.nix +++ b/home/gabriel/features/desktop/common/gtk.nix @@ -9,43 +9,46 @@ ln -s ${pkgs.resvg}/bin/resvg $out/bin/rendersvg ''; - materiaTheme = name: colors: pkgs.materia-theme.overrideAttrs (old: { - buildInputs = old.buildInputs ++ [ - pkgs.bc - rendersvg - ]; - postPatch = '' - sed -e 's/handle-horz-.*//' -e 's/handle-vert-.*//' -i ./src/gtk-2.0/assets.txt + materiaTheme = name: colors: + pkgs.materia-theme.overrideAttrs (old: { + buildInputs = + old.buildInputs + ++ [ + pkgs.bc + rendersvg + ]; + postPatch = '' + sed -e 's/handle-horz-.*//' -e 's/handle-vert-.*//' -i ./src/gtk-2.0/assets.txt - cat > /build/gtk-colors << EOF - BTN_BG=${colors.primary_container} - BTN_FG=${colors.on_primary_container} - BG=${colors.surface} - FG=${colors.on_surface} - HDR_BTN_BG=${colors.secondary_container} - HDR_BTN_FG=${colors.on_secondary_container} - ACCENT_BG=${colors.primary} - ACCENT_FG=${colors.on_primary} - HDR_BG=${colors.surface_bright} - HDR_FG=${colors.on_surface} - MATERIA_SURFACE=${colors.surface_bright} - MATERIA_VIEW=${colors.surface_dim} - MENU_BG=${colors.surface_container} - MENU_FG=${colors.on_surface} - SEL_BG=${colors.primary_fixed_dim} - SEL_FG=${colors.on_primary} - TXT_BG=${colors.primary_container} - TXT_FG=${colors.on_primary_container} - WM_BORDER_FOCUS=${colors.outline} - WM_BORDER_UNFOCUS=${colors.outline_variant} - UNITY_DEFAULT_LAUNCHER_STYLE=False - NAME=${name} - MATERIA_STYLE_COMPACT=True - EOF - patchShebangs . - ./change_color.sh -o ${name} /build/gtk-colors -i False -t "$out/share/themes" - ''; - }); + cat > /build/gtk-colors << EOF + BTN_BG=${colors.primary_container} + BTN_FG=${colors.on_primary_container} + BG=${colors.surface} + FG=${colors.on_surface} + HDR_BTN_BG=${colors.secondary_container} + HDR_BTN_FG=${colors.on_secondary_container} + ACCENT_BG=${colors.primary} + ACCENT_FG=${colors.on_primary} + HDR_BG=${colors.surface_bright} + HDR_FG=${colors.on_surface} + MATERIA_SURFACE=${colors.surface_bright} + MATERIA_VIEW=${colors.surface_dim} + MENU_BG=${colors.surface_container} + MENU_FG=${colors.on_surface} + SEL_BG=${colors.primary_fixed_dim} + SEL_FG=${colors.on_primary} + TXT_BG=${colors.primary_container} + TXT_FG=${colors.on_primary_container} + WM_BORDER_FOCUS=${colors.outline} + WM_BORDER_UNFOCUS=${colors.outline_variant} + UNITY_DEFAULT_LAUNCHER_STYLE=False + NAME=${name} + MATERIA_STYLE_COMPACT=True + EOF + patchShebangs . + ./change_color.sh -o ${name} /build/gtk-colors -i False -t "$out/share/themes" + ''; + }); in { gtk = { enable = true; @@ -73,6 +76,7 @@ in { }; home.pointerCursor = { + enable = true; gtk.enable = true; package = pkgs.apple-cursor; name = "macOS"; diff --git a/home/gabriel/features/desktop/common/wayland-wm/qutebrowser.nix b/home/gabriel/features/desktop/common/wayland-wm/qutebrowser.nix index 41b62ed1..9471285b 100644 --- a/home/gabriel/features/desktop/common/wayland-wm/qutebrowser.nix +++ b/home/gabriel/features/desktop/common/wayland-wm/qutebrowser.nix @@ -233,6 +233,10 @@ in { }; }; extraConfig = '' + # QtWebEngine 6.11.1's GBM path flickers during hardware video playback + # on AMD Wayland systems: https://github.com/qutebrowser/qutebrowser/issues/8908 + c.qt.environ = {"QTWEBENGINE_FORCE_USE_GBM": "0"} + c.tabs.padding = {"bottom": 10, "left": 10, "right": 10, "top": 10} # Let Jagex hand authentication back to the rshub URL handler. config.set("content.unknown_url_scheme_policy", "allow-all", "https://account.jagex.com/*/launcher/successful-login*") diff --git a/hosts/nixos/alcyone/hardware-configuration.nix b/hosts/nixos/alcyone/hardware-configuration.nix index e6824927..cb8c3930 100644 --- a/hosts/nixos/alcyone/hardware-configuration.nix +++ b/hosts/nixos/alcyone/hardware-configuration.nix @@ -16,7 +16,6 @@ }; loader.grub = { enable = true; - version = 2; device = "/dev/disk/by-path/virtio-pci-0000:00:05.0"; }; }; diff --git a/hosts/nixos/alcyone/services/grafana/default.nix b/hosts/nixos/alcyone/services/grafana/default.nix index d20d86ce..5910728b 100644 --- a/hosts/nixos/alcyone/services/grafana/default.nix +++ b/hosts/nixos/alcyone/services/grafana/default.nix @@ -40,7 +40,7 @@ enabled = true; host = "mail.m7.rs:465"; from_address = user; - user = config.mailserver.loginAccounts."grafana@m7.rs".name; + user = config.mailserver.accounts."grafana@m7.rs".name; password = "$__file{${config.sops.secrets.grafana-mail-password.path}}"; }; server.root_url = "https://dash.m7.rs/"; diff --git a/hosts/nixos/common/optional/regreet.nix b/hosts/nixos/common/optional/regreet.nix index 99253ae0..05449d76 100644 --- a/hosts/nixos/common/optional/regreet.nix +++ b/hosts/nixos/common/optional/regreet.nix @@ -1,6 +1,6 @@ # Graphical greeter, hooks into greetd {pkgs, ...}: { - programs.regreet = { + services.displayManager.regreet = { enable = true; cageArgs = ["-d" "-s" "-m" "last"]; iconTheme = { @@ -24,10 +24,12 @@ environment.persistence = { # Persist last user and last selected session - "/persist".directories = [{ - directory = "/var/lib/regreet"; - user = "greeter"; - group = "greeter"; - }]; + "/persist".directories = [ + { + directory = "/var/lib/regreet"; + user = "greeter"; + group = "greeter"; + } + ]; }; } diff --git a/hosts/nixos/common/users/layla/packages.nix b/hosts/nixos/common/users/layla/packages.nix index 5856d958..64b0938c 100644 --- a/hosts/nixos/common/users/layla/packages.nix +++ b/hosts/nixos/common/users/layla/packages.nix @@ -2,10 +2,10 @@ steam-with-pkgs = pkgs.steam.override { extraPkgs = pkgs: with pkgs; [ - xorg.libXcursor - xorg.libXi - xorg.libXinerama - xorg.libXScrnSaver + libxcursor + libxi + libxinerama + libxscrnsaver libpng libpulseaudio libvorbis diff --git a/hosts/nixos/maia/hardware-configuration.nix b/hosts/nixos/maia/hardware-configuration.nix index 06bf5bfe..4d2c509f 100644 --- a/hosts/nixos/maia/hardware-configuration.nix +++ b/hosts/nixos/maia/hardware-configuration.nix @@ -1,4 +1,8 @@ -{inputs, pkgs, ...}: { +{ + inputs, + pkgs, + ... +}: { imports = [ inputs.disko.nixosModules.disko ../common/optional/ephemeral-btrfs.nix @@ -99,11 +103,11 @@ environment.systemPackages = [pkgs.brightnessctl]; # Lid settings - services.logind = { - lidSwitch = "suspend"; - lidSwitchExternalPower = "lock"; - powerKey = "suspend"; - powerKeyLongPress = "poweroff"; + services.logind.settings.Login = { + HandleLidSwitch = "suspend"; + HandleLidSwitchExternalPower = "lock"; + HandlePowerKey = "suspend"; + HandlePowerKeyLongPress = "poweroff"; }; hardware.graphics.enable = true; diff --git a/hosts/nixos/pleione/default.nix b/hosts/nixos/pleione/default.nix index cd225c7a..3e8df413 100644 --- a/hosts/nixos/pleione/default.nix +++ b/hosts/nixos/pleione/default.nix @@ -33,9 +33,9 @@ programs.dconf.enable = true; - services.logind = { - powerKey = "suspend"; - powerKeyLongPress = "poweroff"; + services.logind.settings.Login = { + HandlePowerKey = "suspend"; + HandlePowerKeyLongPress = "poweroff"; }; system.stateVersion = "22.05"; diff --git a/hosts/nixos/taygeta/services/minecraft/servers/gtnh/gtnh.nix b/hosts/nixos/taygeta/services/minecraft/servers/gtnh/gtnh.nix index ce6e14ab..9d63eaa8 100644 --- a/hosts/nixos/taygeta/services/minecraft/servers/gtnh/gtnh.nix +++ b/hosts/nixos/taygeta/services/minecraft/servers/gtnh/gtnh.nix @@ -9,57 +9,64 @@ ... }: let # Groovy script to parse meta inf from jar - readMetaInf = /* groovy */ '' - import java.net.URL - import java.io.File - import java.util.jar.Attributes.Name + readMetaInf = + /* + groovy + */ + '' + import java.net.URL + import java.io.File + import java.util.jar.Attributes.Name - jarPath = args[0] - pathPrefix = args[1] - jar = new URL("jar:file:" + new File(jarPath).getAbsolutePath()+ "!/") - attributes = jar.openConnection().getManifest().getMainAttributes() - println(attributes.get(Name.MAIN_CLASS)) - println(attributes.get(Name.CLASS_PATH).split(' ').collect{"$pathPrefix/$it"}.join(':')) - ''; -in stdenvNoCC.mkDerivation { - pname = "gt-new-horizons"; - version = "2.8.0"; + jarPath = args[0] + pathPrefix = args[1] + jar = new URL("jar:file:" + new File(jarPath).getAbsolutePath()+ "!/") + attributes = jar.openConnection().getManifest().getMainAttributes() + println(attributes.get(Name.MAIN_CLASS)) + println(attributes.get(Name.CLASS_PATH).split(' ').collect{"$pathPrefix/$it"}.join(':')) + ''; +in + stdenvNoCC.mkDerivation { + pname = "gt-new-horizons"; + version = "2.8.0"; - src = fetchzip { - url = "https://downloads.gtnewhorizons.com/ServerPacks/GT_New_Horizons_2.8.0_Server_Java_17-25.zip"; - hash = "sha256-HH/Z3T6H3cDHFuPsxKSlJELGLL4Hc/5s2DZCxU+Txhs="; - stripRoot = false; - }; + src = fetchzip { + url = "https://downloads.gtnewhorizons.com/ServerPacks/GT_New_Horizons_2.8.0_Server_Java_17-25.zip"; + hash = "sha256-HH/Z3T6H3cDHFuPsxKSlJELGLL4Hc/5s2DZCxU+Txhs="; + stripRoot = false; + }; - nativeBuildInputs = [makeWrapper groovy]; + nativeBuildInputs = [makeWrapper groovy]; - preStart = writeShellScript "gtnh-prestart" '' - out=$1 - for name in "config" "serverutilities" "server.properties"; do - if ! [[ -e "$name" ]]; then - echo "$name missing. Copying it from $out/lib." - cp -rL "$out/lib/$name" . - chmod +w "$name" -R + preStart = writeShellScript "gtnh-prestart" '' + out=$1 + for name in "config" "serverutilities" "server.properties"; do + if ! [[ -e "$name" ]]; then + echo "$name missing. Copying it from $out/lib." + cp -rL "$out/lib/$name" . + chmod +w "$name" -R + fi + done + if ! [[ -e "eula.txt" ]]; then + echo "NOTICE: by running this software, you agree to https://account.mojang.com/documents/minecraft_eula" + echo "eula=true" > eula.txt fi - done - if ! [[ -e "eula.txt" ]]; then - echo "NOTICE: by running this software, you agree to https://account.mojang.com/documents/minecraft_eula" - echo "eula=true" > eula.txt - fi - ''; + ''; - installPhase = '' - mkdir $out - ln -s $src $out/lib - mainJar="$out/lib/lwjgl3ify-forgePatches.jar" - # Get main_class and class_path from main jar - { read main_class; read class_path; } < <(groovy -e ${lib.escapeShellArg readMetaInf} $mainJar $out/lib) - # Add extra required jars to class_path - class_path+="$(printf ':%s' $out/lib/mods/lwjgl3ify-*.jar)" - # Collect mods and pass them as --mods. Has to be in runtime to get their path relative to PWD - makeWrapper ${lib.getExe jre_headless} $out/bin/gt-new-horizons \ - --run "$preStart $out" \ - --run 'mods="$(find "$(realpath --relative-to="$PWD" '$out'/lib/mods)" -name "*.jar" | tr "\n" ",")"' \ - --append-flags "@$out/lib/java9args.txt -cp $mainJar:$class_path $main_class nogui --mods \"\$mods\"" - ''; -} + meta.mainProgram = "gt-new-horizons"; + + installPhase = '' + mkdir $out + ln -s $src $out/lib + mainJar="$out/lib/lwjgl3ify-forgePatches.jar" + # Get main_class and class_path from main jar + { read main_class; read class_path; } < <(groovy -e ${lib.escapeShellArg readMetaInf} $mainJar $out/lib) + # Add extra required jars to class_path + class_path+="$(printf ':%s' $out/lib/mods/lwjgl3ify-*.jar)" + # Collect mods and pass them as --mods. Has to be in runtime to get their path relative to PWD + makeWrapper ${lib.getExe jre_headless} $out/bin/gt-new-horizons \ + --run "$preStart $out" \ + --run 'mods="$(find "$(realpath --relative-to="$PWD" '$out'/lib/mods)" -name "*.jar" | tr "\n" ",")"' \ + --append-flags "@$out/lib/java9args.txt -cp $mainJar:$class_path $main_class nogui --mods \"\$mods\"" + ''; + } diff --git a/overlays/default.nix b/overlays/default.nix index 719f16ac..6b4b94d9 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -26,7 +26,10 @@ in { # Adds my custom packages additions = final: prev: - import ../pkgs {pkgs = final;} + import ../pkgs { + inherit inputs; + pkgs = final; + } // { formats = (prev.formats or {}) // import ../pkgs/formats {pkgs = final;}; roundcubePlugins = (prev.roundcubePlugins or {}) // import ../pkgs/roundcube-plugins {pkgs = final;}; diff --git a/overlays/fish-helix-fish43-compat.patch b/overlays/fish-helix-modern-fish-compat.patch similarity index 96% rename from overlays/fish-helix-fish43-compat.patch rename to overlays/fish-helix-modern-fish-compat.patch index e895b9d5..1fd49f48 100644 --- a/overlays/fish-helix-fish43-compat.patch +++ b/overlays/fish-helix-modern-fish-compat.patch @@ -1,7 +1,7 @@ From 73315cfff45b1e4f3c611fa4fc1e59c3a11ece98 Mon Sep 17 00:00:00 2001 From: Gabriel Fontes Date: Tue, 7 Apr 2026 15:21:18 -0300 -Subject: [PATCH] fix support for fish 4.3 +Subject: [PATCH] fix support for modern Fish versions --- functions/fish_helix_key_bindings.fish | 123 +++++++++++-------------- @@ -11,10 +11,15 @@ diff --git a/functions/fish_helix_key_bindings.fish b/functions/fish_helix_key_b index c6aa397..ec98d9b 100644 --- a/functions/fish_helix_key_bindings.fish +++ b/functions/fish_helix_key_bindings.fish -@@ -58,8 +58,7 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish - __fish_shared_key_bindings -s -M $mode +@@ -58,8 +58,11 @@ function fish_helix_key_bindings --description 'helix-like key bindings for fish +- __fish_shared_key_bindings -s -M $mode ++ function __fish_helix_shared_key_bindings ++ eval "$(__fish_shared_key_bindings)" ++ end ++ __fish_helix_shared_key_bindings -s -M $mode ++ functions --erase __fish_helix_shared_key_bindings end - + - bind -s --preset -M insert \r execute - bind -s --preset -M insert \n execute + bind -s --preset -M insert enter execute diff --git a/overlays/llama-cpp-optional-cache-scan.patch b/overlays/llama-cpp-optional-cache-scan.patch index bfdf9424..6b94aa36 100644 --- a/overlays/llama-cpp-optional-cache-scan.patch +++ b/overlays/llama-cpp-optional-cache-scan.patch @@ -11,10 +11,10 @@ truth by default; set the env var to restore upstream behaviour. --- a/tools/server/server-models.cpp +++ b/tools/server/server-models.cpp -@@ -280,8 +280,13 @@ +@@ -504,8 +504,13 @@ void server_models::load_models() { - // Phase 1: load presets from all sources — pure I/O, no lock needed + // Phase 1: load presets from all sources - pure I/O, no lock needed - // 1. cached models - common_presets cached_models = ctx_preset.load_from_cache(); + // 1. cached models (opt-in). Scanning the HF cache auto-registers untuned diff --git a/pkgs/alt1/default.nix b/pkgs/alt1/default.nix index 87f82815..297a03bf 100644 --- a/pkgs/alt1/default.nix +++ b/pkgs/alt1/default.nix @@ -17,7 +17,6 @@ gtk2, gtk3, lib, - libappindicator-gtk2, libappindicator-gtk3, libdrm, libgbm, @@ -132,7 +131,6 @@ in glib gtk2 gtk3 - libappindicator-gtk2 libappindicator-gtk3 libdrm libgbm diff --git a/pkgs/default.nix b/pkgs/default.nix index d6d6d538..d05ee2e2 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,14 +1,25 @@ -{pkgs ? import {}, ...}: rec { +{ + inputs, + pkgs, +}: let + runescapePkgs = import inputs.nixpkgs-runescape { + inherit (pkgs.stdenv.hostPlatform) system; + config.permittedInsecurePackages = ["openssl-1.1.1w"]; + }; +in rec { # Packages with an actual source lyrics = pkgs.python3Packages.callPackage ./lyrics {}; prefetcharr = pkgs.callPackage ./prefetcharr {}; alt1 = pkgs.callPackage ./alt1 {}; + materia-theme = pkgs.callPackage ./materia-theme {}; hyprbars = pkgs.callPackage ./hyprbars {}; jellysearch = pkgs.callPackage ./jellysearch {}; website = pkgs.callPackage ../projects/website {}; runelite-query = pkgs.callPackage ../projects/runelite-query {}; gtkhal = pkgs.callPackage ../projects/gtkhal {}; - runescape = pkgs.callPackage ./runescape {}; + runescape = pkgs.callPackage ./runescape { + inherit (runescapePkgs) openssl_1_1; + }; # Personal scripts pass-wofi = pkgs.callPackage ./pass-wofi {}; diff --git a/pkgs/hyprbars/default.nix b/pkgs/hyprbars/default.nix index cbd25a86..09cf7fcb 100644 --- a/pkgs/hyprbars/default.nix +++ b/pkgs/hyprbars/default.nix @@ -1,13 +1,20 @@ -{lib, pkg-config, hyprland, cmake, fetchFromGitHub, gnused}: +{ + lib, + pkg-config, + hyprland, + cmake, + fetchFromGitHub, + gnused, +}: hyprland.stdenv.mkDerivation (final: { pname = "hyprbars"; - version = "0.53.3"; + version = "0.56.0"; src = "${fetchFromGitHub { owner = "hyprwm"; repo = "hyprland-plugins"; - rev = "3aa21f2e0ca72412f1b434c3126f8f1fec3c716c"; - hash = "sha256-VTRC7MN4HReathEqTEAGtTb6X6fjFXLhK4/+jZHTl1Q="; + rev = "7644cecdb947060682891a0db2a0cdc5c0b9e704"; + hash = "sha256-piRpwar7VZI3YviYo0a/UMFz9+rLesfv3nRLGKxjVGg="; }}/hyprbars"; buildInputs = [hyprland] ++ hyprland.buildInputs; nativeBuildInputs = [pkg-config cmake]; diff --git a/pkgs/lyrics/default.nix b/pkgs/lyrics/default.nix index 7d154973..0649fab2 100644 --- a/pkgs/lyrics/default.nix +++ b/pkgs/lyrics/default.nix @@ -5,7 +5,7 @@ setuptools, }: buildPythonPackage rec { - pname = "lyrics"; + pname = "lyrics-in-terminal"; version = "1.5.0"; src = fetchFromGitHub { diff --git a/pkgs/materia-theme/default.nix b/pkgs/materia-theme/default.nix new file mode 100644 index 00000000..d4e57346 --- /dev/null +++ b/pkgs/materia-theme/default.nix @@ -0,0 +1,46 @@ +{ + lib, + stdenv, + fetchFromGitHub, + meson, + ninja, + sassc, + gnome-shell, + gnome-themes-extra, + gdk-pixbuf, + librsvg, +}: +stdenv.mkDerivation rec { + pname = "materia-theme"; + version = "20210322"; + + src = fetchFromGitHub { + owner = "nana-4"; + repo = "materia-theme"; + rev = "v${version}"; + hash = "sha256-dHcwPTZFWO42wu1LbtGCMm2w/YHbjSUJnRKcaFllUbs="; + }; + + nativeBuildInputs = [ + meson + ninja + sassc + ]; + buildInputs = [ + gnome-themes-extra + gdk-pixbuf + librsvg + ]; + mesonFlags = ["-Dgnome_shell_version=${lib.versions.majorMinor gnome-shell.version}"]; + + postInstall = '' + rm $out/share/themes/*/COPYING + ''; + + meta = { + description = "Material Design theme for GNOME/GTK based desktop environments"; + homepage = "https://github.com/nana-4/materia-theme"; + license = lib.licenses.gpl2Only; + platforms = lib.platforms.all; + }; +}