From 76ea6e6e1396ca44a10ddd64d2c40dcded2d7c9d Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Sat, 8 Aug 2026 14:39:39 -0400 Subject: [PATCH 01/13] add: added raubahn config --- flake.nix | 26 +++++ modules/machine/raubahn/configuration.nix | 105 ++++++++++++++++++ modules/machine/raubahn/default.nix | 6 + .../raubahn/hardware-configuration.nix | 0 4 files changed, 137 insertions(+) create mode 100644 modules/machine/raubahn/configuration.nix create mode 100644 modules/machine/raubahn/default.nix create mode 100644 modules/machine/raubahn/hardware-configuration.nix diff --git a/flake.nix b/flake.nix index c41215c..3d8ba33 100644 --- a/flake.nix +++ b/flake.nix @@ -187,6 +187,32 @@ ]; }; + # Vintage story server - for a friend + nixosConfigurations."raubahn" = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { + inherit userName userEmail nur; + hostname = "raubahn"; + role = "server"; + }; + modules = [ + myOverlays + ./modules/common + ./modules/machine/raubahn + + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "server"; }; + home-manager.backupFileExtension = "bak"; + home-manager.users.${userName}.imports = [ + ./home + ]; + } + ]; + }; + # Matrix and Mastodon server nixosConfigurations."yshtola" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; diff --git a/modules/machine/raubahn/configuration.nix b/modules/machine/raubahn/configuration.nix new file mode 100644 index 0000000..073d081 --- /dev/null +++ b/modules/machine/raubahn/configuration.nix @@ -0,0 +1,105 @@ +{ + pkgs, + userName, + nur, + ... +}: { + imports = [ + ../../pwrMgmt + ../../networking/core.nix + ../../virtualization/podman.nix + ]; + + # Enable flakes for NixOS + nix.settings.experimental-features = ["nix-command" "flakes"]; + + # Custom kernel/boot stuff + boot.kernelPackages = pkgs.linuxPackages_latest; + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Set your timezone + time.timeZone = "America/Detroit"; + + # Enable OpenSSH + services.openssh.enable = true; + + # Enable keyring + services.gnome.gnome-keyring.enable = true; + + # Enable GnuPG + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + + # Enable SUID wrappers (some programs need them) + programs.mtr.enable = true; + + # Enable Polkit + security.polkit.enable = true; + + # Power management (see ../../pwrMgmt/default.nix) + pwrMgmt = { + enable = true; + cpuFreqGovernor = "performance"; + powertop.enable = false; + }; + + network = { + firewall = { + enable = true; + tcpPorts = { + allowedPorts = [ 42420 ]; + }; + udpPorts = { + allowedPorts = [ 42420 ]; + }; + }; + networkManager.enable = true; + }; + + environment.systemPackages = [ + nur.packages.${pkgs.system}.vintage-story + ]; + + systemd.services.vintagestory-server = { + description = "Vintage Story Server"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = { + Type = "simple"; + User = userName; + WorkingDirectory = "/home/${userName}"; + ExecStart = "${nur.packages.${pkgs.system}.vintage-story}/bin/vintagestory-server"; + Restart = "on-failure"; + RestartSec = "5s"; + }; + }; + + # Add username to groups "wheel" and "video" - more may be added here later + users = { + users = { + ${userName} = { + extraGroups = [ "wheel" "network" ]; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com" + ]; + }; + }; + }; + + services.fail2ban = { + enable = true; + package = pkgs.fail2ban; + maxretry = 5; + bantime = "3h"; + bantime-increment = { + enable = true; + rndtime = "10m"; + }; + }; + + system.stateVersion = "24.11"; +} diff --git a/modules/machine/raubahn/default.nix b/modules/machine/raubahn/default.nix new file mode 100644 index 0000000..3c4d411 --- /dev/null +++ b/modules/machine/raubahn/default.nix @@ -0,0 +1,6 @@ +{ ... }: { + imports = [ + ./configuration.nix + ./hardware-configuration.nix + ]; +} diff --git a/modules/machine/raubahn/hardware-configuration.nix b/modules/machine/raubahn/hardware-configuration.nix new file mode 100644 index 0000000..e69de29 From 9f61ec8200365405cf4053e233a741b9e13d6ddd Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Mon, 10 Aug 2026 22:02:49 -0400 Subject: [PATCH 02/13] add: add estinien configuration --- modules/machine/estinien/configuration.nix | 104 ++++++++++++++++++ modules/machine/estinien/default.nix | 6 + .../estinien/hardware-configuration.nix | 0 3 files changed, 110 insertions(+) create mode 100644 modules/machine/estinien/configuration.nix create mode 100644 modules/machine/estinien/default.nix create mode 100644 modules/machine/estinien/hardware-configuration.nix diff --git a/modules/machine/estinien/configuration.nix b/modules/machine/estinien/configuration.nix new file mode 100644 index 0000000..25c03ee --- /dev/null +++ b/modules/machine/estinien/configuration.nix @@ -0,0 +1,104 @@ +{ + pkgs, + userName, + nur, + ... +}: let + nurPkgs = import "${nur.outPath}/pkgs" { + inherit pkgs; + hildibrand = nur.inputs.hildibrand.packages.${pkgs.stdenv.hostPlatform.system}.default; + }; +in { + imports = [ + ../../pwrMgmt + ../../networking/core.nix + ]; + + # Enable flakes for NixOS + nix.settings.experimental-features = ["nix-command" "flakes"]; + + # Custom kernel/boot stuff + boot.kernelPackages = pkgs.linuxPackages_latest; + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + # Set your timezone + time.timeZone = "America/Detroit"; + + # Enable OpenSSH + services.openssh.enable = true; + + # Enable keyring + services.gnome.gnome-keyring.enable = true; + + # Enable GnuPG + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + + # Enable SUID wrappers (some programs need them) + programs.mtr.enable = true; + + # Enable Polkit + security.polkit.enable = true; + + # Power management (see ../../pwrMgmt/default.nix) + pwrMgmt = { + enable = true; + cpuFreqGovernor = "performance"; + powertop.enable = false; + }; + + network = { + firewall = { + enable = true; + }; + networkManager.enable = true; + }; + + environment.systemPackages = [ + nurPkgs.hildibrand + ]; + + systemd.services.vintagestory-server = { + description = "Vintage Story Server"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = { + Type = "simple"; + User = userName; + WorkingDirectory = "/home/${userName}"; + ExecStart = "${nurPkgs.hildibrand}/bin/hildibrand"; + Restart = "on-failure"; + RestartSec = "5s"; + }; + }; + + # Add username to groups "wheel" and "video" - more may be added here later + users = { + groups.hazel = {}; + users = { + ${userName} = { + extraGroups = [ "wheel" "network" ]; + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com" + ]; + }; + }; + }; + + services.fail2ban = { + enable = true; + package = pkgs.fail2ban; + maxretry = 5; + bantime = "3h"; + bantime-increment = { + enable = true; + rndtime = "10m"; + }; + }; + + system.stateVersion = "24.11"; +} diff --git a/modules/machine/estinien/default.nix b/modules/machine/estinien/default.nix new file mode 100644 index 0000000..3c4d411 --- /dev/null +++ b/modules/machine/estinien/default.nix @@ -0,0 +1,6 @@ +{ ... }: { + imports = [ + ./configuration.nix + ./hardware-configuration.nix + ]; +} diff --git a/modules/machine/estinien/hardware-configuration.nix b/modules/machine/estinien/hardware-configuration.nix new file mode 100644 index 0000000..e69de29 From 7bc8e821b5ca46a320c608292d2a11023dd354eb Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Mon, 10 Aug 2026 22:36:24 -0400 Subject: [PATCH 03/13] mod: adjust flake to add new config --- flake.nix | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/flake.nix b/flake.nix index c41215c..8ce2878 100644 --- a/flake.nix +++ b/flake.nix @@ -213,6 +213,32 @@ ]; }; + # Discord bot server + nixosConfigurations."estinien" = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { + inherit userName userEmail; + hostname = "estinien"; + role = "server"; + }; + modules = [ + myOverlays + ./modules/common + ./modules/machine/estinien + + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "server"; }; + home-manager.backupFileExtension = "bak"; + home-manager.users.${userName}.imports = [ + ./home + ]; + } + ]; + }; + # generic non-NixOS Linux machine homeConfigurations."generic" = let hostname = builtins.getEnv "HOSTNAME"; From fee14618b8a5967af93a205c1b9d0073a5452d38 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Mon, 10 Aug 2026 22:44:07 -0400 Subject: [PATCH 04/13] mod: added input --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 8ce2878..6caf02c 100644 --- a/flake.nix +++ b/flake.nix @@ -191,7 +191,7 @@ nixosConfigurations."yshtola" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { - inherit userName userEmail; + inherit userName userEmail nur; hostname = "yshtola"; role = "server"; }; From 0769fe1e0d33e6a5adbf5bb1f4b6d3f942c959df Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Mon, 10 Aug 2026 23:01:53 -0400 Subject: [PATCH 05/13] mod: adjusted again --- flake.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index 6caf02c..57559ab 100644 --- a/flake.nix +++ b/flake.nix @@ -191,7 +191,7 @@ nixosConfigurations."yshtola" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { - inherit userName userEmail nur; + inherit userName userEmail; hostname = "yshtola"; role = "server"; }; @@ -217,7 +217,7 @@ nixosConfigurations."estinien" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { - inherit userName userEmail; + inherit userName userEmail nur; hostname = "estinien"; role = "server"; }; From 04518129d50cdf8269399ff099e5bc2d87a859d0 Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Mon, 10 Aug 2026 23:38:39 -0400 Subject: [PATCH 06/13] mod: adjusted hildibrand --- modules/machine/estinien/configuration.nix | 16 +++------- .../estinien/hardware-configuration.nix | 32 +++++++++++++++++++ 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/modules/machine/estinien/configuration.nix b/modules/machine/estinien/configuration.nix index 25c03ee..2074082 100644 --- a/modules/machine/estinien/configuration.nix +++ b/modules/machine/estinien/configuration.nix @@ -3,12 +3,7 @@ userName, nur, ... -}: let - nurPkgs = import "${nur.outPath}/pkgs" { - inherit pkgs; - hildibrand = nur.inputs.hildibrand.packages.${pkgs.stdenv.hostPlatform.system}.default; - }; -in { +}: { imports = [ ../../pwrMgmt ../../networking/core.nix @@ -58,18 +53,18 @@ in { }; environment.systemPackages = [ - nurPkgs.hildibrand + nur.packages.${pkgs.stdenv.hostPlatform.system}.hildibrand ]; - systemd.services.vintagestory-server = { - description = "Vintage Story Server"; + systemd.services.hildibrand = { + description = "Hildibrand - trivia buzzer bot"; wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; serviceConfig = { Type = "simple"; User = userName; WorkingDirectory = "/home/${userName}"; - ExecStart = "${nurPkgs.hildibrand}/bin/hildibrand"; + ExecStart = "${nur.packages.${pkgs.stdenv.hostPlatform.system}.hildibrand}/bin/hildibrand"; Restart = "on-failure"; RestartSec = "5s"; }; @@ -77,7 +72,6 @@ in { # Add username to groups "wheel" and "video" - more may be added here later users = { - groups.hazel = {}; users = { ${userName} = { extraGroups = [ "wheel" "network" ]; diff --git a/modules/machine/estinien/hardware-configuration.nix b/modules/machine/estinien/hardware-configuration.nix index e69de29..b4e90ba 100644 --- a/modules/machine/estinien/hardware-configuration.nix +++ b/modules/machine/estinien/hardware-configuration.nix @@ -0,0 +1,32 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/profiles/qemu-guest.nix") + ]; + + boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/498ce176-f090-46d8-96bf-9e6141cffa19"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/09A6-B803"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/4a64a2ee-2b32-4e53-b00f-7b1f127162aa"; } + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; +} From d7a2d4cf380c9e542645c8780b66e894d61f844d Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Tue, 11 Aug 2026 00:21:04 -0400 Subject: [PATCH 07/13] mod: update flake --- flake.lock | 91 +++++++++++++++++++--- modules/machine/estinien/configuration.nix | 8 +- 2 files changed, 86 insertions(+), 13 deletions(-) diff --git a/flake.lock b/flake.lock index 9023792..37e2f6e 100644 --- a/flake.lock +++ b/flake.lock @@ -96,6 +96,20 @@ "type": "github" } }, + "flake-schemas": { + "locked": { + "lastModified": 1780327564, + "narHash": "sha256-HiRPtA0spK+Dkgbhz/1zW9glXxNVB+L4Rj2VYmdawb8=", + "rev": "6cc9bd98891b1fc6bb2b8cb3277df8bc72799ca6", + "revCount": 149, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.5.0/019e83cf-9af3-78b1-ac5b-70e68ad1efe1/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A" + } + }, "flake-utils": { "inputs": { "systems": "systems" @@ -197,6 +211,26 @@ "type": "github" } }, + "hildibrand": { + "inputs": { + "flake-schemas": "flake-schemas", + "nixpkgs": "nixpkgs_3", + "rust-overlay": "rust-overlay_2" + }, + "locked": { + "lastModified": 1785717646, + "narHash": "sha256-j6MlkwaYOLa3bogK4SbOnVI5eMZ9j2GdExSiKMaELPo=", + "ref": "refs/heads/master", + "rev": "9588520925513ed0e47711a5798c6e9958143a0a", + "revCount": 5, + "type": "git", + "url": "https://scm.wyattjmiller.com/wymiller/hildibrand.git" + }, + "original": { + "type": "git", + "url": "https://scm.wyattjmiller.com/wymiller/hildibrand.git" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -220,7 +254,7 @@ }, "home-manager_2": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1779507042, @@ -285,6 +319,20 @@ } }, "nixpkgs_3": { + "locked": { + "lastModified": 1784280462, + "narHash": "sha256-DtoqIqM7VkR6NxAkcLpMwmi02USwWb3JdmNGLyhthc0=", + "rev": "293d6abedf0478e681a4dfcfcb35b30fc796a32f", + "revCount": 1009740, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2605.1009740%2Brev-293d6abedf0478e681a4dfcfcb35b30fc796a32f/019f73de-20f7-7ec2-98c8-65726640dbf9/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/NixOS/nixpkgs/%2A" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1778443072, "narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=", @@ -300,7 +348,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1780902259, "narHash": "sha256-q8yYEC5f1mFlQO9RGna4LTc9QrcvWunX6FYp83munkQ=", @@ -316,7 +364,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1744536153, "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", @@ -336,15 +384,16 @@ "inputs": { "darwin": "darwin_2", "flake-utils": "flake-utils_2", + "hildibrand": "hildibrand", "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1783886399, - "narHash": "sha256-pcHOwEcr5xFGFRUriCdWFcBFBU5oouFW3iO65HCZ3cI=", + "lastModified": 1786304454, + "narHash": "sha256-2ovOgwFWnKqUMoQfxbobtIWQ+TSN62llX9eJVb9hFoY=", "ref": "refs/heads/master", - "rev": "b43f2ace4941315daabccc716e151a0ca47276db", - "revCount": 32, + "rev": "ea7094e4e33fbb030edf28383de37073fc8b84e0", + "revCount": 43, "type": "git", "url": "https://scm.wyattjmiller.com/wymiller/nur.git" }, @@ -362,7 +411,7 @@ "nix-flatpak": "nix-flatpak", "nixpkgs": "nixpkgs_2", "nur": "nur", - "rust-overlay": "rust-overlay_2" + "rust-overlay": "rust-overlay_3" } }, "rust-overlay": { @@ -388,7 +437,29 @@ }, "rust-overlay_2": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": [ + "nur", + "hildibrand", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1784438913, + "narHash": "sha256-NYF7ZM5ip0u+w1pBFDpIGEbrbgN/wpnLFAmBkWkYMXw=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "afacd6819d3765a05814ee8e3de74c77d42ac799", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_3": { + "inputs": { + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1783834461, diff --git a/modules/machine/estinien/configuration.nix b/modules/machine/estinien/configuration.nix index 2074082..f93bd45 100644 --- a/modules/machine/estinien/configuration.nix +++ b/modules/machine/estinien/configuration.nix @@ -3,7 +3,9 @@ userName, nur, ... -}: { +}: let + hildibrand = nur.packages.${pkgs.stdenv.hostPlatform.system}.hildibrand; + in { imports = [ ../../pwrMgmt ../../networking/core.nix @@ -53,7 +55,7 @@ }; environment.systemPackages = [ - nur.packages.${pkgs.stdenv.hostPlatform.system}.hildibrand + hildibrand ]; systemd.services.hildibrand = { @@ -64,7 +66,7 @@ Type = "simple"; User = userName; WorkingDirectory = "/home/${userName}"; - ExecStart = "${nur.packages.${pkgs.stdenv.hostPlatform.system}.hildibrand}/bin/hildibrand"; + ExecStart = "${hildibrand}/bin/hildebrand"; Restart = "on-failure"; RestartSec = "5s"; }; From a1f77ed407be8b3121ba87b4b66f26144874416f Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Tue, 11 Aug 2026 20:05:11 -0400 Subject: [PATCH 08/13] add: added hardware config --- .../raubahn/hardware-configuration.nix | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/modules/machine/raubahn/hardware-configuration.nix b/modules/machine/raubahn/hardware-configuration.nix index e69de29..9dc7cc7 100644 --- a/modules/machine/raubahn/hardware-configuration.nix +++ b/modules/machine/raubahn/hardware-configuration.nix @@ -0,0 +1,32 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/profiles/qemu-guest.nix") + ]; + + boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/ec4c43ec-efcc-40ea-a4c8-411e60ee7c4e"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/140E-FE19"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/547bbd78-85be-4d17-a519-c4a2a923bdab"; } + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; +} From ce3a1bc06d7f064bb69be7cf4bd0a3e70efe54cf Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Thu, 27 Aug 2026 13:07:46 -0400 Subject: [PATCH 09/13] chore: add flake lock update workflow --- .gitea/workflows/update-flake-lock.yml | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .gitea/workflows/update-flake-lock.yml diff --git a/.gitea/workflows/update-flake-lock.yml b/.gitea/workflows/update-flake-lock.yml new file mode 100644 index 0000000..5509aba --- /dev/null +++ b/.gitea/workflows/update-flake-lock.yml @@ -0,0 +1,40 @@ +name: Update flake lock + +on: + schedule: + # Gitea cron schedules use UTC. 07:00 UTC is 03:00 EDT. + - cron: "0 7 * * 0" + workflow_dispatch: + +permissions: + contents: write + +jobs: + update-flake-lock: + runs-on: ubuntu-latest + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Install upstream Nix + uses: cachix/install-nix-action@v31 + + - name: Update flake lock + run: nix flake update + + - name: Commit and push changes + shell: bash + run: | + set -euo pipefail + + if git diff --quiet -- flake.lock; then + echo "flake.lock is already up to date" + exit 0 + fi + + git config user.name "gitea-actions[bot]" + git config user.email "gitea-actions[bot]@noreply.localhost" + git add flake.lock + git commit -m "chore: update flake lock" + git push From 7853a1b457443b45929833b34f4a9c38251d9a63 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 30 Aug 2026 07:05:21 +0000 Subject: [PATCH 10/13] chore: update flake lock --- flake.lock | 232 +++++++++++++++++++++++++++++------------------------ 1 file changed, 128 insertions(+), 104 deletions(-) diff --git a/flake.lock b/flake.lock index 37e2f6e..7445de6 100644 --- a/flake.lock +++ b/flake.lock @@ -9,11 +9,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1783689476, - "narHash": "sha256-Ac4EGPZr9e+mPUdmavJFSTft4vgoXml40+YOFYKTXPg=", + "lastModified": 1787517695, + "narHash": "sha256-Z119G3qLJx22frNHO3/seMs7fCCvxe9NJJRfN4Jadew=", "owner": "ezKEa", "repo": "aagl-gtk-on-nix", - "rev": "af94408291ad477cae8eed964981ab41f90eb184", + "rev": "4bb57072d963aa47f14894383a5560cf290e296a", "type": "github" }, "original": { @@ -22,6 +22,29 @@ "type": "github" } }, + "caitsith": { + "inputs": { + "flake-schemas": "flake-schemas", + "nixpkgs": [ + "nur", + "nixpkgs" + ], + "rust-overlay": "rust-overlay_2" + }, + "locked": { + "lastModified": 1787710235, + "narHash": "sha256-uWDHHB5Z9m3cXQNjfdWWqp2S/SwosukkJv57ORljCvQ=", + "ref": "refs/heads/master", + "rev": "4afabd4956611ec9213dd8392755dece81688b67", + "revCount": 20, + "type": "git", + "url": "https://scm.wyattjmiller.com/wymiller/caitsith.git" + }, + "original": { + "type": "git", + "url": "https://scm.wyattjmiller.com/wymiller/caitsith.git" + } + }, "darwin": { "inputs": { "nixpkgs": [ @@ -51,11 +74,11 @@ ] }, "locked": { - "lastModified": 1779036909, - "narHash": "sha256-zXcwYQGCT6pzinK+1dBB2ekTVtfxGZAapb3Evdcu4fY=", + "lastModified": 1786845137, + "narHash": "sha256-oQFip+v0luP8NIxJzmiW4Wu8bILsbFWom5l0zonl8hQ=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "56c666e108467d87d13508936aade6d567f2a501", + "rev": "4cff07de74b50e64bdd68cd4e722ab5b6b35ee48", "type": "github" }, "original": { @@ -97,6 +120,20 @@ } }, "flake-schemas": { + "locked": { + "lastModified": 1761577921, + "narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=", + "rev": "47849c7625e223d36766968cc6dc23ba0e135922", + "revCount": 107, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A" + } + }, + "flake-schemas_2": { "locked": { "lastModified": 1780327564, "narHash": "sha256-HiRPtA0spK+Dkgbhz/1zW9glXxNVB+L4Rj2VYmdawb8=", @@ -128,24 +165,6 @@ "type": "github" } }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "git-hooks": { "inputs": { "flake-compat": "flake-compat_2", @@ -198,11 +217,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1783668331, - "narHash": "sha256-mMfzU9jvq9XQyyssR9w0Rki8/Ec4Ez+bLkFWc7BaGGg=", + "lastModified": 1787906838, + "narHash": "sha256-BVoCD5auserFdtRIvXkALWYtrFMrXJS/8JDsEEiH44Y=", "owner": "purpleclay", "repo": "go-overlay", - "rev": "423eed783363fa154fc7f0c049f7effa910d2440", + "rev": "34bdca05fbef02ce7dd69873fbe45197d6fdd2c4", "type": "github" }, "original": { @@ -213,9 +232,12 @@ }, "hildibrand": { "inputs": { - "flake-schemas": "flake-schemas", - "nixpkgs": "nixpkgs_3", - "rust-overlay": "rust-overlay_2" + "flake-schemas": "flake-schemas_2", + "nixpkgs": [ + "nur", + "nixpkgs" + ], + "rust-overlay": "rust-overlay_3" }, "locked": { "lastModified": 1785717646, @@ -238,11 +260,11 @@ ] }, "locked": { - "lastModified": 1783740085, - "narHash": "sha256-qajyHfZY29G2oEQk+uHxmsJcRoBUBXP9maTpFlwP/dI=", + "lastModified": 1787377438, + "narHash": "sha256-Sxu1NLTD/Ern6hFGLlZmtKCSct3YQXZI/lls8RE1XeM=", "owner": "nix-community", "repo": "home-manager", - "rev": "3cd22efe6471dc7365c822bd9ad73a21e55f38fb", + "rev": "65258d5c65a250189fde2e35f490d15e064c4c62", "type": "github" }, "original": { @@ -254,14 +276,17 @@ }, "home-manager_2": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": [ + "nur", + "nixpkgs" + ] }, "locked": { - "lastModified": 1779507042, - "narHash": "sha256-7wOwi8B6D0BYsieZCnHZZj2sNUzgJhLoIVSfkwB7lxQ=", + "lastModified": 1787778830, + "narHash": "sha256-GnLPpDT727E6VpDlALP8JeP1BbSQ17H0HiEEYq6Ql4w=", "owner": "nix-community", "repo": "home-manager", - "rev": "509ed3c603349a9d43de9e2ae6613baea6bd5b34", + "rev": "6b449e35980e1b75dd17da2d6d9b66e757194f1c", "type": "github" }, "original": { @@ -304,11 +329,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1783703440, - "narHash": "sha256-O3/YajjWo001VUIgD8BwaRdSNLUFe7nZ1qV5TwhRBcw=", + "lastModified": 1787848966, + "narHash": "sha256-7gDpu5hpq0rOYnYMcOWqSzquK4HA/xU8Xf3CjUBOOJA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "8f0500b9660505dc3cb647775fe9a978a74b5283", + "rev": "d57af924f160a5084293c71c2043f058bd1cdb60", "type": "github" }, "original": { @@ -320,41 +345,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1784280462, - "narHash": "sha256-DtoqIqM7VkR6NxAkcLpMwmi02USwWb3JdmNGLyhthc0=", - "rev": "293d6abedf0478e681a4dfcfcb35b30fc796a32f", - "revCount": 1009740, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2605.1009740%2Brev-293d6abedf0478e681a4dfcfcb35b30fc796a32f/019f73de-20f7-7ec2-98c8-65726640dbf9/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/NixOS/nixpkgs/%2A" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1778443072, - "narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=", + "lastModified": 1787753485, + "narHash": "sha256-BZWCi9ZRJiARTuKTbbtvFTj7t1TK4G3UEckT3HyNfRg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1780902259, - "narHash": "sha256-q8yYEC5f1mFlQO9RGna4LTc9QrcvWunX6FYp83munkQ=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "bd0ff2d3eac24699c3664d5966b9ef36f388e2ca", + "rev": "062346a6d85bc4b49dfaa61c986e9c5be21217d1", "type": "github" }, "original": { @@ -364,7 +359,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_4": { "locked": { "lastModified": 1744536153, "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", @@ -382,18 +377,19 @@ }, "nur": { "inputs": { + "caitsith": "caitsith", "darwin": "darwin_2", - "flake-utils": "flake-utils_2", "hildibrand": "hildibrand", "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_3", + "rust-overlay": "rust-overlay_4" }, "locked": { - "lastModified": 1786304454, - "narHash": "sha256-2ovOgwFWnKqUMoQfxbobtIWQ+TSN62llX9eJVb9hFoY=", + "lastModified": 1787797185, + "narHash": "sha256-jCNkS3HfdZfdxeRwzuHhK2p3h0kjO+sikWG6r/eO4m0=", "ref": "refs/heads/master", - "rev": "ea7094e4e33fbb030edf28383de37073fc8b84e0", - "revCount": 43, + "rev": "af5b631490a4a8d01bba6b4ee39d6e59bd78950d", + "revCount": 58, "type": "git", "url": "https://scm.wyattjmiller.com/wymiller/nur.git" }, @@ -411,7 +407,7 @@ "nix-flatpak": "nix-flatpak", "nixpkgs": "nixpkgs_2", "nur": "nur", - "rust-overlay": "rust-overlay_3" + "rust-overlay": "rust-overlay_5" } }, "rust-overlay": { @@ -422,11 +418,11 @@ ] }, "locked": { - "lastModified": 1782875958, - "narHash": "sha256-5eqDcnBjb1424HRQdnhuhNOBZguq1Z2tqSa2OMF/m2c=", + "lastModified": 1785476452, + "narHash": "sha256-/CXwCFPS41rb/JI2VitKCgVK6V5E6/sfw5ke3B9zyVQ=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "13139aefa973f3d96c60c0fbab801de058ae25ca", + "rev": "6ef009bf4c4873cdc1a621826722bdea7c03e62c", "type": "github" }, "original": { @@ -436,6 +432,28 @@ } }, "rust-overlay_2": { + "inputs": { + "nixpkgs": [ + "nur", + "caitsith", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1771729765, + "narHash": "sha256-HNsDSR5bhLSrIpi9bTb2uTK1qnPo1xFSBxs6YmFyprk=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "be926cb1a76e8450ab2b92121b2e88d09fa4d41c", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_3": { "inputs": { "nixpkgs": [ "nur", @@ -457,16 +475,37 @@ "type": "github" } }, - "rust-overlay_3": { + "rust-overlay_4": { "inputs": { - "nixpkgs": "nixpkgs_6" + "nixpkgs": [ + "nur", + "nixpkgs" + ] }, "locked": { - "lastModified": 1783834461, - "narHash": "sha256-FCmrs1StAghJDKfqy56KM96KZtxpYzgeq6zM3QO8wjA=", + "lastModified": 1787713867, + "narHash": "sha256-ZRYTEvDb8QZLCHRoMyIZle9V3Bvw905m0teeo1RvI7M=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "a286e5b998e852297a403786f063fb2c9fe7f57a", + "rev": "494680f9ffa2b4bf9f2df0f442c7096e44adfa00", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_5": { + "inputs": { + "nixpkgs": "nixpkgs_4" + }, + "locked": { + "lastModified": 1787993548, + "narHash": "sha256-+IAEnmmx5YIhUWo0lp15jLLHchnXo5yKgWsi6C6Cf+0=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "996e9b0b019a4a9eb9e9a5641aefa06d801b5895", "type": "github" }, "original": { @@ -489,21 +528,6 @@ "repo": "default", "type": "github" } - }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } } }, "root": "root", From 6cf609acc184927e753839a63dacb3c569d8b07c Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 6 Sep 2026 07:08:23 +0000 Subject: [PATCH 11/13] chore: update flake lock --- flake.lock | 66 +++++++++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/flake.lock b/flake.lock index 7445de6..e788a5a 100644 --- a/flake.lock +++ b/flake.lock @@ -32,11 +32,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1787710235, - "narHash": "sha256-uWDHHB5Z9m3cXQNjfdWWqp2S/SwosukkJv57ORljCvQ=", + "lastModified": 1788133146, + "narHash": "sha256-rjxs1D9duSUWf/lnJV6JZXqdpTEbJ1ntX1hZyYHOuK4=", "ref": "refs/heads/master", - "rev": "4afabd4956611ec9213dd8392755dece81688b67", - "revCount": 20, + "rev": "427757654f013e316b3e267dd345c3ab780da7b6", + "revCount": 22, "type": "git", "url": "https://scm.wyattjmiller.com/wymiller/caitsith.git" }, @@ -217,11 +217,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1787906838, - "narHash": "sha256-BVoCD5auserFdtRIvXkALWYtrFMrXJS/8JDsEEiH44Y=", + "lastModified": 1788301927, + "narHash": "sha256-Zmcvt5yW//YLT3HYe3bWN1Sf2txYrnBpa5jLULVokc0=", "owner": "purpleclay", "repo": "go-overlay", - "rev": "34bdca05fbef02ce7dd69873fbe45197d6fdd2c4", + "rev": "fe48ae4f56981f9f7c2bf03d4951fb0aa6e2095b", "type": "github" }, "original": { @@ -240,11 +240,11 @@ "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1785717646, - "narHash": "sha256-j6MlkwaYOLa3bogK4SbOnVI5eMZ9j2GdExSiKMaELPo=", + "lastModified": 1788130254, + "narHash": "sha256-LR+73+2a51LOUKVTkEsP/XMVSZXm2P4hlgb7/KxdQ30=", "ref": "refs/heads/master", - "rev": "9588520925513ed0e47711a5798c6e9958143a0a", - "revCount": 5, + "rev": "f2049db9c29bf3ab0beff7cf0a990735d5571446", + "revCount": 6, "type": "git", "url": "https://scm.wyattjmiller.com/wymiller/hildibrand.git" }, @@ -260,11 +260,11 @@ ] }, "locked": { - "lastModified": 1787377438, - "narHash": "sha256-Sxu1NLTD/Ern6hFGLlZmtKCSct3YQXZI/lls8RE1XeM=", + "lastModified": 1788642154, + "narHash": "sha256-sPpQFVaFTDqO/4vvCAhuAhqTgqN/ygu+9eJcs5eB0js=", "owner": "nix-community", "repo": "home-manager", - "rev": "65258d5c65a250189fde2e35f490d15e064c4c62", + "rev": "fd0956c99c41ae3c13a73a638f1f7e963aebc4ab", "type": "github" }, "original": { @@ -282,11 +282,11 @@ ] }, "locked": { - "lastModified": 1787778830, - "narHash": "sha256-GnLPpDT727E6VpDlALP8JeP1BbSQ17H0HiEEYq6Ql4w=", + "lastModified": 1788651960, + "narHash": "sha256-v9wJd32eZ2bvhBzVOd7TIjLQd011P7nwOhjKtWlci5I=", "owner": "nix-community", "repo": "home-manager", - "rev": "6b449e35980e1b75dd17da2d6d9b66e757194f1c", + "rev": "2c0350c759688177331b8f5242311fae8877bdb3", "type": "github" }, "original": { @@ -329,11 +329,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1787848966, - "narHash": "sha256-7gDpu5hpq0rOYnYMcOWqSzquK4HA/xU8Xf3CjUBOOJA=", + "lastModified": 1788584326, + "narHash": "sha256-Fd3OB8J9JhgliQwOKcqx4M672CInxi1I5VnwsaXeSQo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d57af924f160a5084293c71c2043f058bd1cdb60", + "rev": "6713828a351efa628b025a1adf7f43cbf8597513", "type": "github" }, "original": { @@ -345,11 +345,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1787753485, - "narHash": "sha256-BZWCi9ZRJiARTuKTbbtvFTj7t1TK4G3UEckT3HyNfRg=", + "lastModified": 1788584326, + "narHash": "sha256-Fd3OB8J9JhgliQwOKcqx4M672CInxi1I5VnwsaXeSQo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "062346a6d85bc4b49dfaa61c986e9c5be21217d1", + "rev": "6713828a351efa628b025a1adf7f43cbf8597513", "type": "github" }, "original": { @@ -385,11 +385,11 @@ "rust-overlay": "rust-overlay_4" }, "locked": { - "lastModified": 1787797185, - "narHash": "sha256-jCNkS3HfdZfdxeRwzuHhK2p3h0kjO+sikWG6r/eO4m0=", + "lastModified": 1788678317, + "narHash": "sha256-y5ZQjk4j0yiRiNxcYPlf3YCGybsUa7SC2UJC6xhiC5A=", "ref": "refs/heads/master", - "rev": "af5b631490a4a8d01bba6b4ee39d6e59bd78950d", - "revCount": 58, + "rev": "21037dae06b477f41583995a29fb6a3cc136e906", + "revCount": 77, "type": "git", "url": "https://scm.wyattjmiller.com/wymiller/nur.git" }, @@ -483,11 +483,11 @@ ] }, "locked": { - "lastModified": 1787713867, - "narHash": "sha256-ZRYTEvDb8QZLCHRoMyIZle9V3Bvw905m0teeo1RvI7M=", + "lastModified": 1788678114, + "narHash": "sha256-pcqbpV4ZI79al6KAlr+WJjaEo/PYfgctRlG43D5BSJM=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "494680f9ffa2b4bf9f2df0f442c7096e44adfa00", + "rev": "4748ec2f5ed4a881474ed4c98aa71a5308cdac8d", "type": "github" }, "original": { @@ -501,11 +501,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1787993548, - "narHash": "sha256-+IAEnmmx5YIhUWo0lp15jLLHchnXo5yKgWsi6C6Cf+0=", + "lastModified": 1788678114, + "narHash": "sha256-pcqbpV4ZI79al6KAlr+WJjaEo/PYfgctRlG43D5BSJM=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "996e9b0b019a4a9eb9e9a5641aefa06d801b5895", + "rev": "4748ec2f5ed4a881474ed4c98aa71a5308cdac8d", "type": "github" }, "original": { From ee60d5de02a4d4b754a355536f75feb06fad08c7 Mon Sep 17 00:00:00 2001 From: "gitea-actions[bot]" Date: Sun, 13 Sep 2026 07:06:14 +0000 Subject: [PATCH 12/13] chore: update flake lock --- flake.lock | 199 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 136 insertions(+), 63 deletions(-) diff --git a/flake.lock b/flake.lock index e788a5a..a374dbd 100644 --- a/flake.lock +++ b/flake.lock @@ -9,11 +9,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1787517695, - "narHash": "sha256-Z119G3qLJx22frNHO3/seMs7fCCvxe9NJJRfN4Jadew=", + "lastModified": 1789138122, + "narHash": "sha256-mh+ZiGCtHAo0xIi1yaNjHsftfnlWz9JiYwHCyT16yIE=", "owner": "ezKEa", "repo": "aagl-gtk-on-nix", - "rev": "4bb57072d963aa47f14894383a5560cf290e296a", + "rev": "d82d6d6f66caf4b63fb154e62fad83c627874127", "type": "github" }, "original": { @@ -32,11 +32,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1788133146, - "narHash": "sha256-rjxs1D9duSUWf/lnJV6JZXqdpTEbJ1ntX1hZyYHOuK4=", + "lastModified": 1788678360, + "narHash": "sha256-wY0SpYoSCFUEDViELieo2hh39JRNRwQcPonrtrmAc40=", "ref": "refs/heads/master", - "rev": "427757654f013e316b3e267dd345c3ab780da7b6", - "revCount": 22, + "rev": "e6a3ec44bc55dcd9531e69b7a5ba05e49561d7c7", + "revCount": 23, "type": "git", "url": "https://scm.wyattjmiller.com/wymiller/caitsith.git" }, @@ -119,14 +119,30 @@ "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, "flake-schemas": { "locked": { - "lastModified": 1761577921, - "narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=", - "rev": "47849c7625e223d36766968cc6dc23ba0e135922", - "revCount": 107, + "lastModified": 1780327564, + "narHash": "sha256-HiRPtA0spK+Dkgbhz/1zW9glXxNVB+L4Rj2VYmdawb8=", + "rev": "6cc9bd98891b1fc6bb2b8cb3277df8bc72799ca6", + "revCount": 149, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.5.0/019e83cf-9af3-78b1-ac5b-70e68ad1efe1/source.tar.gz" }, "original": { "type": "tarball", @@ -165,21 +181,38 @@ "type": "github" } }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "git-hooks": { "inputs": { "flake-compat": "flake-compat_2", - "gitignore": "gitignore", "nixpkgs": [ "go-overlay", "nixpkgs" ] }, "locked": { - "lastModified": 1778507602, - "narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=", + "lastModified": 1788267358, + "narHash": "sha256-nt+lUqYVpc9Y6JeMd2WmXzCDojasdadKo0mWcluvY2Y=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a", + "rev": "27555e2624241fb116b49095df4caaee85a25691", "type": "github" }, "original": { @@ -188,25 +221,26 @@ "type": "github" } }, - "gitignore": { + "git-hooks_2": { "inputs": { + "flake-compat": "flake-compat_3", "nixpkgs": [ + "nur", "go-overlay", - "git-hooks", "nixpkgs" ] }, "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "lastModified": 1788267358, + "narHash": "sha256-nt+lUqYVpc9Y6JeMd2WmXzCDojasdadKo0mWcluvY2Y=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "27555e2624241fb116b49095df4caaee85a25691", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", + "owner": "cachix", + "repo": "git-hooks.nix", "type": "github" } }, @@ -217,11 +251,34 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1788301927, - "narHash": "sha256-Zmcvt5yW//YLT3HYe3bWN1Sf2txYrnBpa5jLULVokc0=", + "lastModified": 1789140629, + "narHash": "sha256-1TN95Z5nh1z6pyuou2QguhkWJKAl+hIpcfVV/RayGQQ=", "owner": "purpleclay", "repo": "go-overlay", - "rev": "fe48ae4f56981f9f7c2bf03d4951fb0aa6e2095b", + "rev": "7069b95f142184721d3aeac373d687912e7ada0e", + "type": "github" + }, + "original": { + "owner": "purpleclay", + "repo": "go-overlay", + "type": "github" + } + }, + "go-overlay_2": { + "inputs": { + "flake-utils": "flake-utils_2", + "git-hooks": "git-hooks_2", + "nixpkgs": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1789140629, + "narHash": "sha256-1TN95Z5nh1z6pyuou2QguhkWJKAl+hIpcfVV/RayGQQ=", + "owner": "purpleclay", + "repo": "go-overlay", + "rev": "7069b95f142184721d3aeac373d687912e7ada0e", "type": "github" }, "original": { @@ -240,11 +297,11 @@ "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1788130254, - "narHash": "sha256-LR+73+2a51LOUKVTkEsP/XMVSZXm2P4hlgb7/KxdQ30=", + "lastModified": 1788678407, + "narHash": "sha256-Yh0HFdJyYJ9s/9R74ybEAWs8bT8aeIiebFHCJE3534E=", "ref": "refs/heads/master", - "rev": "f2049db9c29bf3ab0beff7cf0a990735d5571446", - "revCount": 6, + "rev": "9b9eec68fe154e8ea0bc560677006d7aa69bf855", + "revCount": 7, "type": "git", "url": "https://scm.wyattjmiller.com/wymiller/hildibrand.git" }, @@ -260,11 +317,11 @@ ] }, "locked": { - "lastModified": 1788642154, - "narHash": "sha256-sPpQFVaFTDqO/4vvCAhuAhqTgqN/ygu+9eJcs5eB0js=", + "lastModified": 1789267039, + "narHash": "sha256-LWiBv9yAYFi2LPbUhDGHPGKYskJQjj2fw12OlyO1uQo=", "owner": "nix-community", "repo": "home-manager", - "rev": "fd0956c99c41ae3c13a73a638f1f7e963aebc4ab", + "rev": "ec172013fa62135f58fb58dd17ae9651e8f39727", "type": "github" }, "original": { @@ -282,11 +339,11 @@ ] }, "locked": { - "lastModified": 1788651960, - "narHash": "sha256-v9wJd32eZ2bvhBzVOd7TIjLQd011P7nwOhjKtWlci5I=", + "lastModified": 1789273010, + "narHash": "sha256-E7dWx+utzZPpqQsBUd5sMimKTWMEEbTKFD+ya99Shps=", "owner": "nix-community", "repo": "home-manager", - "rev": "2c0350c759688177331b8f5242311fae8877bdb3", + "rev": "fdc36b12804b0179b24a5ffd282e4c95c37072e2", "type": "github" }, "original": { @@ -313,11 +370,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1778869304, - "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", + "lastModified": 1789006805, + "narHash": "sha256-xB8mKMOx1IA9vTDNLmJZ6n4wCMq/cuWBBOzGCRnqxrU=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d233902339c02a9c334e7e593de68855ad26c4cb", + "rev": "8ce4ef6cb6f871616146b9fe26d2a5ae594e94fe", "type": "github" }, "original": { @@ -329,11 +386,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1788584326, - "narHash": "sha256-Fd3OB8J9JhgliQwOKcqx4M672CInxi1I5VnwsaXeSQo=", + "lastModified": 1789114715, + "narHash": "sha256-ugpsyk3NM2s87vXfUiIIiibbJ4Pp0JPS5p/3mfs+q+c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "6713828a351efa628b025a1adf7f43cbf8597513", + "rev": "21a67dc470149f337cecafbe965d8d252a390518", "type": "github" }, "original": { @@ -345,11 +402,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1788584326, - "narHash": "sha256-Fd3OB8J9JhgliQwOKcqx4M672CInxi1I5VnwsaXeSQo=", + "lastModified": 1789114715, + "narHash": "sha256-ugpsyk3NM2s87vXfUiIIiibbJ4Pp0JPS5p/3mfs+q+c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6713828a351efa628b025a1adf7f43cbf8597513", + "rev": "21a67dc470149f337cecafbe965d8d252a390518", "type": "github" }, "original": { @@ -379,17 +436,18 @@ "inputs": { "caitsith": "caitsith", "darwin": "darwin_2", + "go-overlay": "go-overlay_2", "hildibrand": "hildibrand", "home-manager": "home-manager_2", "nixpkgs": "nixpkgs_3", "rust-overlay": "rust-overlay_4" }, "locked": { - "lastModified": 1788678317, - "narHash": "sha256-y5ZQjk4j0yiRiNxcYPlf3YCGybsUa7SC2UJC6xhiC5A=", + "lastModified": 1789283127, + "narHash": "sha256-lax4hk2gJykg1bPLkSUTMRokudDWvvia3M4/72sTBt8=", "ref": "refs/heads/master", - "rev": "21037dae06b477f41583995a29fb6a3cc136e906", - "revCount": 77, + "rev": "024df8e385052c32a2b5d98bb33aa261710fb987", + "revCount": 96, "type": "git", "url": "https://scm.wyattjmiller.com/wymiller/nur.git" }, @@ -440,11 +498,11 @@ ] }, "locked": { - "lastModified": 1771729765, - "narHash": "sha256-HNsDSR5bhLSrIpi9bTb2uTK1qnPo1xFSBxs6YmFyprk=", + "lastModified": 1788678114, + "narHash": "sha256-pcqbpV4ZI79al6KAlr+WJjaEo/PYfgctRlG43D5BSJM=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "be926cb1a76e8450ab2b92121b2e88d09fa4d41c", + "rev": "4748ec2f5ed4a881474ed4c98aa71a5308cdac8d", "type": "github" }, "original": { @@ -462,11 +520,11 @@ ] }, "locked": { - "lastModified": 1784438913, - "narHash": "sha256-NYF7ZM5ip0u+w1pBFDpIGEbrbgN/wpnLFAmBkWkYMXw=", + "lastModified": 1788678114, + "narHash": "sha256-pcqbpV4ZI79al6KAlr+WJjaEo/PYfgctRlG43D5BSJM=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "afacd6819d3765a05814ee8e3de74c77d42ac799", + "rev": "4748ec2f5ed4a881474ed4c98aa71a5308cdac8d", "type": "github" }, "original": { @@ -483,11 +541,11 @@ ] }, "locked": { - "lastModified": 1788678114, - "narHash": "sha256-pcqbpV4ZI79al6KAlr+WJjaEo/PYfgctRlG43D5BSJM=", + "lastModified": 1789196581, + "narHash": "sha256-yJr1Bt4fKkKIpPYbsKGqJ0VFdoDnURgRwuffmBQ2WzY=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "4748ec2f5ed4a881474ed4c98aa71a5308cdac8d", + "rev": "228ecefb6329d5a531b77b46b581a2f0c26ee056", "type": "github" }, "original": { @@ -501,11 +559,11 @@ "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1788678114, - "narHash": "sha256-pcqbpV4ZI79al6KAlr+WJjaEo/PYfgctRlG43D5BSJM=", + "lastModified": 1789196581, + "narHash": "sha256-yJr1Bt4fKkKIpPYbsKGqJ0VFdoDnURgRwuffmBQ2WzY=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "4748ec2f5ed4a881474ed4c98aa71a5308cdac8d", + "rev": "228ecefb6329d5a531b77b46b581a2f0c26ee056", "type": "github" }, "original": { @@ -528,6 +586,21 @@ "repo": "default", "type": "github" } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", From 0b4027f0c01509597aca5ff7541494fb9fd2632e Mon Sep 17 00:00:00 2001 From: "Wyatt J. Miller" Date: Mon, 14 Sep 2026 19:14:30 -0400 Subject: [PATCH 13/13] mod: added proton manager to gaming module, added alsa to sound, added 32-bit libs to graphics --- modules/apps/gaming.nix | 35 +++++++++++++++++-------- modules/graphics/default.nix | 9 ++++--- modules/machine/cloud/configuration.nix | 8 +++--- modules/sound/pipewire.nix | 5 ++++ 4 files changed, 38 insertions(+), 19 deletions(-) diff --git a/modules/apps/gaming.nix b/modules/apps/gaming.nix index e871dce..30435bf 100644 --- a/modules/apps/gaming.nix +++ b/modules/apps/gaming.nix @@ -76,6 +76,16 @@ in { enable = lib.mkEnableOption "OpenGL/Vulkan overlay tool shown in games presenting FPS, CPU/GPU/memory utilization, load, etc."; }; + proton = { + enable = lib.mkEnableOption "Proton compatibility tool management"; + + manager = lib.mkOption { + type = lib.types.enum ["protonplus" "protonup-qt"]; + default = "protonup-qt"; + description = "Graphical Proton compatibility tool manager to install"; + }; + }; + lutris = { enable = lib.mkEnableOption "Lutris game manager and launcher"; package = lib.mkOption { @@ -93,14 +103,7 @@ in { }; }; - # Compatibility layers for Lutris compatibility = { - protonSupport = lib.mkOption { - type = lib.types.bool; - default = true; - description = "Enable Proton-like compatibility layers for Lutris"; - }; - extraTools = lib.mkOption { type = lib.types.listOf lib.types.package; default = []; @@ -153,14 +156,27 @@ in { archon = { enable = lib.mkEnableOption "Archon from NUR"; }; + + opengoal = { + enable = lib.mkEnableOption "OpenGOAL, a game engine used in a certain PlayStation 2 franchise"; + }; }; config = let agl = cfg.aagl; nurPkgs = import "${nur.outPath}/pkgs" { inherit pkgs; }; + protonManager = { + protonplus = pkgs.protonplus; + protonup-qt = pkgs.protonup-qt; + }.${cfg.proton.manager}; in { programs.steam = lib.mkIf cfg.steam.enable { enable = true; + extraPackages = with pkgs; [ + gamescope + gamemode + ]; + remotePlay.openFirewall = cfg.steam.firewall.remotePlay; localNetworkGameTransfers.openFirewall = cfg.steam.firewall.localNetworkGameTransfers; }; @@ -214,13 +230,10 @@ in { cfg.lutris.wine.package pkgs.winetricks ]) ++ - (lib.optionals cfg.lutris.compatibility.protonSupport [ - pkgs.protonup-ng - pkgs.protonup-qt - ]) ++ cfg.lutris.compatibility.extraTools ++ cfg.lutris.extraPackages )) ++ + (lib.optionals cfg.proton.enable [protonManager]) ++ (lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++ (lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher pkgs.fflogs]) ++ (lib.optionals cfg.vintage-story.enable [nurPkgs.vintage-story]) ++ diff --git a/modules/graphics/default.nix b/modules/graphics/default.nix index 47fc13f..16acfe4 100644 --- a/modules/graphics/default.nix +++ b/modules/graphics/default.nix @@ -43,6 +43,11 @@ in { vulkan-tools mesa-demos ]; + + hardware.graphics = { + enable = true; + enable32Bit = true; + }; } (mkIf (cfg.gpuVendor == "nvidia") { @@ -61,9 +66,6 @@ in { (mkIf (cfg.gpuVendor == "amd") { services.xserver.videoDrivers = ["amdgpu"]; - # hardware.graphics.extraPackages = with pkgs; [ - # amdvlk - # ]; environment.systemPackages = with pkgs; [ radeontop ]; @@ -82,7 +84,6 @@ in { environment.sessionVariables = { MOZ_ENABLE_WAYLAND = "1"; QT_QPA_PLATFORM = "wayland"; - SDL_VIDEODRIVER = "wayland"; }; }) diff --git a/modules/machine/cloud/configuration.nix b/modules/machine/cloud/configuration.nix index 85cd474..592e8c4 100644 --- a/modules/machine/cloud/configuration.nix +++ b/modules/machine/cloud/configuration.nix @@ -3,7 +3,6 @@ pkgs, userName, aagl, - nur, ... }: let flatpakPackages = [ @@ -114,15 +113,16 @@ in { gamemode.enable = true; gamescope.enable = true; mangohud.enable = true; + proton = { + enable = true; + manager = "protonplus"; + }; lutris = { enable = true; wine = { enable = true; package = pkgs.wine-staging; }; - compatibility = { - protonSupport = true; - }; }; ffxiv.enable = true; diff --git a/modules/sound/pipewire.nix b/modules/sound/pipewire.nix index fc7513e..292ab62 100644 --- a/modules/sound/pipewire.nix +++ b/modules/sound/pipewire.nix @@ -3,6 +3,11 @@ services.pipewire = { enable = true; pulse.enable = true; + + alsa = { + enable = true; + support32Bit = true; + }; }; environment.systemPackages = with pkgs; [