summaryrefslogtreecommitdiff
path: root/parts/systems/glados/default.nix
blob: de2c1d5503ff25339fd25b37ceafa1809d7abff9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
{lib, ...}: {
  imports = [
    ./boot.nix
    ./hardware-configuration.nix
    ../../modules/nixos/features/tailscale.nix
    ../../modules/nixos/features/virtualisation.nix
  ];

  boot = {
    kernelParams = ["amd_pstate=active"];
    kernel.sysctl = {
      "vm.swappiness" = 100;
      "vm.vfs_cache_pressure" = 500;
      "vm.dirty_background_ratio" = 1;
      "vm.dirty_ratio" = 50;
    };
  };

  desktop.gnome.enable = true;

  features = {
    tailscale.enable = true;
    virtualisation.enable = true;
  };

  hardware = {
    nvidia.enable = true;
    ssd.enable = true;
  };

  networking.hostName = "glados";

  security.tpm2 = {
    enable = true;
    abrmd.enable = true;
  };

  services = {
    flatpak.enable = true;
    fwupd.enable = true;
  };

  systemd = {
    services."prepare-kexec".wantedBy = ["multi-user.target"];
    tmpfiles.rules = let
      nproc = 12;
    in
      builtins.map
      (n: "w /sys/devices/system/cpu/cpu${builtins.toString n}/cpufreq/energy_performance_preference - - - - ${"balance_performance"}")
      (lib.range 0 (nproc - 1));
  };

  powerManagement.cpuFreqGovernor = "powersave";

  zramSwap = {
    enable = true;
    algorithm = "zstd";
    swapDevices = 1;
    memoryPercent = 50;
  };
}