From e3bfbae1314cbd7a054a2e16ee588aaadc8aeafe Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Mon, 21 Jul 2025 18:59:53 -0500 Subject: [PATCH] pis --- flake.lock | 10 +- flake.lock.ori | 2739 ----------------- flake.nix | 31 +- homes/aarch64-linux/matt@pi4/default.nix | 1 - homes/aarch64-linux/matt@pi5/default.nix | 10 +- homes/aarch64-linux/root@pi4/default.nix | 18 + modules/home/home/default.nix | 1 - modules/home/programs/code/default.nix | 9 +- modules/home/user/default.nix | 157 + modules/nixos/desktop/hyprland/default.nix | 4 +- modules/nixos/hardware/default.nix | 2 +- modules/nixos/home/default.nix | 4 +- modules/nixos/user/default.nix | 66 + systems/aarch64-linux/pi4/argononed.nix | 69 - systems/aarch64-linux/pi4/boot.nix | 17 +- systems/aarch64-linux/pi4/default.nix | 61 +- systems/aarch64-linux/pi4/disko.nix | 102 - systems/aarch64-linux/pi4/flake.nix | 45 - systems/aarch64-linux/pi4/impermanence.nix | 35 - systems/aarch64-linux/pi4/pi4-hw.nix | 22 - systems/aarch64-linux/pi4/pi4-uefi.nix | 23 - systems/aarch64-linux/pi4/pkg.nix | 58 - systems/aarch64-linux/pi5/boot.nix | 2 +- .../pi5/{configuration.nix => default.nix} | 12 +- systems/aarch64-linux/pi5/disko.nix | 109 - .../pi5/hardware-configuration.nix | 74 - systems/aarch64-linux/pi5/impermanence.nix | 36 - systems/aarch64-linux/pi5/sops.nix | 8 +- 28 files changed, 342 insertions(+), 3383 deletions(-) delete mode 100755 flake.lock.ori create mode 100644 homes/aarch64-linux/root@pi4/default.nix create mode 100644 modules/home/user/default.nix create mode 100644 modules/nixos/user/default.nix delete mode 100644 systems/aarch64-linux/pi4/argononed.nix delete mode 100644 systems/aarch64-linux/pi4/disko.nix delete mode 100644 systems/aarch64-linux/pi4/flake.nix delete mode 100755 systems/aarch64-linux/pi4/impermanence.nix delete mode 100644 systems/aarch64-linux/pi4/pi4-hw.nix delete mode 100644 systems/aarch64-linux/pi4/pi4-uefi.nix delete mode 100644 systems/aarch64-linux/pi4/pkg.nix rename systems/aarch64-linux/pi5/{configuration.nix => default.nix} (95%) mode change 100755 => 100644 delete mode 100644 systems/aarch64-linux/pi5/disko.nix delete mode 100644 systems/aarch64-linux/pi5/hardware-configuration.nix delete mode 100755 systems/aarch64-linux/pi5/impermanence.nix diff --git a/flake.lock b/flake.lock index e24930a..072bb06 100644 --- a/flake.lock +++ b/flake.lock @@ -864,15 +864,15 @@ "nixpkgs": "nixpkgs_11" }, "locked": { - "lastModified": 1752372167, - "narHash": "sha256-xI8GUvFtgbE9AXRwh3korfSrm/lWBJmLXQFTLi7lL8E=", - "owner": "nvmd", + "lastModified": 1753141210, + "narHash": "sha256-yV7+cv0q5XL7uv9gvSG7R0jktgXgB+forv3c7TfY2T8=", + "owner": "mjallen18", "repo": "nixos-raspberrypi", - "rev": "fa7959822f0c4d14c5bd287017aa903a264025a5", + "rev": "e0f487998cb4409408f03e019c71c21011edb84c", "type": "github" }, "original": { - "owner": "nvmd", + "owner": "mjallen18", "repo": "nixos-raspberrypi", "type": "github" } diff --git a/flake.lock.ori b/flake.lock.ori deleted file mode 100755 index 433d432..0000000 --- a/flake.lock.ori +++ /dev/null @@ -1,2739 +0,0 @@ -{ - "nodes": { - "argononed": { - "flake": false, - "locked": { - "lastModified": 1729566243, - "narHash": "sha256-DPNI0Dpk5aym3Baf5UbEe5GENDrSmmXVdriRSWE+rgk=", - "owner": "nvmd", - "repo": "argononed", - "rev": "16dbee54d49b66d5654d228d1061246b440ef7cf", - "type": "github" - }, - "original": { - "owner": "nvmd", - "repo": "argononed", - "type": "github" - } - }, - "authentik-src": { - "flake": false, - "locked": { - "lastModified": 1751031262, - "narHash": "sha256-SNgRMQUjL3DTlWkMyRMan+pY1FfIV+DMeq5BiTM0N0k=", - "owner": "goauthentik", - "repo": "authentik", - "rev": "b34665fabd8d938d81ce871a4e86ca528c5f253b", - "type": "github" - }, - "original": { - "owner": "goauthentik", - "ref": "version/2025.4.3", - "repo": "authentik", - "type": "github" - } - }, - "brew-src": { - "flake": false, - "locked": { - "lastModified": 1751910772, - "narHash": "sha256-jQNdIkq2iRDNWskd5f8kX6q9BO/CBSXhMH41WNRft8E=", - "owner": "Homebrew", - "repo": "brew", - "rev": "700d67a85e0129ab8a893ff69246943479e33df1", - "type": "github" - }, - "original": { - "owner": "Homebrew", - "ref": "4.5.9", - "repo": "brew", - "type": "github" - } - }, - "crane": { - "locked": { - "lastModified": 1731098351, - "narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=", - "owner": "ipetkov", - "repo": "crane", - "rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "crane_2": { - "locked": { - "lastModified": 1731098351, - "narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=", - "owner": "ipetkov", - "repo": "crane", - "rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "crane_3": { - "locked": { - "lastModified": 1731098351, - "narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=", - "owner": "ipetkov", - "repo": "crane", - "rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "crane_4": { - "locked": { - "lastModified": 1731098351, - "narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=", - "owner": "ipetkov", - "repo": "crane", - "rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, - "desktop-chaotic": { - "inputs": { - "flake-schemas": "flake-schemas", - "home-manager": "home-manager", - "jovian": "jovian", - "nixpkgs": "nixpkgs", - "rust-overlay": "rust-overlay" - }, - "locked": { - "lastModified": 1751333492, - "narHash": "sha256-ePQTd+GHFiFK2bxmZm3aiWlhyTwbpasjmc+kuM0nxeg=", - "owner": "chaotic-cx", - "repo": "nyx", - "rev": "d107b2c87bf7446959668fcc22b2b09b37b27cf3", - "type": "github" - }, - "original": { - "owner": "chaotic-cx", - "ref": "nyxpkgs-unstable", - "repo": "nyx", - "type": "github" - } - }, - "desktop-cosmic": { - "inputs": { - "flake-compat": "flake-compat", - "nixpkgs": [ - "desktop-nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable", - "rust-overlay": "rust-overlay_2" - }, - "locked": { - "lastModified": 1749121763, - "narHash": "sha256-TVFiyMBs+3KEzZVwf/n1zedUWzPrMPzud/2Jiho8dcE=", - "owner": "lilyinstarlight", - "repo": "nixos-cosmic", - "rev": "c89df80b72b4e1802fd91a35f4857868c953c1c0", - "type": "github" - }, - "original": { - "owner": "lilyinstarlight", - "repo": "nixos-cosmic", - "type": "github" - } - }, - "desktop-home-manager": { - "inputs": { - "nixpkgs": [ - "desktop-nixpkgs" - ] - }, - "locked": { - "lastModified": 1751336185, - "narHash": "sha256-ptnVr2x+sl7cZcTuGx/0BOE2qCAIYHTcgfA+/h60ml0=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "96354906f58464605ff81d2f6c2ea23211cbf051", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "desktop-impermanence": { - "locked": { - "lastModified": 1737831083, - "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", - "owner": "nix-community", - "repo": "impermanence", - "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "impermanence", - "type": "github" - } - }, - "desktop-lanzaboote": { - "inputs": { - "crane": "crane", - "flake-compat": "flake-compat_2", - "flake-parts": "flake-parts", - "nixpkgs": [ - "desktop-nixpkgs" - ], - "pre-commit-hooks-nix": "pre-commit-hooks-nix", - "rust-overlay": "rust-overlay_3" - }, - "locked": { - "lastModified": 1737639419, - "narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=", - "owner": "nix-community", - "repo": "lanzaboote", - "rev": "a65905a09e2c43ff63be8c0e86a93712361f871e", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "v0.4.2", - "repo": "lanzaboote", - "type": "github" - } - }, - "desktop-nix-vscode-extensions": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1752373577, - "narHash": "sha256-5ipIQ1dp4qLfgVOBRU3NqnESjF6CqD/HQVYlEXC4P0s=", - "owner": "nix-community", - "repo": "nix-vscode-extensions", - "rev": "b8780c4b346250b6e86a7127dbe5e43a4bb394eb", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-vscode-extensions", - "type": "github" - } - }, - "desktop-nixos-hardware": { - "locked": { - "lastModified": 1750837715, - "narHash": "sha256-2m1ceZjbmgrJCZ2PuQZaK4in3gcg3o6rZ7WK6dr5vAA=", - "owner": "NixOS", - "repo": "nixos-hardware", - "rev": "98236410ea0fe204d0447149537a924fb71a6d4f", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "master", - "repo": "nixos-hardware", - "type": "github" - } - }, - "desktop-nixpkgs": { - "locked": { - "lastModified": 1751271578, - "narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "desktop-sops-nix": { - "inputs": { - "nixpkgs": [ - "desktop-nixpkgs" - ] - }, - "locked": { - "lastModified": 1750119275, - "narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=", - "owner": "Mic92", - "repo": "sops-nix", - "rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "sops-nix", - "type": "github" - } - }, - "desktop-steam-rom-manager": { - "inputs": { - "home-manager": [ - "desktop-home-manager" - ], - "nixpkgs": [ - "desktop-nixpkgs" - ] - }, - "locked": { - "lastModified": 1740436018, - "narHash": "sha256-mblKQD3IFyVLN3dw7T7/qsXt1Vw7zu5Ky1rJcLu5Qeg=", - "owner": "mjallen18", - "repo": "nix-steam-rom-manager", - "rev": "5c0875d5942b8a1928d53a642b43a49a3c7636ea", - "type": "github" - }, - "original": { - "owner": "mjallen18", - "repo": "nix-steam-rom-manager", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1746162366, - "narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=", - "owner": "nix-community", - "repo": "flake-compat", - "rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_3": { - "locked": { - "lastModified": 1688025799, - "narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=", - "owner": "nix-community", - "repo": "flake-compat", - "rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_4": { - "flake": false, - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_5": { - "flake": false, - "locked": { - "lastModified": 1746162366, - "narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=", - "owner": "nix-community", - "repo": "flake-compat", - "rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_6": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_7": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_8": { - "flake": false, - "locked": { - "lastModified": 1746162366, - "narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=", - "owner": "nix-community", - "repo": "flake-compat", - "rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_9": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": [ - "desktop-lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1749398372, - "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_3": { - "inputs": { - "nixpkgs-lib": [ - "nas-lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_4": { - "inputs": { - "nixpkgs-lib": [ - "nuc-lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_5": { - "inputs": { - "nixpkgs-lib": [ - "steamdeck-lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1730504689, - "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "506278e768c2a08bec68eb62932193e341f55c90", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-schemas": { - "locked": { - "lastModified": 1721999734, - "narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=", - "rev": "0a5c42297d870156d9c57d8f99e476b738dcd982", - "revCount": 75, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz" - } - }, - "flake-schemas_2": { - "locked": { - "lastModified": 1721999734, - "narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=", - "rev": "0a5c42297d870156d9c57d8f99e476b738dcd982", - "revCount": 75, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz" - } - }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "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" - } - }, - "flake-utils_2": { - "inputs": { - "systems": [ - "nas-authentik-nix", - "systems" - ] - }, - "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" - } - }, - "flake-utils_3": { - "inputs": { - "systems": "systems_3" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "id": "flake-utils", - "type": "indirect" - } - }, - "flake-utils_4": { - "inputs": { - "systems": "systems_4" - }, - "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" - } - }, - "flake-utils_5": { - "inputs": { - "systems": "systems_5" - }, - "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" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "desktop-lanzaboote", - "pre-commit-hooks-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_2": { - "inputs": { - "nixpkgs": [ - "nas-lanzaboote", - "pre-commit-hooks-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_3": { - "inputs": { - "nixpkgs": [ - "nuc-lanzaboote", - "pre-commit-hooks-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gitignore_4": { - "inputs": { - "nixpkgs": [ - "steamdeck-lanzaboote", - "pre-commit-hooks-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "desktop-chaotic", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1751238753, - "narHash": "sha256-hJUPWfz/h+QgXKaKovPwFAdNBnALsvVMggAPgBB+Qvw=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "cab8104e9236fab1eb9a702165454ffed353c20f", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "home-manager_2": { - "inputs": { - "nixpkgs": [ - "steamdeck-chaotic", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1751824240, - "narHash": "sha256-aDDC0CHTlL7QDKWWhdbEgVPK6KwWt+ca0QkmHYZxMzI=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "fd9e55f5fac45a26f6169310afca64d56b681935", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "homebrew-cask": { - "flake": false, - "locked": { - "lastModified": 1752451414, - "narHash": "sha256-XNUBW6GZOWG8kJrju3MIf5GCbNhUA24rArCS/IIkpEE=", - "owner": "homebrew", - "repo": "homebrew-cask", - "rev": "68607571486a0c82a71e0a4c8c8ce8de77164522", - "type": "github" - }, - "original": { - "owner": "homebrew", - "repo": "homebrew-cask", - "type": "github" - } - }, - "homebrew-core": { - "flake": false, - "locked": { - "lastModified": 1752438625, - "narHash": "sha256-oKbf2JYEevxOJ55+z9t1R1mZDPAA4o3QWKGqgLfambk=", - "owner": "homebrew", - "repo": "homebrew-core", - "rev": "dd264970344897aa005931dec441fa46cbaf0b2c", - "type": "github" - }, - "original": { - "owner": "homebrew", - "repo": "homebrew-core", - "type": "github" - } - }, - "jovian": { - "inputs": { - "nix-github-actions": "nix-github-actions", - "nixpkgs": [ - "desktop-chaotic", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1750403547, - "narHash": "sha256-XDDINMbHTtKQeSRpX5mwq20z23Wg/I/G4JUinA3V8Xg=", - "owner": "Jovian-Experiments", - "repo": "Jovian-NixOS", - "rev": "52b86b86d925ec00c836ecc6d36f9c947bb15736", - "type": "github" - }, - "original": { - "owner": "Jovian-Experiments", - "repo": "Jovian-NixOS", - "type": "github" - } - }, - "jovian_2": { - "inputs": { - "nix-github-actions": "nix-github-actions_2", - "nixpkgs": [ - "steamdeck-chaotic", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1751529406, - "narHash": "sha256-jwKDHyUycp678zDYa5Hyfq3msO73YMXdZPxp96dU7po=", - "owner": "Jovian-Experiments", - "repo": "Jovian-NixOS", - "rev": "b2e5ce654e4f5bf8905c2e07a96dcf4966e6277d", - "type": "github" - }, - "original": { - "owner": "Jovian-Experiments", - "repo": "Jovian-NixOS", - "type": "github" - } - }, - "mac-home-manager": { - "inputs": { - "nixpkgs": [ - "mac-nixpkgs" - ] - }, - "locked": { - "lastModified": 1751824240, - "narHash": "sha256-aDDC0CHTlL7QDKWWhdbEgVPK6KwWt+ca0QkmHYZxMzI=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "fd9e55f5fac45a26f6169310afca64d56b681935", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "mac-impermanence": { - "locked": { - "lastModified": 1737831083, - "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", - "owner": "nix-community", - "repo": "impermanence", - "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "impermanence", - "type": "github" - } - }, - "mac-nixos-apple-silicon": { - "inputs": { - "flake-compat": "flake-compat_3", - "nixpkgs": "nixpkgs_3" - }, - "locked": { - "lastModified": 1751622568, - "narHash": "sha256-EE3NBsej517VRa1x+ylAghrvngftxf1KgfHlE9OYyXE=", - "owner": "nix-community", - "repo": "nixos-apple-silicon", - "rev": "eba4b40c816e5aff8951ae231ac237e8aab8ec1d", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixos-apple-silicon", - "type": "github" - } - }, - "mac-nixpkgs": { - "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "mac-sops-nix": { - "inputs": { - "nixpkgs": [ - "mac-nixpkgs" - ] - }, - "locked": { - "lastModified": 1751606940, - "narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=", - "owner": "Mic92", - "repo": "sops-nix", - "rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "sops-nix", - "type": "github" - } - }, - "napalm": { - "inputs": { - "flake-utils": [ - "nas-authentik-nix", - "flake-utils" - ], - "nixpkgs": [ - "nas-authentik-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1725806412, - "narHash": "sha256-lGZjkjds0p924QEhm/r0BhAxbHBJE1xMOldB/HmQH04=", - "owner": "willibutz", - "repo": "napalm", - "rev": "b492440d9e64ae20736d3bec5c7715ffcbde83f5", - "type": "github" - }, - "original": { - "owner": "willibutz", - "ref": "avoid-foldl-stack-overflow", - "repo": "napalm", - "type": "github" - } - }, - "nas-authentik-nix": { - "inputs": { - "authentik-src": "authentik-src", - "flake-compat": "flake-compat_4", - "flake-parts": "flake-parts_2", - "flake-utils": "flake-utils_2", - "napalm": "napalm", - "nixpkgs": [ - "nas-nixpkgs" - ], - "pyproject-build-systems": "pyproject-build-systems", - "pyproject-nix": "pyproject-nix", - "systems": "systems_2", - "uv2nix": "uv2nix" - }, - "locked": { - "lastModified": 1751033152, - "narHash": "sha256-0ANu9OLQJszcEyvnfDB7G957uqskZwCrTzRXz/yfAmE=", - "owner": "nix-community", - "repo": "authentik-nix", - "rev": "1a4d6a5dd6fef39b99eb7ea4db79c5d5c7d7f1bf", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "authentik-nix", - "type": "github" - } - }, - "nas-cosmic": { - "inputs": { - "flake-compat": "flake-compat_5", - "nixpkgs": [ - "nas-nixpkgs-stable" - ], - "nixpkgs-stable": "nixpkgs-stable_3", - "rust-overlay": "rust-overlay_4" - }, - "locked": { - "lastModified": 1751591814, - "narHash": "sha256-A4lgvuj4v+Pr8MniXz1FBG0DXOygi8tTECR+j53FMhM=", - "owner": "lilyinstarlight", - "repo": "nixos-cosmic", - "rev": "fef2d0c78c4e4d6c600a88795af193131ff51bdc", - "type": "github" - }, - "original": { - "owner": "lilyinstarlight", - "repo": "nixos-cosmic", - "type": "github" - } - }, - "nas-crowdsec": { - "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": [ - "nas-nixpkgs" - ] - }, - "locked": { - "lastModified": 1742920128, - "narHash": "sha256-VPjnjtAksihLezhc+ZmnqGu18mHr4QVKa1kSZQ8rJL4=", - "ref": "refs/heads/main", - "rev": "40e937689d318ee85b1d9763189a65e6f0b4028d", - "revCount": 40, - "type": "git", - "url": "https://codeberg.org/kampka/nix-flake-crowdsec.git" - }, - "original": { - "type": "git", - "url": "https://codeberg.org/kampka/nix-flake-crowdsec.git" - } - }, - "nas-home-manager": { - "inputs": { - "nixpkgs": [ - "nas-nixpkgs" - ] - }, - "locked": { - "lastModified": 1751824240, - "narHash": "sha256-aDDC0CHTlL7QDKWWhdbEgVPK6KwWt+ca0QkmHYZxMzI=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "fd9e55f5fac45a26f6169310afca64d56b681935", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "nas-impermanence": { - "locked": { - "lastModified": 1737831083, - "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", - "owner": "nix-community", - "repo": "impermanence", - "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "impermanence", - "type": "github" - } - }, - "nas-lanzaboote": { - "inputs": { - "crane": "crane_2", - "flake-compat": "flake-compat_6", - "flake-parts": "flake-parts_3", - "nixpkgs": [ - "nas-nixpkgs" - ], - "pre-commit-hooks-nix": "pre-commit-hooks-nix_2", - "rust-overlay": "rust-overlay_5" - }, - "locked": { - "lastModified": 1737639419, - "narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=", - "owner": "nix-community", - "repo": "lanzaboote", - "rev": "a65905a09e2c43ff63be8c0e86a93712361f871e", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "v0.4.2", - "repo": "lanzaboote", - "type": "github" - } - }, - "nas-nix-vscode-extensions": { - "inputs": { - "flake-utils": "flake-utils_4", - "nixpkgs": "nixpkgs_4" - }, - "locked": { - "lastModified": 1749002682, - "narHash": "sha256-v9K6RyPF/+4r/YJhjEH8y07VWE6Vj7Vl88E/K5m/uJ0=", - "owner": "nix-community", - "repo": "nix-vscode-extensions", - "rev": "46eb9c16d8ccfedf8bc648be03f9b2993fe3c994", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-vscode-extensions", - "type": "github" - } - }, - "nas-nixai": { - "inputs": { - "flake-utils": "flake-utils_5", - "nixpkgs": "nixpkgs_5" - }, - "locked": { - "lastModified": 1749000216, - "narHash": "sha256-Y2nbTdmPkTL+ni2hNzU8l/xZqDIFygkkDnTCf3xansU=", - "owner": "olafkfreund", - "repo": "nix-ai-help", - "rev": "3b4b6db6a4ebf1348c62c1ec44c453d9948c4ba8", - "type": "github" - }, - "original": { - "owner": "olafkfreund", - "repo": "nix-ai-help", - "type": "github" - } - }, - "nas-nixos-hardware": { - "locked": { - "lastModified": 1751432711, - "narHash": "sha256-136MeWtckSHTN9Z2WRNRdZ8oRP3vyx3L8UxeBYE+J9w=", - "owner": "NixOS", - "repo": "nixos-hardware", - "rev": "497ae1357f1ac97f1aea31a4cb74ad0d534ef41f", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "master", - "repo": "nixos-hardware", - "type": "github" - } - }, - "nas-nixpkgs": { - "locked": { - "lastModified": 1751637120, - "narHash": "sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8++xWA8itO4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "5c724ed1388e53cc231ed98330a60eb2f7be4be3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nas-nixpkgs-stable": { - "locked": { - "lastModified": 1744440957, - "narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nas-sops-nix": { - "inputs": { - "nixpkgs": [ - "nas-nixpkgs" - ] - }, - "locked": { - "lastModified": 1751606940, - "narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=", - "owner": "Mic92", - "repo": "sops-nix", - "rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "sops-nix", - "type": "github" - } - }, - "nix-darwin": { - "inputs": { - "nixpkgs": [ - "desktop-nixpkgs" - ] - }, - "locked": { - "lastModified": 1751313918, - "narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=", - "owner": "LnL7", - "repo": "nix-darwin", - "rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf", - "type": "github" - }, - "original": { - "owner": "LnL7", - "repo": "nix-darwin", - "type": "github" - } - }, - "nix-github-actions": { - "inputs": { - "nixpkgs": [ - "desktop-chaotic", - "jovian", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729697500, - "narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=", - "owner": "zhaofengli", - "repo": "nix-github-actions", - "rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf", - "type": "github" - }, - "original": { - "owner": "zhaofengli", - "ref": "matrix-name", - "repo": "nix-github-actions", - "type": "github" - } - }, - "nix-github-actions_2": { - "inputs": { - "nixpkgs": [ - "steamdeck-chaotic", - "jovian", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729697500, - "narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=", - "owner": "zhaofengli", - "repo": "nix-github-actions", - "rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf", - "type": "github" - }, - "original": { - "owner": "zhaofengli", - "ref": "matrix-name", - "repo": "nix-github-actions", - "type": "github" - } - }, - "nix-github-actions_3": { - "inputs": { - "nixpkgs": [ - "steamdeck-jovian", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729697500, - "narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=", - "owner": "zhaofengli", - "repo": "nix-github-actions", - "rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf", - "type": "github" - }, - "original": { - "owner": "zhaofengli", - "ref": "matrix-name", - "repo": "nix-github-actions", - "type": "github" - } - }, - "nix-homebrew": { - "inputs": { - "brew-src": "brew-src" - }, - "locked": { - "lastModified": 1752160973, - "narHash": "sha256-BCC8KB7TEtwv7vZN1WDu870tRbXtzUcmF9xNr6ws5Wc=", - "owner": "zhaofengli", - "repo": "nix-homebrew", - "rev": "69c1aa2f136f3c3326d9b6770e0eb54f12832971", - "type": "github" - }, - "original": { - "owner": "zhaofengli", - "repo": "nix-homebrew", - "type": "github" - } - }, - "nixos-images": { - "inputs": { - "nixos-stable": [ - "nixos-raspberrypi", - "nixpkgs" - ], - "nixos-unstable": [ - "nixos-raspberrypi", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1747747741, - "narHash": "sha256-LUOH27unNWbGTvZFitHonraNx0JF/55h30r9WxqrznM=", - "owner": "nvmd", - "repo": "nixos-images", - "rev": "cbbd6db325775096680b65e2a32fb6187c09bbb4", - "type": "github" - }, - "original": { - "owner": "nvmd", - "ref": "sdimage-installer", - "repo": "nixos-images", - "type": "github" - } - }, - "nixos-raspberrypi": { - "inputs": { - "argononed": "argononed", - "nixos-images": "nixos-images", - "nixpkgs": "nixpkgs_6" - }, - "locked": { - "lastModified": 1749156319, - "narHash": "sha256-Eilhss+fV1Fp88Sua5LwPnxGJ2A1/3TEDI1cMQja/+w=", - "owner": "nvmd", - "repo": "nixos-raspberrypi", - "rev": "dc5ff85af8a5c1e0913bfdc15e419ae430fd0df2", - "type": "github" - }, - "original": { - "owner": "nvmd", - "repo": "nixos-raspberrypi", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1751271578, - "narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-lib": { - "locked": { - "lastModified": 1748740939, - "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "656a64127e9d791a334452c6b6606d17539476e2", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1748995628, - "narHash": "sha256-bFufQGSAEYQgjtc4wMrobS5HWN0hDP+ZX+zthYcml9U=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "8eb3b6a2366a7095939cd22f0dc0e9991313294b", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_2": { - "locked": { - "lastModified": 1730741070, - "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_3": { - "locked": { - "lastModified": 1751048012, - "narHash": "sha256-MYbotu4UjWpTsq01wglhN5xDRfZYLFtNk7SBY0BcjkU=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a684c58d46ebbede49f280b653b9e56100aa3877", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_4": { - "locked": { - "lastModified": 1730741070, - "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_5": { - "locked": { - "lastModified": 1751211869, - "narHash": "sha256-1Cu92i1KSPbhPCKxoiVG5qnoRiKTgR5CcGSRyLpOd7Y=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b43c397f6c213918d6cfe6e3550abfe79b5d1c51", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_6": { - "locked": { - "lastModified": 1730741070, - "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_7": { - "locked": { - "lastModified": 1749488106, - "narHash": "sha256-b9GIWdF/8jKpCC5JIMgDLZgwe8cEbty2fyTyo1eDFfI=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "8fe3e32e7f210522377c3bcff80931a3284ace6a", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-stable_8": { - "locked": { - "lastModified": 1730741070, - "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1751271578, - "narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1744868846, - "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1748460289, - "narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1744868846, - "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1748693115, - "narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1748882666, - "narHash": "sha256-z2uanxifOXGEqdiprquIGZu0XaRYih3FHXDQwLc1xis=", - "owner": "nvmd", - "repo": "nixpkgs", - "rev": "d2e9e5abf6308b83487d26e383799f7520dc5cdf", - "type": "github" - }, - "original": { - "owner": "nvmd", - "ref": "modules-with-keys-25.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nuc-disko": { - "inputs": { - "nixpkgs": [ - "nuc-nixpkgs" - ] - }, - "locked": { - "lastModified": 1742690494, - "narHash": "sha256-SFacEbSRMoTyWG5VXh4ieofJGge+cLq9lH8ifB+zjBg=", - "owner": "nvmd", - "repo": "disko", - "rev": "9dc58d4d49c9f74623a06e2fc20cdfd8bb3cbe8b", - "type": "github" - }, - "original": { - "owner": "nvmd", - "ref": "gpt-attrs", - "repo": "disko", - "type": "github" - } - }, - "nuc-home-manager": { - "inputs": { - "nixpkgs": [ - "nuc-nixpkgs" - ] - }, - "locked": { - "lastModified": 1752603129, - "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "nuc-impermanence": { - "locked": { - "lastModified": 1737831083, - "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", - "owner": "nix-community", - "repo": "impermanence", - "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "impermanence", - "type": "github" - } - }, - "nuc-lanzaboote": { - "inputs": { - "crane": "crane_3", - "flake-compat": "flake-compat_7", - "flake-parts": "flake-parts_4", - "nixpkgs": [ - "nuc-nixpkgs" - ], - "pre-commit-hooks-nix": "pre-commit-hooks-nix_3", - "rust-overlay": "rust-overlay_6" - }, - "locked": { - "lastModified": 1737639419, - "narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=", - "owner": "nix-community", - "repo": "lanzaboote", - "rev": "a65905a09e2c43ff63be8c0e86a93712361f871e", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "v0.4.2", - "repo": "lanzaboote", - "type": "github" - } - }, - "nuc-nixpkgs": { - "locked": { - "lastModified": 1752480373, - "narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nuc-sops-nix": { - "inputs": { - "nixpkgs": [ - "nuc-nixpkgs" - ] - }, - "locked": { - "lastModified": 1752544651, - "narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=", - "owner": "Mic92", - "repo": "sops-nix", - "rev": "2c8def626f54708a9c38a5861866660395bb3461", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "sops-nix", - "type": "github" - } - }, - "pi4-disko": { - "inputs": { - "nixpkgs": [ - "pi4-nixpkgs" - ] - }, - "locked": { - "lastModified": 1742690494, - "narHash": "sha256-SFacEbSRMoTyWG5VXh4ieofJGge+cLq9lH8ifB+zjBg=", - "owner": "nvmd", - "repo": "disko", - "rev": "9dc58d4d49c9f74623a06e2fc20cdfd8bb3cbe8b", - "type": "github" - }, - "original": { - "owner": "nvmd", - "ref": "gpt-attrs", - "repo": "disko", - "type": "github" - } - }, - "pi4-home-manager": { - "inputs": { - "nixpkgs": [ - "pi4-nixpkgs" - ] - }, - "locked": { - "lastModified": 1750781171, - "narHash": "sha256-39oPt8TJZmt3bNEKBcwB+QuasiavRDwM5jkw6UkRb98=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "a4bac2b9ba2f9bd68032880da8ae6b44fbc46047", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "pi4-impermanence": { - "locked": { - "lastModified": 1737831083, - "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", - "owner": "nix-community", - "repo": "impermanence", - "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "impermanence", - "type": "github" - } - }, - "pi4-nixos-hardware": { - "locked": { - "lastModified": 1750431636, - "narHash": "sha256-vnzzBDbCGvInmfn2ijC4HsIY/3W1CWbwS/YQoFgdgPg=", - "owner": "NixOS", - "repo": "nixos-hardware", - "rev": "1552a9f4513f3f0ceedcf90320e48d3d47165712", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "master", - "repo": "nixos-hardware", - "type": "github" - } - }, - "pi4-nixpkgs": { - "locked": { - "lastModified": 1750506804, - "narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "4206c4cb56751df534751b058295ea61357bbbaa", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "pi4-sops-nix": { - "inputs": { - "nixpkgs": [ - "pi4-nixpkgs" - ] - }, - "locked": { - "lastModified": 1750119275, - "narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=", - "owner": "Mic92", - "repo": "sops-nix", - "rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "sops-nix", - "type": "github" - } - }, - "pi5-cosmic": { - "inputs": { - "flake-compat": "flake-compat_8", - "nixpkgs": [ - "pi5-nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable_7", - "rust-overlay": "rust-overlay_7" - }, - "locked": { - "lastModified": 1749770917, - "narHash": "sha256-3jOhroFAAKg/vPmgmDnOKUGJp6GfLycUkhyMaJKZ7zg=", - "owner": "lilyinstarlight", - "repo": "nixos-cosmic", - "rev": "f5d076cdc61fe2f268d624a34a3df52573620396", - "type": "github" - }, - "original": { - "owner": "lilyinstarlight", - "repo": "nixos-cosmic", - "type": "github" - } - }, - "pi5-disko": { - "inputs": { - "nixpkgs": [ - "pi5-nixpkgs" - ] - }, - "locked": { - "lastModified": 1742690494, - "narHash": "sha256-SFacEbSRMoTyWG5VXh4ieofJGge+cLq9lH8ifB+zjBg=", - "owner": "nvmd", - "repo": "disko", - "rev": "9dc58d4d49c9f74623a06e2fc20cdfd8bb3cbe8b", - "type": "github" - }, - "original": { - "owner": "nvmd", - "ref": "gpt-attrs", - "repo": "disko", - "type": "github" - } - }, - "pi5-home-manager": { - "inputs": { - "nixpkgs": [ - "pi5-nixpkgs" - ] - }, - "locked": { - "lastModified": 1750730235, - "narHash": "sha256-rZErlxiV7ssvI8t7sPrKU+fRigNc2KvoKZG3gtUtK50=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "d07e9cceb4994ed64a22b9b36f8b76923e87ac38", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "pi5-impermanence": { - "locked": { - "lastModified": 1737831083, - "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", - "owner": "nix-community", - "repo": "impermanence", - "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "impermanence", - "type": "github" - } - }, - "pi5-nixos-hardware": { - "locked": { - "lastModified": 1750431636, - "narHash": "sha256-vnzzBDbCGvInmfn2ijC4HsIY/3W1CWbwS/YQoFgdgPg=", - "owner": "NixOS", - "repo": "nixos-hardware", - "rev": "1552a9f4513f3f0ceedcf90320e48d3d47165712", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "master", - "repo": "nixos-hardware", - "type": "github" - } - }, - "pi5-nixpkgs": { - "locked": { - "lastModified": 1750506804, - "narHash": "sha256-VLFNc4egNjovYVxDGyBYTrvVCgDYgENp5bVi9fPTDYc=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "4206c4cb56751df534751b058295ea61357bbbaa", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "pi5-sops-nix": { - "inputs": { - "nixpkgs": [ - "pi5-nixpkgs" - ] - }, - "locked": { - "lastModified": 1750119275, - "narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=", - "owner": "Mic92", - "repo": "sops-nix", - "rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "sops-nix", - "type": "github" - } - }, - "pre-commit-hooks-nix": { - "inputs": { - "flake-compat": [ - "desktop-lanzaboote", - "flake-compat" - ], - "gitignore": "gitignore", - "nixpkgs": [ - "desktop-lanzaboote", - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable_2" - }, - "locked": { - "lastModified": 1731363552, - "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, - "pre-commit-hooks-nix_2": { - "inputs": { - "flake-compat": [ - "nas-lanzaboote", - "flake-compat" - ], - "gitignore": "gitignore_2", - "nixpkgs": [ - "nas-lanzaboote", - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable_4" - }, - "locked": { - "lastModified": 1731363552, - "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, - "pre-commit-hooks-nix_3": { - "inputs": { - "flake-compat": [ - "nuc-lanzaboote", - "flake-compat" - ], - "gitignore": "gitignore_3", - "nixpkgs": [ - "nuc-lanzaboote", - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable_6" - }, - "locked": { - "lastModified": 1731363552, - "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, - "pre-commit-hooks-nix_4": { - "inputs": { - "flake-compat": [ - "steamdeck-lanzaboote", - "flake-compat" - ], - "gitignore": "gitignore_4", - "nixpkgs": [ - "steamdeck-lanzaboote", - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable_8" - }, - "locked": { - "lastModified": 1731363552, - "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, - "pyproject-build-systems": { - "inputs": { - "nixpkgs": [ - "nas-authentik-nix", - "nixpkgs" - ], - "pyproject-nix": [ - "nas-authentik-nix", - "pyproject-nix" - ], - "uv2nix": [ - "nas-authentik-nix", - "uv2nix" - ] - }, - "locked": { - "lastModified": 1749519371, - "narHash": "sha256-UJONN7mA2stweZCoRcry2aa1XTTBL0AfUOY84Lmqhos=", - "owner": "pyproject-nix", - "repo": "build-system-pkgs", - "rev": "7c06967eca687f3482624250428cc12f43c92523", - "type": "github" - }, - "original": { - "owner": "pyproject-nix", - "repo": "build-system-pkgs", - "type": "github" - } - }, - "pyproject-nix": { - "inputs": { - "nixpkgs": [ - "nas-authentik-nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1750499893, - "narHash": "sha256-ThKBd8XSvITAh2JqU7enOp8AfKeQgf9u7zYC41cnBE4=", - "owner": "pyproject-nix", - "repo": "pyproject.nix", - "rev": "e824458bd917b44bf4c38795dea2650336b2f55d", - "type": "github" - }, - "original": { - "owner": "pyproject-nix", - "repo": "pyproject.nix", - "type": "github" - } - }, - "root": { - "inputs": { - "desktop-chaotic": "desktop-chaotic", - "desktop-cosmic": "desktop-cosmic", - "desktop-home-manager": "desktop-home-manager", - "desktop-impermanence": "desktop-impermanence", - "desktop-lanzaboote": "desktop-lanzaboote", - "desktop-nix-vscode-extensions": "desktop-nix-vscode-extensions", - "desktop-nixos-hardware": "desktop-nixos-hardware", - "desktop-nixpkgs": "desktop-nixpkgs", - "desktop-sops-nix": "desktop-sops-nix", - "desktop-steam-rom-manager": "desktop-steam-rom-manager", - "homebrew-cask": "homebrew-cask", - "homebrew-core": "homebrew-core", - "mac-home-manager": "mac-home-manager", - "mac-impermanence": "mac-impermanence", - "mac-nixos-apple-silicon": "mac-nixos-apple-silicon", - "mac-nixpkgs": "mac-nixpkgs", - "mac-sops-nix": "mac-sops-nix", - "nas-authentik-nix": "nas-authentik-nix", - "nas-cosmic": "nas-cosmic", - "nas-crowdsec": "nas-crowdsec", - "nas-home-manager": "nas-home-manager", - "nas-impermanence": "nas-impermanence", - "nas-lanzaboote": "nas-lanzaboote", - "nas-nix-vscode-extensions": "nas-nix-vscode-extensions", - "nas-nixai": "nas-nixai", - "nas-nixos-hardware": "nas-nixos-hardware", - "nas-nixpkgs": "nas-nixpkgs", - "nas-nixpkgs-stable": "nas-nixpkgs-stable", - "nas-sops-nix": "nas-sops-nix", - "nix-darwin": "nix-darwin", - "nix-homebrew": "nix-homebrew", - "nixos-raspberrypi": "nixos-raspberrypi", - "nixpkgs-stable": "nixpkgs-stable_5", - "nixpkgs-unstable": "nixpkgs-unstable", - "nuc-disko": "nuc-disko", - "nuc-home-manager": "nuc-home-manager", - "nuc-impermanence": "nuc-impermanence", - "nuc-lanzaboote": "nuc-lanzaboote", - "nuc-nixpkgs": "nuc-nixpkgs", - "nuc-sops-nix": "nuc-sops-nix", - "pi4-disko": "pi4-disko", - "pi4-home-manager": "pi4-home-manager", - "pi4-impermanence": "pi4-impermanence", - "pi4-nixos-hardware": "pi4-nixos-hardware", - "pi4-nixpkgs": "pi4-nixpkgs", - "pi4-sops-nix": "pi4-sops-nix", - "pi5-cosmic": "pi5-cosmic", - "pi5-disko": "pi5-disko", - "pi5-home-manager": "pi5-home-manager", - "pi5-impermanence": "pi5-impermanence", - "pi5-nixos-hardware": "pi5-nixos-hardware", - "pi5-nixpkgs": "pi5-nixpkgs", - "pi5-sops-nix": "pi5-sops-nix", - "steamdeck-chaotic": "steamdeck-chaotic", - "steamdeck-disko": "steamdeck-disko", - "steamdeck-home-manager": "steamdeck-home-manager", - "steamdeck-impermanence": "steamdeck-impermanence", - "steamdeck-jovian": "steamdeck-jovian", - "steamdeck-lanzaboote": "steamdeck-lanzaboote", - "steamdeck-nixos-hardware": "steamdeck-nixos-hardware", - "steamdeck-nixpkgs": "steamdeck-nixpkgs", - "steamdeck-sops-nix": "steamdeck-sops-nix", - "steamdeck-steam-rom-manager": "steamdeck-steam-rom-manager" - } - }, - "rust-overlay": { - "inputs": { - "nixpkgs": [ - "desktop-chaotic", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1751165203, - "narHash": "sha256-3QhlpAk2yn+ExwvRLtaixWsVW1q3OX3KXXe0l8VMLl4=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "90f547b90e73d3c6025e66c5b742d6db51c418c3", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_2": { - "inputs": { - "nixpkgs": [ - "desktop-cosmic", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1749091064, - "narHash": "sha256-TGtYjzRX0sueFhwYsnNNFF5TTKnpnloznpIghLzxeXo=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "12419593ce78f2e8e1e89a373c6515885e218acb", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_3": { - "inputs": { - "nixpkgs": [ - "desktop-lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1731897198, - "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "0be641045af6d8666c11c2c40e45ffc9667839b5", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_4": { - "inputs": { - "nixpkgs": [ - "nas-cosmic", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1751251399, - "narHash": "sha256-y+viCuy/eKKpkX1K2gDvXIJI/yzvy6zA3HObapz9XZ0=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "b22d5ee8c60ed1291521f2dde48784edd6bf695b", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_5": { - "inputs": { - "nixpkgs": [ - "nas-lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1731897198, - "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "0be641045af6d8666c11c2c40e45ffc9667839b5", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_6": { - "inputs": { - "nixpkgs": [ - "nuc-lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1731897198, - "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "0be641045af6d8666c11c2c40e45ffc9667839b5", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_7": { - "inputs": { - "nixpkgs": [ - "pi5-cosmic", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1749695868, - "narHash": "sha256-debjTLOyqqsYOUuUGQsAHskFXH5+Kx2t3dOo/FCoNRA=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "55f914d5228b5c8120e9e0f9698ed5b7214d09cd", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_8": { - "inputs": { - "nixpkgs": [ - "steamdeck-chaotic", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1751856221, - "narHash": "sha256-/QE1eV0ckFvgRMcKjZqgdJDoXFNwSMepwRoBjaw2MCk=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "34cae4b56929c5b340e1c5b10d9a98a425b2a51e", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_9": { - "inputs": { - "nixpkgs": [ - "steamdeck-lanzaboote", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1731897198, - "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "0be641045af6d8666c11c2c40e45ffc9667839b5", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "steamdeck-chaotic": { - "inputs": { - "flake-schemas": "flake-schemas_2", - "home-manager": "home-manager_2", - "jovian": "jovian_2", - "nixpkgs": "nixpkgs_7", - "rust-overlay": "rust-overlay_8" - }, - "locked": { - "lastModified": 1751984126, - "narHash": "sha256-PrNg+sypyNMU0dHLbfVFQx58NEnS59DUIu0SZSq3DSk=", - "owner": "chaotic-cx", - "repo": "nyx", - "rev": "8feb220c99c94c4957d37253eff6100cc33d7e8a", - "type": "github" - }, - "original": { - "owner": "chaotic-cx", - "ref": "nyxpkgs-unstable", - "repo": "nyx", - "type": "github" - } - }, - "steamdeck-disko": { - "inputs": { - "nixpkgs": [ - "steamdeck-nixpkgs" - ] - }, - "locked": { - "lastModified": 1742690494, - "narHash": "sha256-SFacEbSRMoTyWG5VXh4ieofJGge+cLq9lH8ifB+zjBg=", - "owner": "nvmd", - "repo": "disko", - "rev": "9dc58d4d49c9f74623a06e2fc20cdfd8bb3cbe8b", - "type": "github" - }, - "original": { - "owner": "nvmd", - "ref": "gpt-attrs", - "repo": "disko", - "type": "github" - } - }, - "steamdeck-home-manager": { - "inputs": { - "nixpkgs": [ - "steamdeck-nixpkgs" - ] - }, - "locked": { - "lastModified": 1752062782, - "narHash": "sha256-Dod77HcIByOyfGLEJOgRxg2Fmk2Y5lVgMEcN/xVEt/8=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "bec8ff39811568eb7c8c8d1e2a1a476326748f51", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "steamdeck-impermanence": { - "locked": { - "lastModified": 1737831083, - "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", - "owner": "nix-community", - "repo": "impermanence", - "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "impermanence", - "type": "github" - } - }, - "steamdeck-jovian": { - "inputs": { - "nix-github-actions": "nix-github-actions_3", - "nixpkgs": [ - "steamdeck-nixpkgs" - ] - }, - "locked": { - "lastModified": 1752052164, - "narHash": "sha256-rq5aT1acTwLMAds//7WLtZhZGC5Hyr5YQqbiA0kb3yo=", - "owner": "Jovian-Experiments", - "repo": "Jovian-NixOS", - "rev": "f81c48f403c976463fe5812e9e6bca8cf49aebdc", - "type": "github" - }, - "original": { - "owner": "Jovian-Experiments", - "repo": "Jovian-NixOS", - "type": "github" - } - }, - "steamdeck-lanzaboote": { - "inputs": { - "crane": "crane_4", - "flake-compat": "flake-compat_9", - "flake-parts": "flake-parts_5", - "nixpkgs": [ - "steamdeck-nixpkgs" - ], - "pre-commit-hooks-nix": "pre-commit-hooks-nix_4", - "rust-overlay": "rust-overlay_9" - }, - "locked": { - "lastModified": 1737639419, - "narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=", - "owner": "nix-community", - "repo": "lanzaboote", - "rev": "a65905a09e2c43ff63be8c0e86a93712361f871e", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "v0.4.2", - "repo": "lanzaboote", - "type": "github" - } - }, - "steamdeck-nixos-hardware": { - "locked": { - "lastModified": 1752048960, - "narHash": "sha256-gATnkOe37eeVwKKYCsL+OnS2gU4MmLuZFzzWCtaKLI8=", - "owner": "NixOS", - "repo": "nixos-hardware", - "rev": "7ced9122cff2163c6a0212b8d1ec8c33a1660806", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "master", - "repo": "nixos-hardware", - "type": "github" - } - }, - "steamdeck-nixpkgs": { - "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "steamdeck-sops-nix": { - "inputs": { - "nixpkgs": [ - "steamdeck-nixpkgs" - ] - }, - "locked": { - "lastModified": 1751606940, - "narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=", - "owner": "Mic92", - "repo": "sops-nix", - "rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "sops-nix", - "type": "github" - } - }, - "steamdeck-steam-rom-manager": { - "inputs": { - "home-manager": [ - "steamdeck-home-manager" - ], - "nixpkgs": [ - "steamdeck-nixpkgs" - ] - }, - "locked": { - "lastModified": 1740436018, - "narHash": "sha256-mblKQD3IFyVLN3dw7T7/qsXt1Vw7zu5Ky1rJcLu5Qeg=", - "owner": "mjallen18", - "repo": "nix-steam-rom-manager", - "rev": "5c0875d5942b8a1928d53a642b43a49a3c7636ea", - "type": "github" - }, - "original": { - "owner": "mjallen18", - "repo": "nix-steam-rom-manager", - "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" - } - }, - "systems_2": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "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" - } - }, - "uv2nix": { - "inputs": { - "nixpkgs": [ - "nas-authentik-nix", - "nixpkgs" - ], - "pyproject-nix": [ - "nas-authentik-nix", - "pyproject-nix" - ] - }, - "locked": { - "lastModified": 1750987094, - "narHash": "sha256-GujDElxLgYatnNvuL1U6qd18lcuG6anJMjpfYRScV08=", - "owner": "pyproject-nix", - "repo": "uv2nix", - "rev": "4b703d851b61e664a70238711a8ff0efa1aa2f52", - "type": "github" - }, - "original": { - "owner": "pyproject-nix", - "repo": "uv2nix", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix index a9e7539..874ec2c 100644 --- a/flake.nix +++ b/flake.nix @@ -48,7 +48,7 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi"; + nixos-raspberrypi.url = "github:mjallen18/nixos-raspberrypi"; jovian.url = "github:Jovian-Experiments/Jovian-NixOS"; @@ -177,6 +177,31 @@ nixos-hardware.nixosModules.common-pc ]; }; + + # ###################################################### + # Pi4 # + # ###################################################### + pi4 = { + modules = with inputs; [ + disko.nixosModules.disko + nixos-raspberrypi.nixosModules.raspberry-pi-4.base + nixos-raspberrypi.nixosModules.raspberry-pi-4.display-vc4 + nixos-raspberrypi.lib.inject-overlays + ]; + }; + + # ###################################################### + # Pi5 # + # ###################################################### + pi5 = { + modules = with inputs; [ + disko.nixosModules.disko + nixos-raspberrypi.nixosModules.raspberry-pi-5.base + nixos-raspberrypi.nixosModules.raspberry-pi-5.display-vc4 + nixos-raspberrypi.nixosModules.raspberry-pi-5.bluetooth + nixos-raspberrypi.lib.inject-overlays + ]; + }; }; overlays = with inputs; [ nix-vscode-extensions.overlays.default ]; @@ -226,10 +251,8 @@ formatter = inputs.treefmt-nix.lib.mkWrapper channels.nixpkgs ./treefmt.nix; }; }; - - piSystems = import ./systems/aarch64-linux/pi4/flake.nix { inherit inputs; }; in snowfall // { - nixosConfigurations = snowfall.nixosConfigurations // piSystems; + nixosConfigurations = snowfall.nixosConfigurations; }; } \ No newline at end of file diff --git a/homes/aarch64-linux/matt@pi4/default.nix b/homes/aarch64-linux/matt@pi4/default.nix index 831a18f..c507e31 100755 --- a/homes/aarch64-linux/matt@pi4/default.nix +++ b/homes/aarch64-linux/matt@pi4/default.nix @@ -55,7 +55,6 @@ in }; programs = { - java.enable = lib.mkForce true; mangohud.enable = lib.mkForce true; zsh.shellAliases = shellAliases; }; diff --git a/homes/aarch64-linux/matt@pi5/default.nix b/homes/aarch64-linux/matt@pi5/default.nix index f068bdf..866e684 100755 --- a/homes/aarch64-linux/matt@pi5/default.nix +++ b/homes/aarch64-linux/matt@pi5/default.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, config, ... }: +{ pkgs, lib, config, namespace, ... }: let shellAliases = { update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.3"; @@ -9,14 +9,6 @@ let }; in { - imports = [ - ../../share/home/defaults.nix - ../../share/home/git.nix - ../../share/home/gnome.nix - ../../share/home/librewolf.nix - ../../share/home/shell.nix - ../../share/home/vscode.nix - ]; home.username = "matt"; diff --git a/homes/aarch64-linux/root@pi4/default.nix b/homes/aarch64-linux/root@pi4/default.nix new file mode 100644 index 0000000..78e871b --- /dev/null +++ b/homes/aarch64-linux/root@pi4/default.nix @@ -0,0 +1,18 @@ +{ config, lib, ... }: +let + shellAliases = { + update-boot = "nixos-rebuild boot --max-jobs 10"; + update-switch = "nixos-rebuild switch --max-jobs 10"; + }; +in +{ + home = { + username = "root"; + homeDirectory = lib.mkForce "/${config.home.username}"; + enableNixpkgsReleaseCheck = false; + }; + + programs = { + zsh.shellAliases = shellAliases; + }; +} \ No newline at end of file diff --git a/modules/home/home/default.nix b/modules/home/home/default.nix index c9f661b..3bc2343 100644 --- a/modules/home/home/default.nix +++ b/modules/home/home/default.nix @@ -41,7 +41,6 @@ home-manager.enable = lib.mkDefault true; java = { enable = lib.mkDefault true; - package = pkgs.jdk17; }; mangohud.enable = lib.mkDefault true; password-store.enable = true; diff --git a/modules/home/programs/code/default.nix b/modules/home/programs/code/default.nix index 064e4a2..ed7da44 100644 --- a/modules/home/programs/code/default.nix +++ b/modules/home/programs/code/default.nix @@ -1,5 +1,6 @@ -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, system, ... }: let + isArm = "aarch64-linux" == system; open-remote-ssh = pkgs.vscode-utils.buildVscodeExtension { pname = "open-remote-ssh"; version = "0.0.49"; @@ -12,6 +13,9 @@ let name = "open-remote-ssh.zip"; }; }; + x86_only = with pkgs; [ + vscode-extensions.redhat.vscode-xml + ]; in { programs = { @@ -35,14 +39,13 @@ in vscode-extensions.ms-python.pylint vscode-extensions.ms-python.python # vscode-extensions.ms-python.vscode-pylance - vscode-extensions.redhat.vscode-xml vscode-extensions.redhat.vscode-yaml vscode-extensions.yy0931.vscode-sqlite3-editor # open-remote-ssh # nix-vscode-extensions.open-vsx.jeanp413.open-remote-ssh # open-vsx.jeanp413.open-remote-ssh - ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ + ] ++ ( if !isArm then x86_only else [ ] ) ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ { name = "copilot-mcp"; publisher = "automatalabs"; diff --git a/modules/home/user/default.nix b/modules/home/user/default.nix new file mode 100644 index 0000000..8512ff9 --- /dev/null +++ b/modules/home/user/default.nix @@ -0,0 +1,157 @@ +{ + config, + lib, + pkgs, + namespace, + ... +}: +with lib; +let + cfg = config.${namespace}.user; + + home-directory = + if cfg.name == null then + null + else if pkgs.stdenv.hostPlatform.isDarwin then + "/Users/${cfg.name}" + else + "/home/${cfg.name}"; +in +{ + options.${namespace}.user = { + enable = mkOption { + type = types.bool; + default = false; + description = "Whether to configure the user account."; + }; + email = mkOption { + type = types.str; + default = "jalle008@proton.me"; + description = "The email of the user."; + }; + fullName = mkOption { + type = types.str; + default = "Austin Horstman"; + description = "The full name of the user."; + }; + home = mkOption { + type = (types.nullOr types.str); + default = home-directory; + description = "The user's home directory."; + }; + icon = mkOption { + type = (types.nullOr types.package); + default = pkgs.${namespace}.user-icon; + description = "The profile picture to use for the user."; + }; + name = mkOption { + type = (types.nullOr types.str); + default = config.snowfallorg.user.name; + description = "The user account."; + }; + }; + + config = mkIf cfg.enable (mkMerge [ + { + assertions = [ + { + assertion = cfg.name != null; + message = "${namespace}.user.name must be set"; + } + { + assertion = cfg.home != null; + message = "${namespace}.user.home must be set"; + } + ]; + + home = { + file = + { + "Desktop/.keep".text = ""; + "Documents/.keep".text = ""; + "Downloads/.keep".text = ""; + "Music/.keep".text = ""; + "Pictures/.keep".text = ""; + "Videos/.keep".text = ""; + } + // lib.optionalAttrs (cfg.icon != null) { + ".face".source = cfg.icon; + ".face.icon".source = cfg.icon; + "Pictures/${cfg.icon.fileName or (builtins.baseNameOf cfg.icon)}".source = cfg.icon; + }; + + homeDirectory = mkDefault cfg.home; + + shellAliases = { + # nix specific aliases + cleanup = "sudo nix-collect-garbage --delete-older-than 3d && nix-collect-garbage -d"; + bloat = "nix path-info -Sh /run/current-system"; + curgen = "sudo nix-env --list-generations --profile /nix/var/nix/profiles/system"; + gc-check = "nix-store --gc --print-roots | egrep -v \"^(/nix/var|/run/\w+-system|\{memory|/proc)\""; + repair = "nix-store --verify --check-contents --repair"; + nixnuke = '' + # Kill nix-daemon and nix processes first + sudo pkill -9 -f "nix-(daemon|store|build)" || true + + # Find and kill all nixbld processes + for pid in $(ps -axo pid,user | ${getExe pkgs.gnugrep} -E '[_]?nixbld[0-9]+' | ${getExe pkgs.gawk} '{print $1}'); do + sudo kill -9 "$pid" 2>/dev/null || true + done + + # Restart nix-daemon based on platform + if [ "$(uname)" = "Darwin" ]; then + sudo launchctl kickstart -k system/org.nixos.nix-daemon + else + sudo systemctl restart nix-daemon.service + fi + ''; + flake = "nix flake"; + nix = "nix -vL"; + gsed = "${getExe pkgs.gnused}"; + hmvar-reload = ''__HM_ZSH_SESS_VARS_SOURCED=0 source "/etc/profiles/per-user/${config.${namespace}.user.name}/etc/profile.d/hm-session-vars.sh"''; + + # File management + rcp = "${getExe pkgs.rsync} -rahP --mkpath --modify-window=1"; # Rsync copy keeping all attributes,timestamps,permissions" + rmv = "${getExe pkgs.rsync} -rahP --mkpath --modify-window=1 --remove-sent-files"; # Rsync move keeping all attributes,timestamps,permissions + tarnow = "${getExe pkgs.gnutar} -acf "; + untar = "${getExe pkgs.gnutar} -zxvf "; + wget = "${getExe pkgs.wget} -c "; + remove-empty = ''${getExe' pkgs.findutils "find"} . -type d --empty --delete''; + print-empty = ''${getExe' pkgs.findutils "find"} . -type d --empty --print''; + dfh = "${getExe' pkgs.coreutils "df"} -h"; + duh = "${getExe' pkgs.coreutils "du"} -h"; + usage = "${getExe' pkgs.coreutils "du"} -ah -d1 | sort -rn 2>/dev/null"; + + # Navigation shortcuts + home = "cd ~"; + dots = "cd $DOTS_DIR"; + ".." = "cd .."; + "..." = "cd ../.."; + "...." = "cd ../../.."; + "....." = "cd ../../../.."; + "......" = "cd ../../../../.."; + + # Colorize output + dir = "${getExe' pkgs.coreutils "dir"} --color=auto"; + egrep = "${getExe' pkgs.gnugrep "egrep"} --color=auto"; + fgrep = "${getExe' pkgs.gnugrep "fgrep"} --color=auto"; + grep = "${getExe pkgs.gnugrep} --color=auto"; + vdir = "${getExe' pkgs.coreutils "vdir"} --color=auto"; + + # Misc + clear = "clear && ${getExe config.programs.fastfetch.package}"; + clr = "clear"; + pls = "sudo"; + psg = "${getExe pkgs.ps} aux | grep"; + myip = "${getExe pkgs.curl} ifconfig.me"; + + # Cryptography + genpass = "${getExe pkgs.openssl} rand - base64 20"; # Generate a random, 20-character password + sha = "shasum -a 256"; # Test checksum + }; + + username = mkDefault cfg.name; + }; + } + ]); +} \ No newline at end of file diff --git a/modules/nixos/desktop/hyprland/default.nix b/modules/nixos/desktop/hyprland/default.nix index 0f659f7..560c90a 100755 --- a/modules/nixos/desktop/hyprland/default.nix +++ b/modules/nixos/desktop/hyprland/default.nix @@ -64,7 +64,7 @@ in hyprland = { enable = true; xwayland.enable = true; - portalPackage = pkgs.xdg-desktop-portal-hyprland; + portalPackage = lib.mkDefault pkgs.xdg-desktop-portal-hyprland; }; nm-applet.enable = true; @@ -161,7 +161,7 @@ in enable = true; wlr.enable = true; xdgOpenUsePortal = true; - extraPortals = [ + extraPortals = lib.mkDefault [ pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-gnome pkgs.xdg-desktop-portal-gtk diff --git a/modules/nixos/hardware/default.nix b/modules/nixos/hardware/default.nix index dd951a8..a293ebc 100644 --- a/modules/nixos/hardware/default.nix +++ b/modules/nixos/hardware/default.nix @@ -1,6 +1,6 @@ { lib, system, ... }: let - isArm = builtins.match "aarch64*" system != null; + isArm = "aarch64-linux" == system; in { hardware = { diff --git a/modules/nixos/home/default.nix b/modules/nixos/home/default.nix index 185f5f9..dfdb10f 100644 --- a/modules/nixos/home/default.nix +++ b/modules/nixos/home/default.nix @@ -53,8 +53,8 @@ # Add any other external HM modules here ]; - # users.${config.${namespace}.user.name} = lib.types.mkAliasDefinitions options.${namespace}.home.extraOptions; - users.admin = lib.mkAliasDefinitions options.${namespace}.home.extraOptions; + users.${config.${namespace}.user.name} = lib.mkAliasDefinitions options.${namespace}.home.extraOptions; + # users.admin = lib.mkAliasDefinitions options.${namespace}.home.extraOptions; verbose = true; }; diff --git a/modules/nixos/user/default.nix b/modules/nixos/user/default.nix new file mode 100644 index 0000000..85ed43f --- /dev/null +++ b/modules/nixos/user/default.nix @@ -0,0 +1,66 @@ +{ + config, + lib, + pkgs, + namespace, + ... +}: +with lib; +let + cfg = config.${namespace}.user; +in +{ + options.${namespace}.user = with types; { + email = lib.mkOption { + type = str; + default = "jalle008@proton.me"; + description = "The email of the user."; + }; + extraGroups = lib.mkOption { + type = (listOf str); + default = [ ]; + description = "Groups for the user to be assigned."; + }; + extraOptions = lib.mkOption { + type = attrs; + default = { }; + description = "Extra options passed to ."; + }; + fullName = lib.mkOption { + type = str; + default = "Matt Jallen"; + description = "The full name of the user."; + }; + name = lib.mkOption { + type = str; + default = "matt"; + description = "The name to use for the user account."; + }; + }; + + config = { + users.users.${cfg.name} = { + inherit (cfg) name; + + extraGroups = [ + "wheel" + "systemd-journal" + "mpd" + "audio" + "video" + "input" + "plugdev" + "lp" + "tss" + "power" + "nix" + ] ++ cfg.extraGroups; + + group = "users"; + home = "/home/${cfg.name}"; + isNormalUser = true; + shell = lib.mkDefault pkgs.zsh; + uid = 1000; + } // cfg.extraOptions; + }; +} \ No newline at end of file diff --git a/systems/aarch64-linux/pi4/argononed.nix b/systems/aarch64-linux/pi4/argononed.nix deleted file mode 100644 index 38bbe17..0000000 --- a/systems/aarch64-linux/pi4/argononed.nix +++ /dev/null @@ -1,69 +0,0 @@ -# { ... }: -# { -# programs.argon.one = { -# enable = true; - -# settings = { -# # Is 'celsius' by default, can also be set to 'fahrenheit' -# displayUnits = "celsius"; - -# # This is the same config as the original Argon40 config. -# # This is also the default config for this flake. -# fanspeed = [ -# { -# # This the temperature threshold at which this fan speed will activate. -# # The temperature is in the above specified unit. -# temperature = 55; -# # This is speed percentage at which the fan will spin. -# speed = 30; -# } -# { -# temperature = 60; -# speed = 55; -# } -# { -# temperature = 65; -# speed = 100; -# } -# ]; -# ir = { -# enable = true; -# gpio.enable = true; -# keymap = { -# "POWER" = "00ff39c6"; -# "UP" = "00ff53ac"; -# "DOWN" = "00ff4bb4"; -# "LEFT" = "00ff9966"; -# "RIGHT" = "00ff837c"; -# "VOLUMEUP" = "00ff01fe"; -# "VOLUMEDOWN" = "00ff817e"; -# "OK" = "00ff738c"; -# "HOME" = "00ffd32c"; -# "MENU" = "00ffb946"; -# "BACK" = "00ff09f6"; -# }; -# }; -# }; -# }; -# } -# { lib, stdenv, pkgs, config, ...}: -# { -# imports = let -# argononed = fetchGit { -# url = "https://github.com/mjallen18/argononed.git"; -# ref = "dev"; # Or any other branches deemed suitable -# }; -# in -# [ "${argononed}/OS/nixos" ]; - -# services.argonone = { -# enable = true; -# logLevel = 4; -# settings = { -# fanTemp0 = 36; fanSpeed0 = 10; -# fanTemp1 = 41; fanSpeed1 = 50; -# fanTemp2 = 46; fanSpeed2 = 80; -# hysteresis = 4; -# }; -# }; -# } diff --git a/systems/aarch64-linux/pi4/boot.nix b/systems/aarch64-linux/pi4/boot.nix index 1247376..99c1dbf 100755 --- a/systems/aarch64-linux/pi4/boot.nix +++ b/systems/aarch64-linux/pi4/boot.nix @@ -21,13 +21,24 @@ # # cp -r ${uefi_pi4}/share/uefi_rpi4/* /boot/firmware/ # # ''; # } -{ pkgs, lib, ... }: +{ config, pkgs, lib, ... }: let kernelBundle = pkgs.linuxAndFirmware.latest; in { - boot = { - loader.raspberryPi.firmwarePackage = kernelBundle.raspberrypifw; + system.nixos.tags = let + cfg = config.boot.loader.raspberry-pi; + in [ + "raspberry-pi-${cfg.variant}" + cfg.bootloader + config.boot.kernelPackages.kernel.version + ]; + + boot = lib.mkForce { + loader.raspberry-pi = { + firmwarePackage = kernelBundle.raspberrypifw; + variant = "4"; + }; kernelPackages = kernelBundle.linuxPackages_rpi4; }; diff --git a/systems/aarch64-linux/pi4/default.nix b/systems/aarch64-linux/pi4/default.nix index b11e6c41..0b5f6cc 100755 --- a/systems/aarch64-linux/pi4/default.nix +++ b/systems/aarch64-linux/pi4/default.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, namespace, ... }: let user = "matt"; # password = config.sops.secrets."pi4/matt-password".path; @@ -12,11 +12,14 @@ in imports = [ ./adguard.nix ./boot.nix - ./impermanence.nix ./networking.nix ./sops.nix ]; + ${namespace} = { + hardware.disko.enable = true; + }; + nix = { settings = { substituters = [ @@ -45,14 +48,6 @@ in ]; }; - system.nixos.tags = let - cfg = config.boot.loader.raspberryPi; - in [ - "raspberry-pi-${cfg.variant}" - cfg.bootloader - config.boot.kernelPackages.kernel.version - ]; - programs.zsh.enable = true; hardware.i2c.enable = true; @@ -88,26 +83,32 @@ in users = { mutableUsers = false; - users."${user}" = { - isNormalUser = true; - # hashedPasswordFile = password; - password = "BogieDudie1"; - extraGroups = [ - "wheel" - "docker" - "video" - ]; - shell = pkgs.zsh; - openssh.authorizedKeys.keys = [ - # macBook - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCw9zq8DLGByI5v2gAn95hKNyOsm3g61a2buxu2BBMFysQJgmZPCCLUqRJKhSM5Vm/JOgsAmdpRBRZQoHD+6S844CJHb4v4VIbjkyQgYCuM7Rst2IOZ5QybvsA2/D0nwytZ+HXQqDj2AagUYDbz0gyyIHkDQ5YGBMkvkWz/h1Vci6aoBM7VihEDM4KlWoTVuPeASGM8r5IZ2FS83Djbqo4ov6AYvLMrKB9Z7hmFgH6R3LE0gxOkzbGVXtSuvJyrjvgytoT22UhATjjxSQ9D+YJXXkQoB3lUdg8OoIquUPjMZpl4mR8ffvseWPfcvD1XlD5t+TOHFqKpESO547tlOBYhdpew+NSgAXpamCU6oyV8tDCywLQu2ucxHRn78u6WXzWHkDtffdhzmk6TZaPhWqVHuTGjR4higBgGqUfSaKOMszt+FDRZAr3HtuQ2+zJ8bowK9fW5OqilTtK2HtQqroD9ApegDNbqOz6kGy5IycSXvqPURy/M4lxZxbtBPuemcJs= mattjallen@MacBook-Pro.local" - # desktop windows - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZ2PYPjZddOzR8OJj16G88KcUhCDLkvrEmpUQP0wKHDUuA27HQQ2ORo66asadwGHY3k1VDZ1ei9l9H++SIIeKOaaUr5yZdktvj4POUNtbd9ZhcS7sZU7BSF+NMDM+h3tImh6z0S7mWvRQOUv3ZM+ZER+5xTWJVG1OOJEpb1drxJk6Qz0wbZKSR7TPNFBLLXlVy7hkNYf07RtDyhCCxNB3hJfa8c+oztnWumwDhDQWLqiUXWIU2QH6iRLGl/WYnujtNvVVaV/Hn3JJkS6MM9dnV3cpoIO0+J7+WfsN9rZ0wXt5yY3GhiGXwmcO5eYVli8lHlLWtK7aYSETyry6CBsLbojzOQO5rSqhpwfF2njAAFAQU0UjLc8PahisIuFKCwHH4iyXXOagiv5K1Mc/0Ak+WhhMPee6vV2p7NTyNpXRvouDbWy5cSRH31WgQ9fK5mIGe5v8nGGqtEhUubUkiOgP+H3UbT2V/nTv/TFKdJcKw+WmizvTrxBmaMjWALlkYl+s= mattl@Jallen-PC" - # desktop nixos - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPTBMydhOc6SnOdB5WrEd7X07DrboAtagCUgXiOJjLov matt@matt-nixos" - ]; - }; + users = { + "${user}" = { + isNormalUser = true; + # hashedPasswordFile = password; + password = "BogieDudie1"; + extraGroups = [ + "wheel" + "docker" + "video" + ]; + shell = pkgs.zsh; + openssh.authorizedKeys.keys = [ + # macBook + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCw9zq8DLGByI5v2gAn95hKNyOsm3g61a2buxu2BBMFysQJgmZPCCLUqRJKhSM5Vm/JOgsAmdpRBRZQoHD+6S844CJHb4v4VIbjkyQgYCuM7Rst2IOZ5QybvsA2/D0nwytZ+HXQqDj2AagUYDbz0gyyIHkDQ5YGBMkvkWz/h1Vci6aoBM7VihEDM4KlWoTVuPeASGM8r5IZ2FS83Djbqo4ov6AYvLMrKB9Z7hmFgH6R3LE0gxOkzbGVXtSuvJyrjvgytoT22UhATjjxSQ9D+YJXXkQoB3lUdg8OoIquUPjMZpl4mR8ffvseWPfcvD1XlD5t+TOHFqKpESO547tlOBYhdpew+NSgAXpamCU6oyV8tDCywLQu2ucxHRn78u6WXzWHkDtffdhzmk6TZaPhWqVHuTGjR4higBgGqUfSaKOMszt+FDRZAr3HtuQ2+zJ8bowK9fW5OqilTtK2HtQqroD9ApegDNbqOz6kGy5IycSXvqPURy/M4lxZxbtBPuemcJs= mattjallen@MacBook-Pro.local" + # desktop windows + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZ2PYPjZddOzR8OJj16G88KcUhCDLkvrEmpUQP0wKHDUuA27HQQ2ORo66asadwGHY3k1VDZ1ei9l9H++SIIeKOaaUr5yZdktvj4POUNtbd9ZhcS7sZU7BSF+NMDM+h3tImh6z0S7mWvRQOUv3ZM+ZER+5xTWJVG1OOJEpb1drxJk6Qz0wbZKSR7TPNFBLLXlVy7hkNYf07RtDyhCCxNB3hJfa8c+oztnWumwDhDQWLqiUXWIU2QH6iRLGl/WYnujtNvVVaV/Hn3JJkS6MM9dnV3cpoIO0+J7+WfsN9rZ0wXt5yY3GhiGXwmcO5eYVli8lHlLWtK7aYSETyry6CBsLbojzOQO5rSqhpwfF2njAAFAQU0UjLc8PahisIuFKCwHH4iyXXOagiv5K1Mc/0Ak+WhhMPee6vV2p7NTyNpXRvouDbWy5cSRH31WgQ9fK5mIGe5v8nGGqtEhUubUkiOgP+H3UbT2V/nTv/TFKdJcKw+WmizvTrxBmaMjWALlkYl+s= mattl@Jallen-PC" + # desktop nixos + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPTBMydhOc6SnOdB5WrEd7X07DrboAtagCUgXiOJjLov matt@matt-nixos" + ]; + }; - users.root.shell = pkgs.zsh; + root = { + isSystemUser = true; + isNormalUser = false; + shell = pkgs.zsh; + }; + }; }; } diff --git a/systems/aarch64-linux/pi4/disko.nix b/systems/aarch64-linux/pi4/disko.nix deleted file mode 100644 index cb4bd15..0000000 --- a/systems/aarch64-linux/pi4/disko.nix +++ /dev/null @@ -1,102 +0,0 @@ -{ config, lib, ... }: -let - rootDisk = "/dev/sda1"; -in -{ - disko.devices = { - nodev."/" = { - fsType = "tmpfs"; - mountOptions = [ - "mode=755" - "defaults" - "size=2G" - ]; - }; - # root disk setup - disk.main = { - type = "disk"; - device = rootDisk; - imageSize = "15G"; - content = { - type = "gpt"; - # specify partitions - partitions = { - # /boot/firmware - FIRMWARE = { - priority = 1; - name = "FIRMWARE"; - start = "1M"; - end = "1G"; - type = "0700"; - content = { - type = "filesystem"; - format = "vfat"; - mountpoint = "/boot/firmware"; - mountOptions = [ "umask=0077" ]; - }; - }; - # /boot - ESP = { - priority = 2; - name = "ESP"; - # start = "1G"; - # end = "2G"; - size = "1G"; - type = "EF00"; - content = { - type = "filesystem"; - format = "vfat"; - mountpoint = "/boot"; - mountOptions = [ "umask=0077" ]; - }; - }; - - root = { - name = "btrfs-root"; - size = "100%"; - content = { - type = "btrfs"; - extraArgs = [ "-f" ]; # Override existing partition - # Subvolumes must set a mountpoint in order to be mounted, - # unless their parent is mounted - subvolumes = { - "home" = { - mountOptions = [ "compress=zstd" ]; - mountpoint = "/home"; - }; - "root" = { - mountOptions = [ - "compress=zstd" - "noatime" - ]; - mountpoint = "/root"; - }; - "nix" = { - mountOptions = [ - "compress=zstd" - "noatime" - ]; - mountpoint = "/nix"; - }; - "etc" = { - mountOptions = [ - "compress=zstd" - "noatime" - ]; - mountpoint = "/etc"; - }; - "log" = { - mountOptions = [ - "compress=zstd" - "noatime" - ]; - mountpoint = "/var/log"; - }; - }; - }; - }; - }; - }; - }; - }; -} diff --git a/systems/aarch64-linux/pi4/flake.nix b/systems/aarch64-linux/pi4/flake.nix deleted file mode 100644 index 1d5de51..0000000 --- a/systems/aarch64-linux/pi4/flake.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ inputs }: -with inputs; -{ - pi4 = nixos-raspberrypi.lib.nixosSystem { - specialArgs = inputs // { - # Add any special args you need - }; - system = "aarch64-linux"; - modules = [ - # Import your Snowfall modules manually - ./default.nix - disko.nixosModules.disko - ./disko.nix - nixos-hardware.nixosModules.raspberry-pi-4 - { - imports = with nixos-raspberrypi.nixosModules; [ - raspberry-pi-4.base - raspberry-pi-4.display-vc4 - raspberry-pi-4.bluetooth - raspberry-pi-4.case-argonone - ]; - } - impermanence.nixosModules.impermanence - sops-nix.nixosModules.sops - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.backupFileExtension = "backup"; - home-manager.extraSpecialArgs = { inherit inputs; }; - home-manager.sharedModules = [ - sops-nix.homeManagerModules.sops - ]; - home-manager.users.matt = import (../../../homes/aarch64-linux + "/matt@pi4/default.nix"); - home-manager.users.root = { ... }: { - imports = [ - # Your root user config - sops-nix.homeManagerModules.sops - ]; - home.stateVersion = "23.11"; - }; - } - ]; - }; -} \ No newline at end of file diff --git a/systems/aarch64-linux/pi4/impermanence.nix b/systems/aarch64-linux/pi4/impermanence.nix deleted file mode 100755 index 8bf4430..0000000 --- a/systems/aarch64-linux/pi4/impermanence.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ ... }: -{ - # Set up impernance configuration for things like bluetooth - # In this configuration with /etc and /var/log being persistent, only directories outside of that need to be done here. See hardware configuration for all mountpoints. - - environment.persistence."/nix/persist/system" = { - hideMounts = true; - directories = [ - "/var/lib/bluetooth" - "/var/lib/nixos" - "/var/lib/libvirt" - "/var/lib/systemd/coredump" - { - directory = "/var/lib/private"; - mode = "u=rwx,g=,o="; - } - "/etc/NetworkManager/system-connections" - { - directory = "/etc/nix"; - user = "root"; - group = "root"; - mode = "u=rwx,g=rx,o=rx"; - } - ]; - files = [ - "/etc/machine-id" - ]; - }; - - security.sudo.extraConfig = '' - # rollback results in sudo lectures after each reboot - Defaults lecture = never - ''; - -} diff --git a/systems/aarch64-linux/pi4/pi4-hw.nix b/systems/aarch64-linux/pi4/pi4-hw.nix deleted file mode 100644 index d29f290..0000000 --- a/systems/aarch64-linux/pi4/pi4-hw.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ ... }: -{ - hardware = { - raspberry-pi."4" = { - apply-overlays-dtmerge.enable = true; - audio.enable = true; - backlight.enable = false; - bluetooth.enable = true; - dwc2.enable = true; - i2c0.enable = true; - i2c1.enable = true; - leds = { - eth.disable = false; - act.disable = false; - pwr.disable = false; - }; - fkms-3d.enable = true; - xhci.enable = true; - }; - deviceTree.filter = "bcm2711-rpi-4*.dtb"; - }; -} diff --git a/systems/aarch64-linux/pi4/pi4-uefi.nix b/systems/aarch64-linux/pi4/pi4-uefi.nix deleted file mode 100644 index 928a4b9..0000000 --- a/systems/aarch64-linux/pi4/pi4-uefi.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ stdenv, fetchzip }: - -stdenv.mkDerivation rec { - pname = "uefi_rpi4"; - version = "1.38"; - - src = fetchzip { - url = "https://github.com/pftf/RPi4/releases/download/v1.38/RPi4_UEFI_Firmware_v1.38.zip"; - hash = "sha256-9tOr80jcmguFy2bSz+H3TfmG8BkKyBTFoUZkMy8x+0g="; - stripRoot = false; - }; - - installPhase = '' - mkdir -p $out/share/uefi_rpi4 - cp -r * $out/share/uefi_rpi4 - ''; - - meta = { - description = "UEFI Firmware for Raspberry Pi 4"; - homepage = "https://github.com/pftf/RPi4"; - platforms = [ "aarch64-linux" ]; - }; -} diff --git a/systems/aarch64-linux/pi4/pkg.nix b/systems/aarch64-linux/pi4/pkg.nix deleted file mode 100644 index 39d7ce2..0000000 --- a/systems/aarch64-linux/pi4/pkg.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, nix-gitignore, dtc, installShellFiles, logLevel ? 5, ... }: - -let - rawSrc = fetchFromGitHub { - owner = "mjallen18"; - repo = "argononed"; - rev = "master"; # replace with actual commit or tag - sha256 = "sha256-PpFR+6Aa4Pz9EmxOayMSsSTKFzUR6sYIAkGZ8+SUK18="; # fill this in with actual hash - }; - - ignores = '' - /* - !/version - !/makefile - !/configure - !/src - !/OS - /OS/* - !/OS/_common/ - !/OS/nixos/ - ''; - - cleanSrc = nix-gitignore.gitignoreSourcePure ignores rawSrc; -in - -stdenv.mkDerivation { - pname = "argononed"; - version = lib.strings.fileContents "${cleanSrc}/version"; - - src = cleanSrc; - - nativeBuildInputs = [ dtc installShellFiles ]; - - preConfigure = '' - patchShebangs --build ./configure - export TARGET_DISTRO=nixos - ''; - - patches = [ - "${cleanSrc}/OS/nixos/patches/nixos.patch" - "${cleanSrc}/OS/nixos/patches/shutdown.patch" - ]; - - buildFlags = [ "LOGLEVEL=${toString logLevel}" ]; - - installFlags = [ "NIX_DRVOUT=$(out)" ]; - - postInstall = '' - installShellCompletion --bash --name argonone-cli OS/_common/argonone-cli-complete.bash - ''; - - meta = { - description = "A replacement daemon for the Argon One Raspberry Pi case"; - homepage = "https://gitlab.com/DarkElvenAngel/argononed"; - license = lib.licenses.mit; - platforms = [ "aarch64-linux" ]; - }; -} diff --git a/systems/aarch64-linux/pi5/boot.nix b/systems/aarch64-linux/pi5/boot.nix index bb38b79..6de3571 100755 --- a/systems/aarch64-linux/pi5/boot.nix +++ b/systems/aarch64-linux/pi5/boot.nix @@ -4,7 +4,7 @@ let in { boot = { - loader.raspberryPi.firmwarePackage = kernelBundle.raspberrypifw; + loader.raspberry-pi.firmwarePackage = kernelBundle.raspberrypifw; kernelPackages = kernelBundle.linuxPackages_rpi5; }; diff --git a/systems/aarch64-linux/pi5/configuration.nix b/systems/aarch64-linux/pi5/default.nix old mode 100755 new mode 100644 similarity index 95% rename from systems/aarch64-linux/pi5/configuration.nix rename to systems/aarch64-linux/pi5/default.nix index b532427..190c183 --- a/systems/aarch64-linux/pi5/configuration.nix +++ b/systems/aarch64-linux/pi5/default.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, namespace, ... }: let user = "matt"; password = config.sops.secrets."pi5/matt-password".path; @@ -11,14 +11,16 @@ in { imports = [ ./boot.nix - ./impermanence.nix ./networking.nix ./services.nix ./sops.nix - ../../modules/desktop-environments/hyprland - ./hass.nix ]; + ${namespace} = { + hardware.disko.enable = true; + desktop.hyprland.enable = false; + }; + # Enable nix flakes and nix-command tools nix = { settings = { @@ -49,7 +51,7 @@ in }; system.nixos.tags = let - cfg = config.boot.loader.raspberryPi; + cfg = config.boot.loader.raspberry-pi; in [ "raspberry-pi-${cfg.variant}" cfg.bootloader diff --git a/systems/aarch64-linux/pi5/disko.nix b/systems/aarch64-linux/pi5/disko.nix deleted file mode 100644 index 3e631cc..0000000 --- a/systems/aarch64-linux/pi5/disko.nix +++ /dev/null @@ -1,109 +0,0 @@ -{ ... }: -let - rootDisk = "/dev/nvme0n1"; -in -{ - disko.devices.disk.main.imageSize = "15G"; - disko.devices = { - nodev."/" = { - fsType = "tmpfs"; - mountOptions = [ - "mode=755" - "defaults" - "size=2G" - ]; - }; - # root disk setup - disk.main = { - type = "disk"; - device = rootDisk; - content = { - type = "gpt"; - # specify partitions - partitions = { - # /boot/firmware - FIRMWARE = { - priority = 1; - name = "FIRMWARE"; - start = "1M"; - end = "1G"; - type = "0700"; - content = { - type = "filesystem"; - format = "vfat"; - mountpoint = "/boot/firmware"; - mountOptions = [ "umask=0077" ]; - }; - }; - # /boot - ESP = { - priority = 2; - name = "ESP"; - # start = "1G"; - # end = "2G"; - size = "1G"; - type = "EF00"; - content = { - type = "filesystem"; - format = "vfat"; - mountpoint = "/boot"; - mountOptions = [ "umask=0077" ]; - }; - }; - - root = { - name = "btrfs-root"; - size = "100%"; - content = { - type = "btrfs"; - extraArgs = [ "-f" ]; # Override existing partition - # Subvolumes must set a mountpoint in order to be mounted, - # unless their parent is mounted - subvolumes = { - "home" = { - mountOptions = [ "compress=zstd" ]; - mountpoint = "/home"; - }; - "root" = { - mountOptions = [ - "compress=zstd" - "noatime" - ]; - mountpoint = "/root"; - }; - "nix" = { - mountOptions = [ - "compress=zstd" - "noatime" - ]; - mountpoint = "/nix"; - }; - "etc" = { - mountOptions = [ - "compress=zstd" - "noatime" - ]; - mountpoint = "/etc"; - }; - "tmp" = { - mountOptions = [ - "compress=zstd" - "noatime" - ]; - mountpoint = "/tmp"; - }; - "log" = { - mountOptions = [ - "compress=zstd" - "noatime" - ]; - mountpoint = "/var/log"; - }; - }; - }; - }; - }; - }; - }; - }; -} diff --git a/systems/aarch64-linux/pi5/hardware-configuration.nix b/systems/aarch64-linux/pi5/hardware-configuration.nix deleted file mode 100644 index fa9a787..0000000 --- a/systems/aarch64-linux/pi5/hardware-configuration.nix +++ /dev/null @@ -1,74 +0,0 @@ -# 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 + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "none"; - fsType = "tmpfs"; - }; - - fileSystems."/nix" = - { device = "/dev/disk/by-uuid/6f7adf66-5662-48cd-9c50-690469e2b615"; - fsType = "btrfs"; - options = [ "subvol=nix" "compress=zstd" "noatime" ]; - }; - - fileSystems."/etc" = - { device = "/dev/disk/by-uuid/6f7adf66-5662-48cd-9c50-690469e2b615"; - fsType = "btrfs"; - options = [ "subvol=etc" "compress=zstd" "noatime" ]; - }; - - fileSystems."/root" = - { device = "/dev/disk/by-uuid/6f7adf66-5662-48cd-9c50-690469e2b615"; - fsType = "btrfs"; - options = [ "subvol=root" "compress=zstd" "noatime" ]; - }; - - fileSystems."/var/log" = - { device = "/dev/disk/by-uuid/6f7adf66-5662-48cd-9c50-690469e2b615"; - fsType = "btrfs"; - options = [ "subvol=log" "compress=zstd" "noatime" ]; - }; - - fileSystems."/home" = - { device = "/dev/disk/by-uuid/6f7adf66-5662-48cd-9c50-690469e2b615"; - fsType = "btrfs"; - options = [ "subvol=home" "compress=zstd" ]; - }; - - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/7793-909B"; - fsType = "vfat"; - options = [ "fmask=0022" "dmask=0022" ]; - }; - - fileSystems."/boot/firmware" = - { device = "/dev/disk/by-uuid/15B0-5CAA"; - fsType = "vfat"; - options = [ "fmask=0022" "dmask=0022" ]; - }; - - swapDevices = [ ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.end0.useDHCP = lib.mkDefault true; - # networking.interfaces.wlan0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; -} diff --git a/systems/aarch64-linux/pi5/impermanence.nix b/systems/aarch64-linux/pi5/impermanence.nix deleted file mode 100755 index 352c30b..0000000 --- a/systems/aarch64-linux/pi5/impermanence.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ ... }: -{ - # Set up impernance configuration for things like bluetooth - # In this configuration with /etc and /var/log being persistent, only directories outside of that need to be done here. See hardware configuration for all mountpoints. - - environment.persistence."/nix/persist/system" = { - hideMounts = true; - directories = [ - "/var/lib/bluetooth" - "/var/lib/nixos" - "/var/lib/libvirt" - "/var/lib/systemd/coredump" - { - directory = "/var/lib/private"; - mode = "u=rwx,g=,o="; - } - "/etc/NetworkManager/system-connections" - { - directory = "/etc/nix"; - user = "root"; - group = "root"; - mode = "u=rwx,g=rx,o=rx"; - } - ]; -# files = [ -# "/etc/machine-id" -# { file = "/etc/nix/id_rsa"; parentDirectory = { mode = "u=rwx,g=,o="; }; } -# ]; - }; - - security.sudo.extraConfig = '' - # rollback results in sudo lectures after each reboot - Defaults lecture = never - ''; - -} diff --git a/systems/aarch64-linux/pi5/sops.nix b/systems/aarch64-linux/pi5/sops.nix index 16dc0f6..7e007e4 100755 --- a/systems/aarch64-linux/pi5/sops.nix +++ b/systems/aarch64-linux/pi5/sops.nix @@ -4,7 +4,7 @@ let in { sops = { - defaultSopsFile = ../../secrets/pi5-secrets.yaml; + defaultSopsFile = ../../../secrets/pi5-secrets.yaml; # age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; age.keyFile = "/home/matt/.config/sops/age/keys.txt"; @@ -13,7 +13,7 @@ in # ------------------------------ secrets = { "wifi" = { - sopsFile = ../../secrets/secrets.yaml; + sopsFile = ../../../secrets/secrets.yaml; }; "pi5/matt-password" = { neededForUsers = true; @@ -27,14 +27,14 @@ in # ------------------------------ "ssh-keys-public/pi5" = { - sopsFile = ../../secrets/secrets.yaml; + sopsFile = ../../../secrets/secrets.yaml; mode = "0644"; owner = config.users.users."${user}".name; group = config.users.users."${user}".group; restartUnits = [ "sshd.service" ]; }; "ssh-keys-private/pi5" = { - sopsFile = ../../secrets/secrets.yaml; + sopsFile = ../../../secrets/secrets.yaml; mode = "0600"; owner = config.users.users."${user}".name; group = config.users.users."${user}".group;