From 25d14e4409ff680fdbe0906af9ae5d69a37edd93 Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Mon, 7 Apr 2025 21:06:43 -0400 Subject: [PATCH] work on unifying configs --- etcnixos/flake.nix | 64 ---- etcnixos/flake.lock => flake.lock | 196 +++++++++++- flake.nix | 109 +++++++ home-manager/flake.lock | 283 ------------------ home-manager/flake.nix | 81 ----- .../{system-mreow.nix => home-mreow.nix} | 0 .../{system-yarn.nix => home-yarn.nix} | 0 7 files changed, 294 insertions(+), 439 deletions(-) delete mode 100644 etcnixos/flake.nix rename etcnixos/flake.lock => flake.lock (69%) create mode 100644 flake.nix delete mode 100644 home-manager/flake.lock delete mode 100644 home-manager/flake.nix rename home-manager/{system-mreow.nix => home-mreow.nix} (100%) rename home-manager/{system-yarn.nix => home-yarn.nix} (100%) diff --git a/etcnixos/flake.nix b/etcnixos/flake.nix deleted file mode 100644 index fc5b090..0000000 --- a/etcnixos/flake.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ - description = "System nixOS flake"; - - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - - lanzaboote = { - url = "github:nix-community/lanzaboote"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - nixos-hardware.url = "github:NixOS/nixos-hardware/master"; - - agenix = { - url = "github:ryantm/agenix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - chaotic = { - url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - disko = { - url = "github:nix-community/disko/latest"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - }; - - outputs = - { - self, - nixpkgs, - lanzaboote, - nixos-hardware, - agenix, - ... - }@inputs: - let - username = "primary"; - system = "x86_64-linux"; - hostnames = [ - "mreow" - "yarn" - ]; - in - { - formatter.${system} = nixpkgs.legacyPackages.${system}.nixfmt-rfc-style; - nixosConfigurations = nixpkgs.lib.foldl' ( - config: hostname: - config - // { - "${hostname}" = nixpkgs.lib.nixosSystem { - specialArgs = { - inherit inputs username hostname; - }; - modules = [ - ./system-${hostname}.nix - ]; - }; - } - ) { } hostnames; - }; -} diff --git a/etcnixos/flake.lock b/flake.lock similarity index 69% rename from etcnixos/flake.lock rename to flake.lock index b0f5e99..e724e2f 100644 --- a/etcnixos/flake.lock +++ b/flake.lock @@ -3,7 +3,9 @@ "agenix": { "inputs": { "darwin": "darwin", - "home-manager": "home-manager", + "home-manager": [ + "home-manager" + ], "nixpkgs": [ "nixpkgs" ], @@ -27,7 +29,7 @@ "inputs": { "fenix": "fenix", "flake-schemas": "flake-schemas", - "home-manager": "home-manager_2", + "home-manager": "home-manager", "jovian": "jovian", "nixpkgs": [ "nixpkgs" @@ -204,16 +206,16 @@ "home-manager": { "inputs": { "nixpkgs": [ - "agenix", + "chaotic", "nixpkgs" ] }, "locked": { - "lastModified": 1703113217, - "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=", + "lastModified": 1743869639, + "narHash": "sha256-Xhe3whfRW/Ay05z9m1EZ1/AkbV1yo0tm1CbgjtCi4rQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1", + "rev": "d094c6763c6ddb860580e7d3b4201f8f496a6836", "type": "github" }, "original": { @@ -225,16 +227,36 @@ "home-manager_2": { "inputs": { "nixpkgs": [ - "chaotic", "nixpkgs" ] }, "locked": { - "lastModified": 1743869639, - "narHash": "sha256-Xhe3whfRW/Ay05z9m1EZ1/AkbV1yo0tm1CbgjtCi4rQ=", + "lastModified": 1744038920, + "narHash": "sha256-9a4V1wQXS8hXZtc7mRtz0qINkGW+C99aDrmXY6oYBFg=", "owner": "nix-community", "repo": "home-manager", - "rev": "d094c6763c6ddb860580e7d3b4201f8f496a6836", + "rev": "a4d8020820a85b47f842eae76ad083b0ec2a886a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_3": { + "inputs": { + "nixpkgs": [ + "zen-browser", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743604125, + "narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a", "type": "github" }, "original": { @@ -290,6 +312,64 @@ "type": "github" } }, + "niri": { + "inputs": { + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" + }, + "locked": { + "lastModified": 1744068309, + "narHash": "sha256-4RAoQhztUI+M3XKzINEozxXWom4HOr+rvVfYaHk1Brw=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "b1beb4d118baf1a31c9744ab58402ff9eeb6a333", + "type": "github" + }, + "original": { + "owner": "sodiboo", + "repo": "niri-flake", + "type": "github" + } + }, + "niri-stable": { + "flake": false, + "locked": { + "lastModified": 1740117926, + "narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "b94a5db8790339cf9134873d8b490be69e02ac71", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "ref": "v25.02", + "repo": "niri", + "type": "github" + } + }, + "niri-unstable": { + "flake": false, + "locked": { + "lastModified": 1743923080, + "narHash": "sha256-Hb3t6FoJycnqIZmu3c6K1bJGndBsrDw8IQtM2ieLbzU=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "430b155929a60644ea223012ee0c1389fc5e3755", + "type": "github" + }, + "original": { + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, "nix-github-actions": { "inputs": { "nixpkgs": [ @@ -345,6 +425,22 @@ "type": "github" } }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1743975612, + "narHash": "sha256-o4FjFOUmjSRMK7dn0TFdAT0RRWUWD+WsspPHa+qEQT8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a880f49904d68b5e53338d1e8c7bf80f59903928", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.11", + "repo": "nixpkgs", + "type": "github" + } + }, "pre-commit-hooks-nix": { "inputs": { "flake-compat": [ @@ -376,9 +472,13 @@ "agenix": "agenix", "chaotic": "chaotic", "disko": "disko", + "home-manager": "home-manager_2", "lanzaboote": "lanzaboote", + "niri": "niri", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay_2", + "zen-browser": "zen-browser" } }, "rust-analyzer-src": { @@ -419,6 +519,26 @@ "type": "github" } }, + "rust-overlay_2": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1743993291, + "narHash": "sha256-u8GHvduU1gCtoFXvTS/wGjH1ouv5S/GRGq6MAT+sG/k=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "0cb3c8979c65dc6a5812dfe67499a8c7b8b4325b", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -433,6 +553,60 @@ "repo": "default", "type": "github" } + }, + "xwayland-satellite-stable": { + "flake": false, + "locked": { + "lastModified": 1739246919, + "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "ref": "v0.5.1", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "xwayland-satellite-unstable": { + "flake": false, + "locked": { + "lastModified": 1743346993, + "narHash": "sha256-i7rWd/5BcqLgQEtB5L/6gKN5R5GUJcmm34F+iBivH60=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "45c055696437a08e3989d9b91d9c617b84cc2bc3", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "zen-browser": { + "inputs": { + "home-manager": "home-manager_3", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1744032540, + "narHash": "sha256-KMshnTCoe11oTzsUp5T3e0+9/dVlLSI/wIA7Nli3LI0=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "f4edde8a094098c8f16de4efc93e057c2cd3c06b", + "type": "github" + }, + "original": { + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..f86e2ec --- /dev/null +++ b/flake.nix @@ -0,0 +1,109 @@ +{ + description = "System nixOS flake"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + + lanzaboote = { + url = "github:nix-community/lanzaboote"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nixos-hardware.url = "github:NixOS/nixos-hardware/master"; + + agenix = { + url = "github:ryantm/agenix"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-manager.follows = "home-manager"; + }; + + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + chaotic = { + url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + disko = { + url = "github:nix-community/disko/latest"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + zen-browser = { + url = "github:0xc000022070/zen-browser-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + niri = { + url = "github:sodiboo/niri-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = + { + self, + nixpkgs, + lanzaboote, + nixos-hardware, + agenix, + home-manager, + ... + }@inputs: + let + username = "primary"; + system = "x86_64-linux"; + hostnames = [ + "mreow" + "yarn" + ]; + + inputs.nixpkgs = + (import nixpkgs { + }).applyPatches + { + name = "nixpkgs"; + src = inputs.nixpkgs; + patches = [ + # https://github.com/NixOS/nixpkgs/pull/67576 + # gimp 3.0 + (builtins.fetchurl { + url = "https://github.com/NixOS/nixpkgs/pull/67576.diff"; + sha256 = "1idkhfirjba6iywkddyhm980x44kfl9lmp51cyfqrpbq7wlzpnia"; + }) + ]; + }; + in + { + formatter.${system} = nixpkgs.legacyPackages.${system}.nixfmt-rfc-style; + nixosConfigurations = nixpkgs.lib.foldl' ( + config: hostname: + config + // { + "${hostname}" = nixpkgs.lib.nixosSystem { + specialArgs = { + inherit inputs username hostname; + }; + modules = [ + home-manager.nixosModules.home-manager + ( + { ... }: + { + home-manager = import ./home-manager/home-${hostname}.nix { inherit inputs hostname username; }; + } + ) + ./etcnixos/system-${hostname}.nix + ]; + }; + } + ) { } hostnames; + }; +} diff --git a/home-manager/flake.lock b/home-manager/flake.lock deleted file mode 100644 index 6166e6f..0000000 --- a/home-manager/flake.lock +++ /dev/null @@ -1,283 +0,0 @@ -{ - "nodes": { - "agenix": { - "inputs": { - "darwin": "darwin", - "home-manager": [ - "home-manager" - ], - "nixpkgs": [ - "nixpkgs" - ], - "systems": "systems" - }, - "locked": { - "lastModified": 1736955230, - "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", - "owner": "ryantm", - "repo": "agenix", - "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", - "type": "github" - }, - "original": { - "owner": "ryantm", - "repo": "agenix", - "type": "github" - } - }, - "darwin": { - "inputs": { - "nixpkgs": [ - "agenix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1700795494, - "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d", - "type": "github" - }, - "original": { - "owner": "lnl7", - "ref": "master", - "repo": "nix-darwin", - "type": "github" - } - }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1744038920, - "narHash": "sha256-9a4V1wQXS8hXZtc7mRtz0qINkGW+C99aDrmXY6oYBFg=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "a4d8020820a85b47f842eae76ad083b0ec2a886a", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "home-manager_2": { - "inputs": { - "nixpkgs": [ - "zen-browser", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1743604125, - "narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "niri": { - "inputs": { - "niri-stable": "niri-stable", - "niri-unstable": "niri-unstable", - "nixpkgs": [ - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable", - "xwayland-satellite-stable": "xwayland-satellite-stable", - "xwayland-satellite-unstable": "xwayland-satellite-unstable" - }, - "locked": { - "lastModified": 1744068309, - "narHash": "sha256-4RAoQhztUI+M3XKzINEozxXWom4HOr+rvVfYaHk1Brw=", - "owner": "sodiboo", - "repo": "niri-flake", - "rev": "b1beb4d118baf1a31c9744ab58402ff9eeb6a333", - "type": "github" - }, - "original": { - "owner": "sodiboo", - "repo": "niri-flake", - "type": "github" - } - }, - "niri-stable": { - "flake": false, - "locked": { - "lastModified": 1740117926, - "narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=", - "owner": "YaLTeR", - "repo": "niri", - "rev": "b94a5db8790339cf9134873d8b490be69e02ac71", - "type": "github" - }, - "original": { - "owner": "YaLTeR", - "ref": "v25.02", - "repo": "niri", - "type": "github" - } - }, - "niri-unstable": { - "flake": false, - "locked": { - "lastModified": 1743923080, - "narHash": "sha256-Hb3t6FoJycnqIZmu3c6K1bJGndBsrDw8IQtM2ieLbzU=", - "owner": "YaLTeR", - "repo": "niri", - "rev": "430b155929a60644ea223012ee0c1389fc5e3755", - "type": "github" - }, - "original": { - "owner": "YaLTeR", - "repo": "niri", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1743964447, - "narHash": "sha256-nEo1t3Q0F+0jQ36HJfbJtiRU4OI+/0jX/iITURKe3EE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "063dece00c5a77e4a0ea24e5e5a5bd75232806f8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1743975612, - "narHash": "sha256-o4FjFOUmjSRMK7dn0TFdAT0RRWUWD+WsspPHa+qEQT8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a880f49904d68b5e53338d1e8c7bf80f59903928", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "agenix": "agenix", - "home-manager": "home-manager", - "niri": "niri", - "nixpkgs": "nixpkgs", - "rust-overlay": "rust-overlay", - "zen-browser": "zen-browser" - } - }, - "rust-overlay": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1743993291, - "narHash": "sha256-u8GHvduU1gCtoFXvTS/wGjH1ouv5S/GRGq6MAT+sG/k=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "0cb3c8979c65dc6a5812dfe67499a8c7b8b4325b", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "xwayland-satellite-stable": { - "flake": false, - "locked": { - "lastModified": 1739246919, - "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=", - "owner": "Supreeeme", - "repo": "xwayland-satellite", - "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d", - "type": "github" - }, - "original": { - "owner": "Supreeeme", - "ref": "v0.5.1", - "repo": "xwayland-satellite", - "type": "github" - } - }, - "xwayland-satellite-unstable": { - "flake": false, - "locked": { - "lastModified": 1743346993, - "narHash": "sha256-i7rWd/5BcqLgQEtB5L/6gKN5R5GUJcmm34F+iBivH60=", - "owner": "Supreeeme", - "repo": "xwayland-satellite", - "rev": "45c055696437a08e3989d9b91d9c617b84cc2bc3", - "type": "github" - }, - "original": { - "owner": "Supreeeme", - "repo": "xwayland-satellite", - "type": "github" - } - }, - "zen-browser": { - "inputs": { - "home-manager": "home-manager_2", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1744032540, - "narHash": "sha256-KMshnTCoe11oTzsUp5T3e0+9/dVlLSI/wIA7Nli3LI0=", - "owner": "0xc000022070", - "repo": "zen-browser-flake", - "rev": "f4edde8a094098c8f16de4efc93e057c2cd3c06b", - "type": "github" - }, - "original": { - "owner": "0xc000022070", - "repo": "zen-browser-flake", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/home-manager/flake.nix b/home-manager/flake.nix deleted file mode 100644 index 1ccc623..0000000 --- a/home-manager/flake.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ - description = "My nixOS flake for home-manager"; - - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - - home-manager = { - url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - niri = { - url = "github:sodiboo/niri-flake"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - agenix = { - url = "github:ryantm/agenix"; - inputs.nixpkgs.follows = "nixpkgs"; - inputs.home-manager.follows = "home-manager"; - }; - - rust-overlay = { - url = "github:oxalica/rust-overlay"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - zen-browser = { - url = "github:0xc000022070/zen-browser-flake"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - }; - - outputs = - { - self, - nixpkgs, - home-manager, - niri, - rust-overlay, - agenix, - ... - }@inputs: - let - username = "primary"; - hostname = nixpkgs.lib.strings.removeSuffix "\n" (builtins.readFile /etc/hostname); - - pkgs = import ( - (import nixpkgs { - }).applyPatches - { - name = "nixpkgs"; - src = inputs.nixpkgs; - patches = [ - # https://github.com/NixOS/nixpkgs/pull/67576 - # gimp 3.0 - (builtins.fetchurl { - url = "https://github.com/NixOS/nixpkgs/pull/67576.diff"; - sha256 = "1idkhfirjba6iywkddyhm980x44kfl9lmp51cyfqrpbq7wlzpnia"; - }) - ]; - } - ) { }; - in - { - formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style; - homeConfigurations."${username}" = home-manager.lib.homeManagerConfiguration { - inherit pkgs; - extraSpecialArgs = { - inherit - inputs - username - ; - }; - - modules = [ - ./system-${hostname}.nix - ]; - }; - }; -} diff --git a/home-manager/system-mreow.nix b/home-manager/home-mreow.nix similarity index 100% rename from home-manager/system-mreow.nix rename to home-manager/home-mreow.nix diff --git a/home-manager/system-yarn.nix b/home-manager/home-yarn.nix similarity index 100% rename from home-manager/system-yarn.nix rename to home-manager/home-yarn.nix