diff options
| author | Raghuram Subramani <raghus2247@gmail.com> | 2024-10-09 18:19:57 +0530 | 
|---|---|---|
| committer | Raghuram Subramani <raghus2247@gmail.com> | 2024-10-09 18:19:57 +0530 | 
| commit | f4301e2194ede90f6fe3ab70be5e598a6eb5f2e4 (patch) | |
| tree | 29490e04e9400ca16be6ee2d16bb4c05a65d7feb /machines | |
| parent | 55bc8a949a13e0909d05ee1ecaeae0ab3035f37b (diff) | |
(impermanence): Initial try.
Diffstat (limited to 'machines')
| -rw-r--r-- | machines/x/configuration.nix | 59 | ||||
| -rw-r--r-- | machines/x/hardware-configuration.nix | 13 | 
2 files changed, 54 insertions, 18 deletions
| diff --git a/machines/x/configuration.nix b/machines/x/configuration.nix index ed69181..82db98f 100644 --- a/machines/x/configuration.nix +++ b/machines/x/configuration.nix @@ -24,11 +24,35 @@      "remapcapslock.nix"      "wm_utils.nix" -    # "qtile"    ]); -  boot.loader.systemd-boot.enable = true; -  boot.loader.efi.canTouchEfiVariables = true; +  boot.loader.grub.enable = true; +  boot.loader.grub.efiSupport = true; + +  boot.initrd.postDeviceCommands = lib.mkAfter '' +    mkdir /btrfs_tmp +    mount /dev/root_vg/root /btrfs_tmp +    if [[ -e /btrfs_tmp/root ]]; then +        mkdir -p /btrfs_tmp/old_roots +        timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S") +        mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp" +    fi + +    delete_subvolume_recursively() { +        IFS=$'\n' +        for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do +            delete_subvolume_recursively "/btrfs_tmp/$i" +        done +        btrfs subvolume delete "$1" +    } + +    for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do +        delete_subvolume_recursively "$i" +    done + +    btrfs subvolume create /btrfs_tmp/root +    umount /btrfs_tmp +  '';    boot.extraModprobeConfig = "options kvm_amd nested=1"; @@ -39,12 +63,37 @@    networking.hostName = "x"; -  home-manager.users.compromyse = import ./home.nix; -    environment.variables = {      XCURSOR_SIZE = "16";    }; +  fileSystems."/persist".neededForBoot = true; +  environment.persistence."/persist/system" = { +    hideMounts = true; +    directories = [ +      "/etc/nixos" +      "/var/log" +      "/var/lib/bluetooth" +      "/var/lib/nixos" +      "/var/lib/systemd/coredump" +      "/etc/NetworkManager/system-connections" +      { directory = "/var/lib/colord"; user = "colord"; group = "colord"; mode = "u=rwx,g=rx,o="; } +    ]; +    files = [ +      "/etc/machine-id" +      "/etc/shadow" +      { file = "/var/keys/secret_file"; parentDirectory = { mode = "u=rwx,g=,o="; }; } +    ]; +  }; + +  programs.fuse.userAllowOther = true; +  home-manager = { +    extraSpecialArgs = {inherit inputs;}; +    users = { +      "compromyse" = import ./home.nix; +    }; +  }; +    networking.extraHosts =    ''      127.0.0.1 download.labsmartlis.local diff --git a/machines/x/hardware-configuration.nix b/machines/x/hardware-configuration.nix index 964bbb2..7d34b69 100644 --- a/machines/x/hardware-configuration.nix +++ b/machines/x/hardware-configuration.nix @@ -13,19 +13,6 @@    boot.kernelModules = [ "kvm-amd" ];    boot.extraModulePackages = [ ]; -  fileSystems."/" = -    { device = "/dev/disk/by-uuid/fb695c14-0255-4deb-a816-e74fa8c42c4b"; -      fsType = "ext4"; -    }; - -  fileSystems."/boot" = -    { device = "/dev/disk/by-uuid/19BE-DB3C"; -      fsType = "vfat"; -      options = [ "fmask=0077" "dmask=0077" ]; -    }; - -  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 | 
