diff options
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/core/core.nix | 1 | ||||
| -rw-r--r-- | sys/core/drivers.nix | 2 | ||||
| -rw-r--r-- | sys/core/power.nix | 18 | ||||
| -rw-r--r-- | sys/core/storage.nix | 29 |
4 files changed, 48 insertions, 2 deletions
diff --git a/sys/core/core.nix b/sys/core/core.nix index ba38eb9..428d7ea 100644 --- a/sys/core/core.nix +++ b/sys/core/core.nix @@ -13,6 +13,7 @@ in ./localization.nix ./memory.nix ./networking.nix + ./power.nix ./security.nix ./storage.nix ./users.nix diff --git a/sys/core/drivers.nix b/sys/core/drivers.nix index a01bb54..c769786 100644 --- a/sys/core/drivers.nix +++ b/sys/core/drivers.nix @@ -16,6 +16,7 @@ in services.smartd.enable = true; hardware.sensor.iio.enable = true; hardware.enableAllFirmware = true; + hardware.cpu.amd.updateMicrocode = true; hardware.graphics = { enable = true; enable32Bit = true; @@ -24,7 +25,6 @@ in (lib.mkIf cfg.amd.enable { services.xserver.videoDrivers = [ "amdgpu" ]; - hardware.cpu.amd.updateMicrocode = true; hardware.amdgpu = { initrd.enable = true; overdrive.enable = true; diff --git a/sys/core/power.nix b/sys/core/power.nix new file mode 100644 index 0000000..f67665e --- /dev/null +++ b/sys/core/power.nix @@ -0,0 +1,18 @@ +{ config, lib, ... }: +let + cfg = config.sys.core.power; +in +{ + options.sys.core.power.enable = lib.mkEnableOption "enables AMD-optimized power management"; + config = lib.mkIf cfg.enable { + services.power-profiles-daemon.enable = true; + + boot.kernelParams = [ + "amd_pstate=active" + "nvme_core.default_ps_max_latency_us=0" + ]; + + powerManagement.powertop.enable = true; + services.thermald.enable = true; + }; +} diff --git a/sys/core/storage.nix b/sys/core/storage.nix index 6e2dab8..22abcd7 100644 --- a/sys/core/storage.nix +++ b/sys/core/storage.nix @@ -3,8 +3,35 @@ let cfg = config.sys.core.storage; in { - options.sys.core.storage.enable = lib.mkEnableOption "enables storage management"; + options.sys.core.storage = { + enable = lib.mkEnableOption "enables storage management"; + + keepDays = lib.mkOption { + type = lib.types.int; + default = 14; + description = "Number of days to keep old Nix generations before GC."; + }; + }; config = lib.mkIf cfg.enable { nix.settings.auto-optimise-store = true; + + nix.gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than ${toString cfg.keepDays}d"; + }; + + services.fstrim.enable = true; + + services.btrfs.autoScrub = { + enable = true; + interval = "monthly"; + fileSystems = [ "/" ]; + }; + + boot.tmp = { + useTmpfs = true; + tmpfsSize = "50%"; + }; }; } |
