diff --git a/flake.lock b/flake.lock index dad9cf7..5b76b17 100644 --- a/flake.lock +++ b/flake.lock @@ -441,15 +441,14 @@ "inputs": { "godotdev": "godotdev", "mdfmt": "mdfmt", - "nixpkgs": "nixpkgs_6", - "nvim-treesitter-main": "nvim-treesitter-main" + "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1779137653, - "narHash": "sha256-7PGVYffkkv9P/rw7q1P2ks2WHv9OBZacQ7nzb96XoPk=", + "lastModified": 1781304720, + "narHash": "sha256-lITQWpZ37VwZtTTeky7H8hLg0WBL5dOdCDanlAn1Cr8=", "ref": "refs/heads/main", - "rev": "0e141bbcb6ed7c7d9484ca78839af9543dd9abbe", - "revCount": 193, + "rev": "95b1f9d42af0833b441e3253333f5cc98a0e08c1", + "revCount": 195, "type": "git", "url": "https://code.capytal.cc/dot013/nvim" }, @@ -616,11 +615,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1767892417, - "narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=", + "lastModified": 1781074563, + "narHash": "sha256-md8WlXOlfnIeHeOScMTTHFyf2d6iaTwPl2apR5EQ3P4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", + "rev": "9ae611a455b90cf061d8f332b977e387bda8e1ca", "type": "github" }, "original": { @@ -631,22 +630,6 @@ } }, "nixpkgs_7": { - "locked": { - "lastModified": 1767379071, - "narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "fb7944c166a3b630f177938e478f0378e64ce108", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { "locked": { "lastModified": 1780902259, "narHash": "sha256-q8yYEC5f1mFlQO9RGna4LTc9QrcvWunX6FYp83munkQ=", @@ -687,57 +670,18 @@ "type": "github" } }, - "nvim-treesitter": { - "flake": false, + "preservation": { "locked": { - "lastModified": 1767460514, - "narHash": "sha256-LX0rKTZ56Rp0uQfIXZ2JrcWxuCA/t8NJjK05aKiT0Yw=", - "owner": "nvim-treesitter", - "repo": "nvim-treesitter", - "rev": "300b906a9514d5e0ce02911d371445382fe35a31", + "lastModified": 1757436102, + "narHash": "sha256-mMI9IanU+Xw+pVogD2oT0I2kTmvz2Un/Apc5+CwUpEY=", + "owner": "nix-community", + "repo": "preservation", + "rev": "93416f4614ad2dfed5b0dcf12f27e57d27a5ab11", "type": "github" }, "original": { - "owner": "nvim-treesitter", - "ref": "main", - "repo": "nvim-treesitter", - "type": "github" - } - }, - "nvim-treesitter-main": { - "inputs": { - "nixpkgs": "nixpkgs_7", - "nvim-treesitter": "nvim-treesitter", - "nvim-treesitter-textobjects": "nvim-treesitter-textobjects" - }, - "locked": { - "lastModified": 1767660784, - "narHash": "sha256-ej7y4nhiJNFE/HcZSPTEIrU6/WQmkMJo+bVQfgT3abE=", - "owner": "iofq", - "repo": "nvim-treesitter-main", - "rev": "d82b04e1a05f88ed88c6221672ca0636dc8d6ef7", - "type": "github" - }, - "original": { - "owner": "iofq", - "repo": "nvim-treesitter-main", - "type": "github" - } - }, - "nvim-treesitter-textobjects": { - "flake": false, - "locked": { - "lastModified": 1767434017, - "narHash": "sha256-5VeIAW09my+4fqXbzVG7RnLXrjpXAk/g2vd7RbhNws8=", - "owner": "nvim-treesitter", - "repo": "nvim-treesitter-textobjects", - "rev": "28a3494c075ef0f353314f627546537e43c09592", - "type": "github" - }, - "original": { - "owner": "nvim-treesitter", - "ref": "main", - "repo": "nvim-treesitter-textobjects", + "owner": "nix-community", + "repo": "preservation", "type": "github" } }, @@ -753,8 +697,9 @@ "neovim": "neovim", "nix-flatpak": "nix-flatpak", "nix-minecraft": "nix-minecraft_2", - "nixpkgs": "nixpkgs_8", + "nixpkgs": "nixpkgs_7", "nixpkgs-unstable": "nixpkgs-unstable", + "preservation": "preservation", "sops-nix": "sops-nix", "stylix": "stylix", "zen-browser": "zen-browser" diff --git a/flake.nix b/flake.nix index b9d1334..533eaf2 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,8 @@ inputs.home-manager.follows = ""; }; + preservation.url = "github:nix-community/preservation"; + stylix = { url = "github:danth/stylix/release-26.05"; inputs.nixpkgs.follows = "nixpkgs"; @@ -281,9 +283,10 @@ yazi = pkgs.callPackage ./packages/devkit/yazi {}; zellij = pkgs.callPackage ./packages/devkit/zellij {}; zsh = pkgs.callPackage ./packages/devkit/zsh {}; - neovim = self.packages.${pkgs.system}.neovim; + neovim = self.packages.${pkgs.stdenv.hostPlatform.system}.neovim; }; neovim = inputs.neovim.packages.${pkgs.stdenv.hostPlatform.system}.default; + infiltrator = self.nixosConfigurations."infiltrator".config.system.build.isoImage; }); devShells = forAllSystems ({ diff --git a/hosts/spacestation/configuration.nix b/hosts/spacestation/configuration.nix index 9a15000..7b5adab 100644 --- a/hosts/spacestation/configuration.nix +++ b/hosts/spacestation/configuration.nix @@ -6,7 +6,8 @@ }: { imports = [ ../../secrets.nix - ./impermanence.nix + # ./impermanence.nix + ./preservation.nix inputs.disko.nixosModules.disko ./disko.nix ./hardware-configuration.nix diff --git a/hosts/spacestation/preservation.nix b/hosts/spacestation/preservation.nix new file mode 100644 index 0000000..bd3288b --- /dev/null +++ b/hosts/spacestation/preservation.nix @@ -0,0 +1,56 @@ +{inputs, ...}: { + imports = [ + inputs.preservation.nixosModules.preservation + ]; + + preservation.enable = true; + preservation.preserveAt."/persist" = { + directories = [ + "/etc/nixos" + "/etc/NetworkManager/system-connections" + "/etc/secureboot" + "/var/db/sudo" + "/var/keys" + "/var/log" + "/var/lib/bluetooth" + "/var/lib/power-profiles-daemon" + "/var/lib/systemd/coredump" + "/var/lib/systemd/timers" + "/var/lib/tailscale" + { + directory = "/var/lib/colord"; + user = "colord"; + group = "colord"; + mode = "u=rwx,g=rx,o="; + } + { + directory = "/var/lib/nixos"; + inInitrd = true; + } + ]; + files = [ + { + file = "/etc/machine-id"; + inInitrd = true; + } + { + file = "/etc/ssh/ssh_host_rsa_key"; + how = "symlink"; + configureParent = true; + } + { + file = "/etc/ssh/ssh_host_ed25519_key"; + how = "symlink"; + configureParent = true; + } + { + file = "/var/lib/systemd/random-seed"; + how = "symlink"; + inInitrd = true; + configureParent = true; + } + ]; + }; + + systemd.suppressedSystemUnits = ["systemd-machine-id-commit.service"]; +}