diff --git a/flake.lock b/flake.lock index 5debf7a..b7ad26e 100644 --- a/flake.lock +++ b/flake.lock @@ -20,6 +20,21 @@ "type": "github" } }, + "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" + } + }, "nixpkgs": { "locked": { "lastModified": 1761114652, @@ -39,6 +54,7 @@ "root": { "inputs": { "home-manager": "home-manager", + "impermanence": "impermanence", "nixpkgs": "nixpkgs" } } diff --git a/flake.nix b/flake.nix index 146731a..434043c 100644 --- a/flake.nix +++ b/flake.nix @@ -5,10 +5,11 @@ nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable/"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; + impermanence.url = "github:nix-community/impermanence"; }; outputs = - { self, nixpkgs, home-manager, ... } @ inputs: + { self, nixpkgs, impermanence, home-manager, ... } @ inputs: let system = "x86_64-linux"; username = "xory"; @@ -19,6 +20,7 @@ modules = [ ./hosts/${hostName}/configuration.nix ./hosts/${hostName}/hardware-configuration.nix + impermanence.nixosModules.impermanence home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; diff --git a/hosts/voidspear/configuration.nix b/hosts/voidspear/configuration.nix index 9c8432a..a0bdc1b 100644 --- a/hosts/voidspear/configuration.nix +++ b/hosts/voidspear/configuration.nix @@ -40,6 +40,37 @@ LC_TIME = "en_GB.UTF-8"; }; + # Impermanence + + fileSystems."/" = { + device = "none"; + fsType = "tmpfs"; + neededForBoot = true; + }; + + fileSystems."/persist" = { + device = "/dev/disk/by-uuid/1578f380-e588-419b-ace0-f63e6a48ca39"; + fsType = "ext4"; + neededForBoot = true; + }; + + environment.persistence."/persist" = { + hideMounts = true; + directories = [ + "/nix" + "/home" + "/var/log" + "/var/lib/bluetooth" + "/etc/NetworkManager/system-connections" + "/var/lib/nixos" + ]; + }; + + environment.etc."machine-id" = { + source = "/persist/etc/machine-id"; + mode = "0444"; + }; + # Define a user account. Don't forget to set a password with ‘passwd’. programs.zsh.enable = true; # home-manager already installs this but nixos complains w/o it users.users.xory = { diff --git a/hosts/voidspear/hardware-configuration.nix b/hosts/voidspear/hardware-configuration.nix index 0d9f4c4..4b6e568 100644 --- a/hosts/voidspear/hardware-configuration.nix +++ b/hosts/voidspear/hardware-configuration.nix @@ -13,10 +13,10 @@ boot.kernelModules = [ "kvm-amd" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "/dev/disk/by-uuid/1578f380-e588-419b-ace0-f63e6a48ca39"; - fsType = "ext4"; - }; + # fileSystems."/" = + # { device = "/dev/disk/by-uuid/1578f380-e588-419b-ace0-f63e6a48ca39"; + # fsType = "ext4"; + # }; fileSystems."/boot" = { device = "/dev/disk/by-uuid/4CB1-40B6";