eff6860aa2
The old configuration is still available in the legacy branch of this repository. It contains the mostly server oriented configuration while this new configuration is aimed at desktop usage.
91 lines
3 KiB
Nix
91 lines
3 KiB
Nix
# 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 = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||
boot.initrd.kernelModules = [ ];
|
||
boot.kernelModules = [ "kvm-amd" ];
|
||
boot.extraModulePackages = [ ];
|
||
boot.initrd.postDeviceCommands = lib.mkAfter ''
|
||
mkdir /btrfs_tmp
|
||
mount /dev/nvme0n1p2 /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."/" =
|
||
{ device = "/dev/disk/by-uuid/8e515c16-703a-43ea-8653-ec0f739ba532";
|
||
fsType = "btrfs";
|
||
options = [ "subvol=root" "compress=zstd" "noatime" ];
|
||
};
|
||
|
||
fileSystems."/home" =
|
||
{ device = "/dev/disk/by-uuid/8e515c16-703a-43ea-8653-ec0f739ba532";
|
||
fsType = "btrfs";
|
||
options = [ "subvol=home" "compress=zstd" "noatime" ];
|
||
};
|
||
|
||
fileSystems."/nix" =
|
||
{ device = "/dev/disk/by-uuid/8e515c16-703a-43ea-8653-ec0f739ba532";
|
||
fsType = "btrfs";
|
||
options = [ "subvol=nix" "compress=zstd" "noatime" ];
|
||
};
|
||
|
||
fileSystems."/var/log" =
|
||
{ device = "/dev/disk/by-uuid/8e515c16-703a-43ea-8653-ec0f739ba532";
|
||
fsType = "btrfs";
|
||
options = [ "subvol=log" "compress=zstd" "noatime" ];
|
||
neededForBoot = true;
|
||
};
|
||
|
||
fileSystems."/boot" =
|
||
{ device = "/dev/disk/by-uuid/A925-0013";
|
||
fsType = "vfat";
|
||
};
|
||
|
||
fileSystems."/media/vault" =
|
||
{ device = "/dev/disk/by-uuid/048d175b-0e3e-4ec7-955b-3d9a45f9f237";
|
||
fsType = "xfs";
|
||
};
|
||
|
||
fileSystems."/media/attic" =
|
||
{ device = "/dev/disk/by-uuid/ec32ce36-9f53-4f44-ac8f-2c9163f0b3d7";
|
||
fsType = "xfs";
|
||
};
|
||
|
||
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.<interface>.useDHCP`.
|
||
networking.useDHCP = lib.mkDefault true;
|
||
# networking.interfaces.enp34s0.useDHCP = lib.mkDefault true;
|
||
|
||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||
}
|