summaryrefslogtreecommitdiff
path: root/modules/hosts/vecna/vecna.nix
blob: eb4148096231a683a6b2a6454d6d3040061fb612 (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
{
  inputs,
  self,
  ...
}: {
  imports = [
    inputs.home-manager.flakeModules.home-manager
  ];

  flake.nixosConfigurations.vecna = inputs.nixpkgs.lib.nixosSystem {
    modules = [
      self.nixosModules.vecna
      self.nixosModules.vecnaHardware

      self.nixosModules.createHost
      self.nixosModules.hostOptions

      self.nixosModules.niri
      self.nixosModules.desktop
      self.nixosModules.nasClient
    ];
  };

  flake.nixosModules.vecna = {pkgs, ...}: {
    hostOptions = {
      host.name = "vecna";
      user.name = "jck";
      user.email = "jckrinsky@gmail.com";
    };

    boot.kernelParams = ["quiet"];

    hardware.graphics = {
      enable = true;
      enable32Bit = true;
      extraPackages = with pkgs; [
        rocmPackages.clr.icd
        libva
      ];
    };

    boot.initrd.kernelModules = ["amdgpu"];
    hardware.amdgpu.overdrive.enable = true;
    environment.systemPackages = with pkgs; [lact];
    systemd.packages = with pkgs; [lact];
    systemd.services.lactd.wantedBy = ["multi-user.target"];
    services.xserver.videoDrivers = ["amdgpu"];

    hardware.cpu.amd.updateMicrocode = true;
    zramSwap = {
      enable = true;
      priority = 100;
      algorithm = "lz4";
      memoryPercent = 32;
    };

    networking.nameservers = ["1.1.1.1" "9.9.9.9"];

    time.timeZone = "US/Central";
  };
}