2024-09-22 15:01:29 +05:30
|
|
|
{
|
|
|
|
lib,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}: {
|
2024-09-02 18:31:19 +05:30
|
|
|
boot = {
|
|
|
|
initrd = {
|
|
|
|
availableKernelModules = [
|
|
|
|
"xhci_pci"
|
2024-09-02 20:51:39 +05:30
|
|
|
"thunderbolt"
|
2024-09-02 18:31:19 +05:30
|
|
|
"nvme"
|
|
|
|
"usb_storage"
|
|
|
|
"sd_mod"
|
|
|
|
];
|
2024-09-02 20:51:39 +05:30
|
|
|
luks.devices."cryptroot".device = "/dev/disk/by-uuid/9de352ea-128f-4d56-a720-36d81dfd9b92";
|
2024-09-22 14:58:24 +05:30
|
|
|
luks.devices."cryptroot".bypassWorkqueues = true;
|
2024-09-02 18:31:19 +05:30
|
|
|
};
|
|
|
|
kernelModules = [
|
|
|
|
"kvm-intel"
|
2024-09-22 14:58:24 +05:30
|
|
|
"iwlwifi"
|
2024-09-02 20:51:39 +05:30
|
|
|
"xe"
|
2024-09-02 18:31:19 +05:30
|
|
|
];
|
2024-09-23 11:48:19 +05:30
|
|
|
kernelPackages = lib.mkForce pkgs.linuxPackages_testing;
|
2024-09-02 20:51:39 +05:30
|
|
|
kernelParams = [
|
2024-09-22 14:58:24 +05:30
|
|
|
# NixOS produces many wakeups per second, which is bad for battery life.
|
|
|
|
# This disables the timer tick on the last 7 cores.
|
|
|
|
"nohz_full=14-21"
|
2024-09-02 20:51:39 +05:30
|
|
|
"i915.force_probe=!7d55"
|
2024-09-22 14:58:24 +05:30
|
|
|
"xe.force_probe=7d55"
|
2024-09-23 11:48:19 +05:30
|
|
|
"initcall_blacklist=simpledrm_platform_driver_init"
|
|
|
|
# This solves an issue with resume after suspend where the SSD goes into
|
|
|
|
# a read-only state. We trust some random, obscure Arch wiki article over
|
|
|
|
# actually trying to figure out why it might be so.
|
|
|
|
# ref: https://wiki.archlinux.org/title/Solid_state_drive/NVMe#Controller_failure_due_to_broken_suspend_support
|
2024-09-29 23:06:15 +05:30
|
|
|
# "iommu=soft"
|
2024-09-02 20:51:39 +05:30
|
|
|
# "resume_offset=2465529"
|
2024-09-02 18:31:19 +05:30
|
|
|
];
|
2024-09-02 20:51:39 +05:30
|
|
|
# resumeDevice = "/dev/disk/by-uuid/870fde90-a91a-4554-8b1c-d5702c789f4d";
|
2024-09-02 18:31:19 +05:30
|
|
|
};
|
|
|
|
|
|
|
|
fileSystems = {
|
|
|
|
"/" = {
|
2024-09-02 20:51:39 +05:30
|
|
|
device = "/dev/disk/by-uuid/870fde90-a91a-4554-8b1c-d5702c789f4d";
|
2024-09-02 18:31:19 +05:30
|
|
|
fsType = "btrfs";
|
|
|
|
options = [
|
|
|
|
"defaults"
|
2024-09-02 20:51:39 +05:30
|
|
|
"autodefrag"
|
2024-09-02 18:31:19 +05:30
|
|
|
"compress-force=zstd"
|
|
|
|
"noatime"
|
|
|
|
"ssd"
|
|
|
|
"subvol=@"
|
|
|
|
];
|
|
|
|
neededForBoot = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
"/home" = {
|
2024-09-02 20:51:39 +05:30
|
|
|
device = "/dev/disk/by-uuid/870fde90-a91a-4554-8b1c-d5702c789f4d";
|
2024-09-02 18:31:19 +05:30
|
|
|
fsType = "btrfs";
|
|
|
|
options = [
|
|
|
|
"defaults"
|
2024-09-02 20:51:39 +05:30
|
|
|
"autodefrag"
|
2024-09-02 18:31:19 +05:30
|
|
|
"compress-force=zstd"
|
|
|
|
"noatime"
|
|
|
|
"ssd"
|
|
|
|
"subvol=@home"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
"/.snapshots" = {
|
2024-09-02 20:51:39 +05:30
|
|
|
device = "/dev/disk/by-uuid/870fde90-a91a-4554-8b1c-d5702c789f4d";
|
2024-09-02 18:31:19 +05:30
|
|
|
fsType = "btrfs";
|
|
|
|
options = [
|
|
|
|
"defaults"
|
|
|
|
"compress-force=zstd"
|
|
|
|
"noatime"
|
|
|
|
"ssd"
|
|
|
|
"subvol=@snapshots"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
"/var/log" = {
|
2024-09-02 20:51:39 +05:30
|
|
|
device = "/dev/disk/by-uuid/870fde90-a91a-4554-8b1c-d5702c789f4d";
|
2024-09-02 18:31:19 +05:30
|
|
|
fsType = "btrfs";
|
|
|
|
options = [
|
|
|
|
"defaults"
|
2024-09-02 20:51:39 +05:30
|
|
|
"autodefrag"
|
2024-09-02 18:31:19 +05:30
|
|
|
"compress-force=zstd"
|
|
|
|
"noatime"
|
|
|
|
"ssd"
|
|
|
|
"subvol=@log"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
"/var/cache" = {
|
2024-09-02 20:51:39 +05:30
|
|
|
device = "/dev/disk/by-uuid/870fde90-a91a-4554-8b1c-d5702c789f4d";
|
2024-09-02 18:31:19 +05:30
|
|
|
fsType = "btrfs";
|
|
|
|
options = [
|
|
|
|
"defaults"
|
2024-09-02 20:51:39 +05:30
|
|
|
"autodefrag"
|
2024-09-02 18:31:19 +05:30
|
|
|
"compress-force=zstd"
|
|
|
|
"noatime"
|
|
|
|
"ssd"
|
|
|
|
"subvol=@cache"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
"/etc/nixos" = {
|
2024-09-02 20:51:39 +05:30
|
|
|
device = "/dev/disk/by-uuid/870fde90-a91a-4554-8b1c-d5702c789f4d";
|
2024-09-02 18:31:19 +05:30
|
|
|
fsType = "btrfs";
|
|
|
|
options = [
|
|
|
|
"defaults"
|
|
|
|
"compress-force=zstd"
|
|
|
|
"noatime"
|
|
|
|
"ssd"
|
|
|
|
"subvol=@nix-config"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
"/nix" = {
|
2024-09-02 20:51:39 +05:30
|
|
|
device = "/dev/disk/by-uuid/870fde90-a91a-4554-8b1c-d5702c789f4d";
|
2024-09-02 18:31:19 +05:30
|
|
|
fsType = "btrfs";
|
|
|
|
options = [
|
|
|
|
"defaults"
|
2024-09-02 20:51:39 +05:30
|
|
|
"autodefrag"
|
2024-09-02 18:31:19 +05:30
|
|
|
"compress-force=zstd"
|
|
|
|
"noatime"
|
|
|
|
"ssd"
|
|
|
|
"subvol=@nix-store"
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
2024-09-02 20:51:39 +05:30
|
|
|
# TODO: setup swap
|
2024-09-02 18:31:19 +05:30
|
|
|
# ref: https://sawyershepherd.org/post/hibernating-to-an-encrypted-swapfile-on-btrfs-with-nixos/
|
2024-09-02 20:51:39 +05:30
|
|
|
# "/swap" = {
|
|
|
|
# device = "/dev/disk/by-uuid/870fde90-a91a-4554-8b1c-d5702c789f4d";
|
|
|
|
# fsType = "btrfs";
|
|
|
|
# options = [
|
|
|
|
# "subvol=@swap"
|
|
|
|
# "noatime"
|
|
|
|
# ];
|
|
|
|
# };
|
2024-09-02 18:31:19 +05:30
|
|
|
|
|
|
|
"/boot" = {
|
2024-09-02 20:51:39 +05:30
|
|
|
device = "/dev/disk/by-uuid/7FBB-9E80";
|
2024-09-02 18:31:19 +05:30
|
|
|
fsType = "vfat";
|
2024-09-02 20:51:39 +05:30
|
|
|
options = ["fmask=0022" "dmask=0022"];
|
2024-09-02 18:31:19 +05:30
|
|
|
};
|
|
|
|
};
|
2024-09-02 20:51:39 +05:30
|
|
|
swapDevices = [];
|
2024-09-02 18:31:19 +05:30
|
|
|
}
|