diff --git a/flake.nix b/flake.nix index dad3a4f..f71dc4e 100644 --- a/flake.nix +++ b/flake.nix @@ -33,7 +33,7 @@ stylix, ... }: let - laptop = import ./machines/laptop.nix; + laptop = import ./machines/laptop/machine.nix; in { nixosConfigurations.${laptop.hostname} = nixpkgs.lib.nixosSystem { system = laptop.system; @@ -66,7 +66,7 @@ impermanence.nixosModules.impermanence noshell.nixosModules.default ./configuration.nix - ./hardware-configuration.nix + laptop.hardware-configuration ]; }; }; diff --git a/hardware-configuration.nix b/hardware-configuration.nix deleted file mode 100644 index 2c0a93f..0000000 --- a/hardware-configuration.nix +++ /dev/null @@ -1,41 +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 = ["xhci_pci" "nvme" "sdhci_pci"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-intel"]; - boot.extraModulePackages = []; - - fileSystems."/" = { - device = "none"; - fsType = "tmpfs"; - options = ["defaults" "size=25%" "mode=755"]; - }; - - fileSystems."/nix" = { - device = "/dev/disk/by-uuid/0e586651-36f4-42b0-99b3-3f0704a894d6"; - fsType = "btrfs"; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/F425-55BA"; - fsType = "vfat"; - options = ["fmask=0022" "dmask=0022"]; - }; - - swapDevices = []; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/machines/laptop/hardware-configuration.nix b/machines/laptop/hardware-configuration.nix new file mode 100644 index 0000000..bde1c83 --- /dev/null +++ b/machines/laptop/hardware-configuration.nix @@ -0,0 +1,69 @@ +# 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 = ["xhci_pci" "nvme" "sdhci_pci"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; + + fileSystems."/" = { + #device = "none"; + #fsType = "tmpfs"; + #options = ["defaults" "size=60%" "mode=755"]; + device = "/dev/disk/by-uuid/16c93673-4f0e-4010-a7f4-7ccffb20edb7"; + fsType = "btrfs"; + options = ["subvol=root"]; + }; + + boot.initrd.postResumeCommands = lib.mkAfter '' + mkdir /btrfs_tmp + mount ${config.fileSystems."/".device} /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 + ''; + + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/0e586651-36f4-42b0-99b3-3f0704a894d6"; + fsType = "btrfs"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/F425-55BA"; + fsType = "vfat"; + options = ["fmask=0022" "dmask=0022"]; + }; + + swapDevices = []; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/machines/laptop.nix b/machines/laptop/machine.nix similarity index 59% rename from machines/laptop.nix rename to machines/laptop/machine.nix index c70deb9..d6b1e01 100644 --- a/machines/laptop.nix +++ b/machines/laptop/machine.nix @@ -2,4 +2,5 @@ hostname = "lenovo"; usernames = ["andromeda"]; system = "x86_64-linux"; + hardware-configuration = ./hardware-configuration.nix; } diff --git a/users/andromeda/home.nix b/users/andromeda/home.nix index 526d677..3812842 100644 --- a/users/andromeda/home.nix +++ b/users/andromeda/home.nix @@ -111,7 +111,7 @@ in { pkgs.tree pkgs.zoxide ]; - file.${background-path}.source = pkgs.nixos-artwork.wallpapers.gear; + file.${background-path}.source = config.stylix.image; }; programs = { alacritty.enable = true; diff --git a/users/andromeda/stylix.nix b/users/andromeda/stylix.nix index 2e7af13..7f56575 100644 --- a/users/andromeda/stylix.nix +++ b/users/andromeda/stylix.nix @@ -10,6 +10,7 @@ # silk-light is light theme base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-material-dark-hard.yaml"; polarity = "dark"; + image = "${pkgs.nixos-artwork.wallpapers.gear}/share/backgrounds/nixos/nix-wallpaper-gear.png"; fonts = { monospace = { package = pkgs.miracode;