summaryrefslogtreecommitdiff
path: root/systems/glados/default.nix
blob: e5a275ad4c43e1e70c9d05a6674938fe99bd03fe (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
62
63
64
65
66
67
68
69
{
  lib,
  self,
  ...
}: {
  imports = [
    ./boot.nix
    ./hardware-configuration.nix
    ../../modules/nixos/features/tailscale.nix
    ../../modules/nixos/features/virtualisation.nix
    self.nixosModules.desktop
    self.nixosModules.gnome
  ];

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

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

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

  home-manager.users.seth = {
    desktop.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;
  };
}