diff options
-rw-r--r-- | checks.nix | 8 | ||||
-rw-r--r-- | configurations/default.nix | 96 | ||||
-rw-r--r-- | configurations/eonwe/default.nix (renamed from nixosConfigurations/eonwe/default.nix) | 0 | ||||
-rw-r--r-- | configurations/iso/default.nix (renamed from nixosConfigurations/iso/default.nix) | 0 | ||||
-rw-r--r-- | configurations/manwe/default.nix (renamed from nixosConfigurations/manwe/default.nix) | 0 | ||||
-rw-r--r-- | configurations/manwe/mailserver/default.nix (renamed from nixosConfigurations/manwe/mailserver/default.nix) | 0 | ||||
-rw-r--r-- | configurations/manwe/webserver.nix (renamed from nixosConfigurations/manwe/webserver.nix) | 0 | ||||
-rw-r--r-- | configurations/melian/default.nix (renamed from nixosConfigurations/melian/default.nix) | 0 | ||||
-rw-r--r-- | configurations/test-headful/default.nix (renamed from nixosConfigurations/test-headful/default.nix) | 0 | ||||
-rw-r--r-- | configurations/test-headless/default.nix (renamed from nixosConfigurations/test-headless/default.nix) | 0 | ||||
-rw-r--r-- | configurations/varda/default.nix (renamed from nixosConfigurations/varda/default.nix) | 0 | ||||
-rw-r--r-- | configurations/yavanna/default.nix (renamed from nixosConfigurations/yavanna/default.nix) | 0 | ||||
-rw-r--r-- | flake.lock | 473 | ||||
-rw-r--r-- | flake.nix | 92 | ||||
-rw-r--r-- | modules/default.nix | 8 | ||||
-rw-r--r-- | modules/profiles/headful.nix | 3 | ||||
-rw-r--r-- | modules/x11.nix | 2 | ||||
-rw-r--r-- | nixosConfigurations/default.nix | 92 | ||||
-rw-r--r-- | overlay.nix | 102 | ||||
-rw-r--r-- | overlays.nix | 104 | ||||
-rw-r--r-- | topology.nix | 8 |
21 files changed, 651 insertions, 337 deletions
diff --git a/checks.nix b/checks.nix index a1915fa..86cb452 100644 --- a/checks.nix +++ b/checks.nix @@ -1,9 +1,5 @@ -{ inputs, system }: -let - pkgs = inputs.self.legacyPackages.${system}; -in -{ - preCommit = inputs.pre-commit.lib.${system}.run { +inputs: system: pkgs: { + preCommit = inputs.git-hooks.lib.${system}.run { src = builtins.path { name = "nixfiles"; path = ./.; diff --git a/configurations/default.nix b/configurations/default.nix new file mode 100644 index 0000000..1c1bda0 --- /dev/null +++ b/configurations/default.nix @@ -0,0 +1,96 @@ +inputs: +with inputs.self.lib; +let + mkConfiguration = + name: + { + modules ? [ ], + configuration ? ./${name}, + this ? my.configurations.${name}, + }: + nameValuePair name (nixosSystem { + inherit (this) system; + modules = + modules + ++ attrValues inputs.self.nixosModules + ++ attrValues inputs.nix-topology.nixosModules + ++ optional (configuration != null) (import configuration); + specialArgs = { + inherit inputs this; + inherit (inputs.self) lib; + }; + }); +in +mapAttrs' mkConfiguration ( + let + mkTest = this: { + modules = with inputs; [ + "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix" + nixpkgs.nixosModules.notDetected + ]; + inherit this; + }; + in + { + test-headless = mkTest { + hostname = "test-headless"; + system = "x86_64-linux"; + isHeadless = true; + isHeadful = false; + }; + + test-headful = mkTest { + hostname = "test-headful"; + system = "x86_64-linux"; + isHeadless = false; + isHeadful = true; + }; + + iso = { + this = { + hostname = "iso"; + system = "x86_64-linux"; + isHeadless = false; + isHeadful = false; + }; + modules = [ + "${inputs.nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel.nix" + ]; + }; + + eonwe.modules = with inputs; [ + nixos-hardware.nixosModules.common-cpu-amd + nixos-hardware.nixosModules.common-cpu-amd-pstate + nixos-hardware.nixosModules.common-gpu-amd + nixos-hardware.nixosModules.common-pc-ssd + nixpkgs.nixosModules.notDetected + ]; + + melian.modules = with inputs; [ + nixos-hardware.nixosModules.common-pc-laptop-ssd + nixos-hardware.nixosModules.lenovo-thinkpad-t480 + nixpkgs.nixosModules.notDetected + ]; + + manwe.modules = with inputs; [ + "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix" + nixos-hardware.nixosModules.common-cpu-amd + nixos-hardware.nixosModules.common-pc-ssd + nixpkgs.nixosModules.notDetected + ]; + + varda.modules = with inputs; [ + "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix" + nixos-hardware.nixosModules.common-cpu-amd + nixos-hardware.nixosModules.common-pc-ssd + nixpkgs.nixosModules.notDetected + ]; + + yavanna.modules = with inputs; [ + "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix" + nixos-hardware.nixosModules.common-cpu-intel + nixos-hardware.nixosModules.common-pc-hdd + nixpkgs.nixosModules.notDetected + ]; + } +) diff --git a/nixosConfigurations/eonwe/default.nix b/configurations/eonwe/default.nix index 1904cdb..1904cdb 100644 --- a/nixosConfigurations/eonwe/default.nix +++ b/configurations/eonwe/default.nix diff --git a/nixosConfigurations/iso/default.nix b/configurations/iso/default.nix index 7277e88..7277e88 100644 --- a/nixosConfigurations/iso/default.nix +++ b/configurations/iso/default.nix diff --git a/nixosConfigurations/manwe/default.nix b/configurations/manwe/default.nix index 3707440..3707440 100644 --- a/nixosConfigurations/manwe/default.nix +++ b/configurations/manwe/default.nix diff --git a/nixosConfigurations/manwe/mailserver/default.nix b/configurations/manwe/mailserver/default.nix index cc8b41d..cc8b41d 100644 --- a/nixosConfigurations/manwe/mailserver/default.nix +++ b/configurations/manwe/mailserver/default.nix diff --git a/nixosConfigurations/manwe/webserver.nix b/configurations/manwe/webserver.nix index 95a0b0b..95a0b0b 100644 --- a/nixosConfigurations/manwe/webserver.nix +++ b/configurations/manwe/webserver.nix diff --git a/nixosConfigurations/melian/default.nix b/configurations/melian/default.nix index 0805b4a..0805b4a 100644 --- a/nixosConfigurations/melian/default.nix +++ b/configurations/melian/default.nix diff --git a/nixosConfigurations/test-headful/default.nix b/configurations/test-headful/default.nix index f1da389..f1da389 100644 --- a/nixosConfigurations/test-headful/default.nix +++ b/configurations/test-headful/default.nix diff --git a/nixosConfigurations/test-headless/default.nix b/configurations/test-headless/default.nix index ef3d223..ef3d223 100644 --- a/nixosConfigurations/test-headless/default.nix +++ b/configurations/test-headless/default.nix diff --git a/nixosConfigurations/varda/default.nix b/configurations/varda/default.nix index c8ecef2..c8ecef2 100644 --- a/nixosConfigurations/varda/default.nix +++ b/configurations/varda/default.nix diff --git a/nixosConfigurations/yavanna/default.nix b/configurations/yavanna/default.nix index 2d52f53..2d52f53 100644 --- a/nixosConfigurations/yavanna/default.nix +++ b/configurations/yavanna/default.nix diff --git a/flake.lock b/flake.lock index 75e6c07..6b31e0f 100644 --- a/flake.lock +++ b/flake.lock @@ -9,9 +9,7 @@ "nixpkgs": [ "nixpkgs" ], - "systems": [ - "systems" - ] + "systems": "systems" }, "locked": { "lastModified": 1714136352, @@ -32,9 +30,7 @@ "flake-compat": [ "flake-compat" ], - "flake-utils": [ - "flake-utils" - ], + "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs" ] @@ -58,14 +54,12 @@ "flake-compat": [ "flake-compat" ], - "flake-utils": [ - "flake-utils" - ], + "flake-utils": "flake-utils_2", "nixpkgs": [ "nixpkgs" ], "pre-commit": [ - "pre-commit" + "git-hooks" ] }, "locked": { @@ -251,11 +245,31 @@ "type": "github" } }, + "devshell": { + "inputs": { + "flake-utils": "flake-utils_6", + "nixpkgs": [ + "nix-topology", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1711099426, + "narHash": "sha256-HzpgM/wc3aqpnHJJ2oDqPBkNsqWbW0WfWUO8lKu8nGk=", + "owner": "numtide", + "repo": "devshell", + "rev": "2d45b54ca4a183f2fdcf4b19c895b64fbf620ee8", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, "dns": { "inputs": { - "flake-utils": [ - "flake-utils" - ], + "flake-utils": "flake-utils_3", "nixpkgs": [ "nixpkgs" ] @@ -285,7 +299,6 @@ }, "original": { "owner": "edolstra", - "ref": "master", "repo": "flake-compat", "type": "github" } @@ -308,9 +321,58 @@ }, "flake-utils": { "inputs": { - "systems": [ - "systems" - ] + "systems": "systems_2" + }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1705309234, + "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "locked": { + "lastModified": 1614513358, + "narHash": "sha256-LakhOx3S1dRjnh0b5Dg3mbZyH0ToC9I8Y2wKSkBaTzU=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5466c5bbece17adaab2d82fae80b46e807611bf3", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { + "inputs": { + "systems": "systems_4" }, "locked": { "lastModified": 1710146030, @@ -326,6 +388,94 @@ "type": "github" } }, + "flake-utils_5": { + "inputs": { + "systems": "systems_6" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_6": { + "inputs": { + "systems": "systems_7" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_7": { + "inputs": { + "systems": "systems_8" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_8": { + "inputs": { + "systems": "systems_9" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_9": { + "locked": { + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "type": "github" + }, + "original": { + "owner": "numtide", + "ref": "master", + "repo": "flake-utils", + "type": "github" + } + }, "fromYaml": { "flake": false, "locked": { @@ -342,10 +492,38 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "flake-compat" + ], + "flake-utils": "flake-utils_4", + "gitignore": "gitignore", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": [ + "nixpkgs-stable" + ] + }, + "locked": { + "lastModified": 1714478972, + "narHash": "sha256-q//cgb52vv81uOuwz1LaXElp3XAe1TqrABXODAEF6Sk=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "2849da033884f54822af194400f8dff435ada242", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ - "pre-commit", + "git-hooks", "nixpkgs" ] }, @@ -387,11 +565,11 @@ ] }, "locked": { - "lastModified": 1714203603, - "narHash": "sha256-eT7DENhYy7EPLOqHI9zkIMD9RvMCXcqh6gGqOK5BWYQ=", + "lastModified": 1714515075, + "narHash": "sha256-azMK7aWH0eUc3IqU4Fg5rwZdB9WZBvimOGG3piqvtsY=", "owner": "nix-community", "repo": "home-manager", - "rev": "c1609d584a6b5e9e6a02010f51bd368cb4782f8e", + "rev": "6d3b6dc9222c12b951169becdf4b0592ee9576ef", "type": "github" }, "original": { @@ -424,9 +602,7 @@ "nixpkgs": [ "nixpkgs" ], - "utils": [ - "flake-utils" - ] + "utils": "utils" }, "locked": { "lastModified": 1714298568, @@ -447,19 +623,17 @@ "flake-compat": [ "flake-compat" ], - "flake-utils": [ - "flake-utils" - ], + "flake-utils": "flake-utils_5", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1714180709, - "narHash": "sha256-UgvCa4nhcgcbMfqJhziwOjMlHPzxzbNzr9AkQb2nc/U=", + "lastModified": 1714439927, + "narHash": "sha256-XH0jGADqW5Xxd4mJIOafwfAKstn2i+UBuc8ODt3g50k=", "owner": "Infinidoge", "repo": "nix-minecraft", - "rev": "94da995402d449a9e8a68ca379338e002ed9e3ae", + "rev": "f9dbb7fb95f41d234e53ac3d46501a0aa6b1098c", "type": "github" }, "original": { @@ -488,13 +662,38 @@ "type": "github" } }, + "nix-topology": { + "inputs": { + "devshell": "devshell", + "flake-utils": "flake-utils_7", + "nixpkgs": [ + "nixpkgs" + ], + "pre-commit-hooks": [ + "git-hooks" + ] + }, + "locked": { + "lastModified": 1714212743, + "narHash": "sha256-+GmuCvecraSTWylPCVSZYwAiz4lKDEpn1TIZlKz7gSw=", + "owner": "oddlama", + "repo": "nix-topology", + "rev": "ac69cc735c58e0028f8ef6a4b5c14efd57f5381b", + "type": "github" + }, + "original": { + "owner": "oddlama", + "repo": "nix-topology", + "type": "github" + } + }, "nixos-hardware": { "locked": { - "lastModified": 1714201532, - "narHash": "sha256-nk0W4rH7xYdDeS7k1SqqNtBaNrcgIBYNmOVc8P2puEY=", + "lastModified": 1714465198, + "narHash": "sha256-ySkEJvS0gPz2UhXm0H3P181T8fUxvDVcoUyGn0Kc5AI=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "53db5e1070d07e750030bf65f1b9963df8f0c678", + "rev": "68d680c1b7c0e67a9b2144d6776583ee83664ef4", "type": "github" }, "original": { @@ -505,11 +704,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1714245158, - "narHash": "sha256-9P2M0+tf1TE7Z5PwDVwhheuD2mFf6/phPr0Jvl7cxcc=", + "lastModified": 1714314149, + "narHash": "sha256-yNAevSKF4krRWacmLUsLK7D7PlfuY3zF0lYnGYNi9vQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2b1f64b358f2cab62617f26b3870fd0ee375d848", + "rev": "cf8cc1201be8bc71b7cbbbdaf349b22f4f99c7ae", "type": "github" }, "original": { @@ -521,11 +720,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1714334083, - "narHash": "sha256-J+8rWV1oLXADlyk7kKPnTkOKal050884rt2g3bZ1KwY=", + "lastModified": 1714520284, + "narHash": "sha256-zwVUfqiFf+r5hifj7OwcFDGt1eiMaveim2ihE+m6dLA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d9fd2b2c31f1f983060af97da8bf56f2abe7c7fc", + "rev": "097de5af21721e8e36a2e0d015dc3a5917de3fa0", "type": "github" }, "original": { @@ -537,11 +736,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1714333746, - "narHash": "sha256-4PvKjtV5nINMzhe2RKmtTvlE5FGzuLbhjM4UHfMUPYc=", + "lastModified": 1714514061, + "narHash": "sha256-QgR4JVjLFFqd/khJ5Og55iyBVdqoKcrfC0urkP3ZCJA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "007064b6be0e8cb970d6e1a8902c30a3e99167e3", + "rev": "95d1b593aab60766964d22d8ec0b0847678bdee2", "type": "github" }, "original": { @@ -563,7 +762,6 @@ }, "original": { "owner": "vulnersCom", - "ref": "master", "repo": "nmap-vulners", "type": "github" } @@ -580,42 +778,10 @@ }, "original": { "owner": "scipag", - "ref": "master", "repo": "vulscan", "type": "github" } }, - "pre-commit": { - "inputs": { - "flake-compat": [ - "flake-compat" - ], - "flake-utils": [ - "flake-utils" - ], - "gitignore": "gitignore", - "nixpkgs": [ - "nixpkgs" - ], - "nixpkgs-stable": [ - "nixpkgs-stable" - ] - }, - "locked": { - "lastModified": 1713954846, - "narHash": "sha256-RWFafuSb5nkWGu8dDbW7gVb8FOQOPqmX/9MlxUUDguw=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "6fb82e44254d6a0ece014ec423cb62d92435336f", - "type": "github" - }, - "original": { - "owner": "cachix", - "ref": "master", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { "agenix": "agenix", @@ -625,21 +791,20 @@ "dns": "dns", "flake-compat": "flake-compat", "flake-registry": "flake-registry", - "flake-utils": "flake-utils", + "git-hooks": "git-hooks", "home-manager": "home-manager", "impermanence": "impermanence", "mailserver": "mailserver", "minecraft": "minecraft", "nix-index-database": "nix-index-database", + "nix-topology": "nix-topology", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", "nixpkgs-master": "nixpkgs-master", "nixpkgs-stable": "nixpkgs-stable", "nmap-vulners": "nmap-vulners", "nmap-vulscan": "nmap-vulscan", - "pre-commit": "pre-commit", "stylix": "stylix", - "systems": "systems", "vscode-extensions": "vscode-extensions", "xmonad-ng": "xmonad-ng" } @@ -693,24 +858,160 @@ "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" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_6": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_7": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_8": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_9": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "utils": { + "inputs": { + "systems": "systems_5" + }, + "locked": { + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "vscode-extensions": { "inputs": { "flake-compat": [ "flake-compat" ], - "flake-utils": [ - "flake-utils" - ], + "flake-utils": "flake-utils_8", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1714267526, - "narHash": "sha256-92vUWmEZgINBgC2uT39Ihpbc/Ok86iOT2DjPrmrnFnA=", + "lastModified": 1714440038, + "narHash": "sha256-+zO77hQMEX9k87QQhuKgqLWNh1ZQZeF+a6sN/ot8RT4=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "6be0c88ffc813c82a6d3c99129c5cdaed5499468", + "rev": "150f7cf5f7d1c76e36bb5e917c5ac8045d77db45", "type": "github" }, "original": { @@ -721,9 +1022,7 @@ }, "xmonad-ng": { "inputs": { - "flake-utils": [ - "flake-utils" - ], + "flake-utils": "flake-utils_9", "nixpkgs": [ "nixpkgs" ] diff --git a/flake.nix b/flake.nix index adb7416..dc194f5 100644 --- a/flake.nix +++ b/flake.nix @@ -33,16 +33,12 @@ inputs = { home-manager.follows = "home-manager"; nixpkgs.follows = "nixpkgs"; - systems.follows = "systems"; }; }; dns = { url = "github:kirelagin/dns.nix"; - inputs = { - flake-utils.follows = "flake-utils"; - nixpkgs.follows = "nixpkgs"; - }; + inputs.nixpkgs.follows = "nixpkgs"; }; mailserver = { @@ -50,7 +46,6 @@ inputs = { flake-compat.follows = "flake-compat"; nixpkgs.follows = "nixpkgs"; - utils.follows = "flake-utils"; }; }; @@ -58,7 +53,6 @@ url = "github:pinpox/alertmanager-ntfy"; inputs = { flake-compat.follows = "flake-compat"; - flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; }; }; @@ -67,7 +61,6 @@ url = "github:nix-community/nix-vscode-extensions"; inputs = { flake-compat.follows = "flake-compat"; - flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; }; }; @@ -76,9 +69,8 @@ url = "github:dwarfmaster/arkenfox-nixos"; inputs = { flake-compat.follows = "flake-compat"; - flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; - pre-commit.follows = "pre-commit"; + pre-commit.follows = "git-hooks"; }; }; @@ -86,7 +78,6 @@ url = "github:Infinidoge/nix-minecraft"; inputs = { flake-compat.follows = "flake-compat"; - flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; }; }; @@ -96,87 +87,96 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - xmonad-ng = { - url = "git+https://git.azahi.cc/xmonad-ng?ref=master"; + nix-topology = { + url = "github:oddlama/nix-topology"; inputs = { - flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; + pre-commit-hooks.follows = "git-hooks"; }; }; + xmonad-ng = { + url = "git+https://git.azahi.cc/xmonad-ng?ref=master"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + azahi-cc = { url = "git+https://git.azahi.cc/azahi-cc?ref=master"; flake = false; }; nmap-vulners = { - url = "github:vulnersCom/nmap-vulners/master"; + url = "github:vulnersCom/nmap-vulners"; flake = false; }; nmap-vulscan = { - url = "github:scipag/vulscan/master"; + url = "github:scipag/vulscan"; flake = false; }; - pre-commit = { - url = "github:cachix/pre-commit-hooks.nix/master"; + git-hooks = { + url = "github:cachix/git-hooks.nix"; inputs = { flake-compat.follows = "flake-compat"; - flake-utils.follows = "flake-utils"; nixpkgs.follows = "nixpkgs"; nixpkgs-stable.follows = "nixpkgs-stable"; }; }; - systems.url = "github:nix-systems/default"; - flake-utils = { - url = "github:numtide/flake-utils"; - inputs.systems.follows = "systems"; - }; flake-registry = { url = "github:NixOS/flake-registry"; flake = false; }; - flake-compat.url = "github:edolstra/flake-compat/master"; + flake-compat.url = "github:edolstra/flake-compat"; }; outputs = - inputs: - with inputs; - flake-utils.lib.eachDefaultSystem (system: { - apps.default = { - type = "app"; - program = "${self.packages.${system}.default}/bin/nixfiles"; + inputs@{ self, nixpkgs, ... }: + let + system = "x86_64-linux"; + + pkgs = import nixpkgs { + inherit system; + overlays = [ + self.overlays.default + inputs.nix-topology.overlays.default + ]; }; + in + { + lib = nixpkgs.lib.extend (import ./lib); + + legacyPackages.${system} = pkgs; + + packages.${system} = { + default = self.packages.${system}.nixfiles; + inherit (self.legacyPackages.${system}) nixfiles; - packages = { - default = self.legacyPackages.${system}.nixfiles; iso = self.nixosConfigurations.iso.config.system.build.isoImage; }; - legacyPackages = import nixpkgs { - inherit system; - overlays = [ self.overlays.default ]; + apps.${system}.default = { + type = "app"; + program = self.lib.getExe self.packages.${system}.nixfiles; }; - devShells.default = - with self.legacyPackages.${system}; + overlays = import ./overlays.nix; + + devShells.${system}.default = + with pkgs; mkShell { inherit (self.checks.${system}.preCommit) shellHook; packages = [ go-task ]; }; - formatter = self.legacyPackages.${system}.nixfmt; + nixosModules = import ./modules self.lib; - checks = import ./checks.nix { inherit inputs system; }; - }) - // { - lib = nixpkgs.lib.extend (import ./lib); + nixosConfigurations = import ./configurations inputs; - nixosModules.nixfiles = import ./modules; + checks.${system} = import ./checks.nix inputs system pkgs; - nixosConfigurations = import ./nixosConfigurations inputs; + formatter.${system} = pkgs.nixfmt; - overlays.default = final: prev: import ./overlay.nix final prev; + topology = import ./topology.nix inputs self pkgs; }; } diff --git a/modules/default.nix b/modules/default.nix index ef9fb18..9ed1029 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1 +1,7 @@ -{ lib, ... }: with lib; { imports = attrValues (modulesIn ./.); } +lib: with lib; { + nixfiles = + { ... }: + { + imports = attrValues (modulesIn ./.); + }; +} diff --git a/modules/profiles/headful.nix b/modules/profiles/headful.nix index 20363bc..6e58dae 100644 --- a/modules/profiles/headful.nix +++ b/modules/profiles/headful.nix @@ -100,8 +100,9 @@ in }; services = { - upower.enable = true; + libinput.enable = true; psd.enable = true; + upower.enable = true; }; environment.systemPackages = with pkgs; [ diff --git a/modules/x11.nix b/modules/x11.nix index 55ba0b5..4edab6b 100644 --- a/modules/x11.nix +++ b/modules/x11.nix @@ -64,8 +64,6 @@ in autoRepeatDelay = 200; autoRepeatInterval = 50; - libinput.enable = true; - monitorSection = '' Option "DPMS" "false" ''; diff --git a/nixosConfigurations/default.nix b/nixosConfigurations/default.nix deleted file mode 100644 index b685eb7..0000000 --- a/nixosConfigurations/default.nix +++ /dev/null @@ -1,92 +0,0 @@ -inputs: -with inputs.self.lib; -let - mkConfiguration = - name: - { - modules ? [ ], - configuration ? ./${name}, - this ? my.configurations.${name}, - }: - nameValuePair name (nixosSystem { - inherit (this) system; - modules = - modules - ++ attrValues inputs.self.nixosModules - ++ optional (configuration != null) (import configuration); - specialArgs = { - inherit inputs this; - inherit (inputs.self) lib; - }; - }); - - mkTest = this: { - modules = with inputs; [ - "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix" - nixpkgs.nixosModules.notDetected - ]; - inherit this; - }; -in -mapAttrs' mkConfiguration { - test-headless = mkTest { - hostname = "test-headless"; - system = "x86_64-linux"; - isHeadless = true; - isHeadful = false; - }; - test-headful = mkTest { - hostname = "test-headful"; - system = "x86_64-linux"; - isHeadless = false; - isHeadful = true; - }; - - iso = { - this = { - hostname = "iso"; - system = "x86_64-linux"; - isHeadless = false; - isHeadful = false; - }; - configuration = ./iso; - modules = [ - "${inputs.nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal-new-kernel.nix" - ]; - }; - - eonwe.modules = with inputs; [ - nixos-hardware.nixosModules.common-cpu-amd - nixos-hardware.nixosModules.common-cpu-amd-pstate - nixos-hardware.nixosModules.common-gpu-amd - nixos-hardware.nixosModules.common-pc-ssd - nixpkgs.nixosModules.notDetected - ]; - - melian.modules = with inputs; [ - nixos-hardware.nixosModules.common-pc-laptop-ssd - nixos-hardware.nixosModules.lenovo-thinkpad-t480 - nixpkgs.nixosModules.notDetected - ]; - - manwe.modules = with inputs; [ - "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix" - nixos-hardware.nixosModules.common-cpu-amd - nixos-hardware.nixosModules.common-pc-ssd - nixpkgs.nixosModules.notDetected - ]; - - varda.modules = with inputs; [ - "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix" - nixos-hardware.nixosModules.common-cpu-amd - nixos-hardware.nixosModules.common-pc-ssd - nixpkgs.nixosModules.notDetected - ]; - - yavanna.modules = with inputs; [ - "${nixpkgs}/nixos/modules/profiles/qemu-guest.nix" - nixos-hardware.nixosModules.common-cpu-intel - nixos-hardware.nixosModules.common-pc-hdd - nixpkgs.nixosModules.notDetected - ]; -} diff --git a/overlay.nix b/overlay.nix deleted file mode 100644 index a37d3e7..0000000 --- a/overlay.nix +++ /dev/null @@ -1,102 +0,0 @@ -final: prev: { - bruh = prev.callPackage ./packages/bruh.nix { }; - - emacsql-sqlite = prev.callPackage ./packages/emacsql-sqlite.nix { }; - - git-extras = prev.git-extras.overrideAttrs ( - _: super: { - postPatch = - (super.postPatch or "") - + '' - substituteInPlace bin/git-setup \ - --replace 'Initial commit' 'chore: init' - ''; - } - ); - - grc = prev.grc.overrideAttrs ( - _: super: { - version = "unstable-2021-08-12"; - src = final.fetchFromGitHub { - owner = "garabik"; - repo = "grc"; - rev = "4d6a51fd78ad7e19af8dd12b2a828d1807267079"; - hash = "sha256-SmOZrgV0lgLryFoxADU15IKJ7jhxXar0MgbsV/z1GaE="; - }; - patches = (super.patches or [ ]) ++ [ - (final.fetchpatch { - url = "https://patch-diff.githubusercontent.com/raw/garabik/grc/pull/214.patch"; - hash = "sha256-VNr9jl5oFbFNJbGsjflwFV3oTbCzJ0lBIZA4eyeoXLY="; - }) - ]; - } - ); - - hiccup = prev.callPackage ./packages/hiccup.nix { }; - - logcli = prev.grafana-loki.overrideAttrs ( - _: super: { - pname = "logcli"; - subPackages = [ "cmd/logcli" ]; - nativeBuildInputs = super.nativeBuildInputs ++ [ final.installShellFiles ]; - postInstall = - (super.postInstall or "") - + '' - installShellCompletion --cmd logcli \ - --bash <($out/bin/logcli --completion--script-bash) \ - --zsh <($out/bin/logcli --completion-script-zsh) - ''; - preFixup = null; - } - ); - - myip = prev.callPackage ./packages/myip.nix { }; - - nixfiles = prev.callPackage ./packages/nixfiles.nix { }; - - nixfmt = prev.nixfmt-rfc-style; - - openssl_1_0_0 = prev.callPackage ./packages/openssl_1_0_0.nix { }; - - parinfer-rust = prev.callPackage ./packages/parinfer-rust.nix { }; - - # FIXME https://nixpk.gs/pr-tracker.html?pr=307505 - poetry = prev.poetry.overrideAttrs (finalAttrs: { - nativeBuildInputs = (finalAttrs.nativeBuildInputs or [ ]) ++ [ - prev.python3Packages.pythonRelaxDepsHook - ]; - pythonRelaxDeps = [ "dulwich" ]; - }); - - prismlauncher-unwrapped = - (prev.prismlauncher-unwrapped.override (finalAttrs: { - stdenv = final.useMoldLinker finalAttrs.stdenv; - })).overrideAttrs - ( - _: super: { - patches = (super.patches or [ ]) ++ [ ./patches/prismlauncher-allow-offline-accounts.patch ]; - } - ); - - telegram-desktop = - (prev.telegram-desktop.override (finalAttrs: { - stdenv = final.useMoldLinker finalAttrs.stdenv; - })).overrideAttrs - (_: super: { patches = (super.patches or [ ]) ++ [ ./patches/telegram-desktop-no-ads.patch ]; }); - - vesktop = prev.vesktop.overrideAttrs ( - _: super: { - nativeBuildInputs = super.nativeBuildInputs ++ [ final.imagemagick ]; - patches = (super.patches or [ ]) ++ [ ./patches/vesktop-no-anime.patch ]; - postInstall = - (super.postInstall or "") - + '' - rm -rf $out/share/icons/hicolor/* - for size in 16 24 32 48 64 96; do - convert -scale $size icon.png $size.png - install -Dm644 $size.png $out/share/icons/hicolor/''${size}x''${size}/apps/vesktop.png - done - ''; - } - ); -} diff --git a/overlays.nix b/overlays.nix new file mode 100644 index 0000000..642c587 --- /dev/null +++ b/overlays.nix @@ -0,0 +1,104 @@ +{ + default = final: prev: { + bruh = prev.callPackage ./packages/bruh.nix { }; + + emacsql-sqlite = prev.callPackage ./packages/emacsql-sqlite.nix { }; + + git-extras = prev.git-extras.overrideAttrs ( + _: super: { + postPatch = + (super.postPatch or "") + + '' + substituteInPlace bin/git-setup \ + --replace 'Initial commit' 'chore: init' + ''; + } + ); + + grc = prev.grc.overrideAttrs ( + _: super: { + version = "unstable-2021-08-12"; + src = final.fetchFromGitHub { + owner = "garabik"; + repo = "grc"; + rev = "4d6a51fd78ad7e19af8dd12b2a828d1807267079"; + hash = "sha256-SmOZrgV0lgLryFoxADU15IKJ7jhxXar0MgbsV/z1GaE="; + }; + patches = (super.patches or [ ]) ++ [ + (final.fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/garabik/grc/pull/214.patch"; + hash = "sha256-VNr9jl5oFbFNJbGsjflwFV3oTbCzJ0lBIZA4eyeoXLY="; + }) + ]; + } + ); + + hiccup = prev.callPackage ./packages/hiccup.nix { }; + + logcli = prev.grafana-loki.overrideAttrs ( + _: super: { + pname = "logcli"; + subPackages = [ "cmd/logcli" ]; + nativeBuildInputs = super.nativeBuildInputs ++ [ final.installShellFiles ]; + postInstall = + (super.postInstall or "") + + '' + installShellCompletion --cmd logcli \ + --bash <($out/bin/logcli --completion--script-bash) \ + --zsh <($out/bin/logcli --completion-script-zsh) + ''; + preFixup = null; + } + ); + + myip = prev.callPackage ./packages/myip.nix { }; + + nixfiles = prev.callPackage ./packages/nixfiles.nix { }; + + nixfmt = prev.nixfmt-rfc-style; + + openssl_1_0_0 = prev.callPackage ./packages/openssl_1_0_0.nix { }; + + parinfer-rust = prev.callPackage ./packages/parinfer-rust.nix { }; + + # FIXME https://nixpk.gs/pr-tracker.html?pr=307505 + poetry = prev.poetry.overrideAttrs (finalAttrs: { + nativeBuildInputs = (finalAttrs.nativeBuildInputs or [ ]) ++ [ + prev.python3Packages.pythonRelaxDepsHook + ]; + pythonRelaxDeps = [ "dulwich" ]; + }); + + prismlauncher-unwrapped = + (prev.prismlauncher-unwrapped.override (finalAttrs: { + stdenv = final.useMoldLinker finalAttrs.stdenv; + })).overrideAttrs + ( + _: super: { + patches = (super.patches or [ ]) ++ [ ./patches/prismlauncher-allow-offline-accounts.patch ]; + } + ); + + telegram-desktop = + (prev.telegram-desktop.override (finalAttrs: { + stdenv = final.useMoldLinker finalAttrs.stdenv; + })).overrideAttrs + (_: super: { patches = (super.patches or [ ]) ++ [ ./patches/telegram-desktop-no-ads.patch ]; }); + + vesktop = prev.vesktop.overrideAttrs ( + _: super: { + nativeBuildInputs = super.nativeBuildInputs ++ [ final.imagemagick ]; + patches = (super.patches or [ ]) ++ [ ./patches/vesktop-no-anime.patch ]; + postInstall = + (super.postInstall or "") + + '' + rm -rf $out/share/icons/hicolor/* + for size in 16 24 32 48 64 96; do + convert -scale $size icon.png $size.png + install -Dm644 $size.png $out/share/icons/hicolor/''${size}x''${size}/apps/vesktop.png + done + ''; + } + ); + }; +} diff --git a/topology.nix b/topology.nix new file mode 100644 index 0000000..8830f12 --- /dev/null +++ b/topology.nix @@ -0,0 +1,8 @@ +inputs: self: pkgs: +import inputs.nix-topology { + inherit pkgs; + modules = [ + { inherit (self) nixosConfigurations; } + (_: { }) + ]; +} |