{ lib, pkgs, ... }: with lib; { nixfiles.modules = { games = { lutris.enable = true; steam.enable = true; }; wireguard.client.enable = true; syncthing.enable = true; beets.enable = true; bluetooth.enable = true; libvirtd.enable = true; mpd.enable = true; qutebrowser.enable = true; throttled.enable = true; }; networking = { interfaces = { eth0.useDHCP = true; wlan0.useDHCP = true; }; wireless = { enable = false; iwd.enable = true; userControlled.enable = true; allowAuxiliaryImperativeNetworks = true; }; }; hardware.trackpoint = { enable = true; speed = 500; sensitivity = 250; }; powerManagement = let modprobe = "${pkgs.kmod}/bin/modprobe"; in { enable = true; # This fixes an issue with not being able to suspend or wake up from suspend # due to a kernel bug[1]. # # [1]: https://bbs.archlinux.org/viewtopic.php?id=270964 # [1]: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/522998 # [1]: https://bugs.launchpad.net/ubuntu/+source/pm-utils/+bug/562484/comments/3 # [1]: https://gist.github.com/ioggstream/8f380d398aef989ac455b93b92d42048 powerDownCommands = "${modprobe} -r xhci_pci"; powerUpCommands = "${modprobe} xhci_pci"; }; services.thinkfan = { enable = true; settings = { sensors = [ { hwmon = "/sys/class/hwmon"; name = "coretemp"; indices = [1]; } ]; fans = [{tpacpi = "/proc/acpi/ibm/fan";}]; levels = [ ["level auto" 0 50] ["level disengaged" 50 32767] ]; }; }; boot = { # Speeding up Wi-Fi a bit. extraModprobeConfig = '' options iwlwifi 11n_disable=1 ''; initrd = { availableKernelModules = ["ahci" "nvme" "sd_mod" "usb_storage" "usbhid" "xhci_pci"]; luks.devices."root" = { device = "/dev/disk/by-uuid/c1b46f24-eec0-47d2-a142-75ddfd7bb218"; allowDiscards = true; bypassWorkqueues = true; }; }; loader = { efi.canTouchEfiVariables = true; systemd-boot = { enable = true; configurationLimit = 10; }; }; }; fileSystems = { "/boot" = { device = "/dev/disk/by-uuid/1083-C8A0"; fsType = "vfat"; }; "/" = { device = "/dev/disk/by-uuid/bb8b09dc-cc67-47e5-8280-532b17a9e62a"; fsType = "xfs"; options = ["noatime"]; }; }; # NOTE This will make hibernation extremely hard if on an encrypted partition. # This also could not work on ZFS or Btrfs. swapDevices = [ { device = "/swapfile"; size = 8 * 1024; } ]; zramSwap = { enable = true; memoryPercent = 25; }; }