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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134{ config, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
];
# Prioritize performance over efficiency
powerManagement.cpuFreqGovernor = "performance";
ia = {
enable = true;
service = true;
};
games = true;
server-network = true;
git.enable = true;
gui.enable = true;
sshKeys = true;
audio = true;
bluetooth = true;
nvim = {
enable = true;
neovide = true;
complete = true;
};
terminal = {
name = "alacritty";
command = [
"alacritty"
"-e"
];
};
shell = {
name = "nushell";
command = [ "nu" ];
privSession = [
"nu"
"--no-history"
];
};
user = {
enableHM = true;
browser = "firefox";
groups = [
"wheel"
"video"
"audio"
"docker"
"libvirtd"
"networkmanager"
"adbusers"
"input"
"dialout"
];
};
services.xserver.videoDrivers = pkgs.lib.optionals (
pkgs.stdenv.buildPlatform.isLinux && config.gui.enable
) [ "nvidia" ];
services.displayManager.gdm.wayland = true;
# Ethernet
boot.extraModulePackages = with config.boot.kernelPackages; [ r8125 ];
boot.blacklistedKernelModules = [ "r8169" ];
environment = {
systemPackages = [ pkgs.libva-utils ];
variables = {
NVD_BACKEND = "direct";
LIBVA_DRIVER_NAME = "nvidia";
};
};
boot = {
initrd.kernelModules = [ "nvidia" ];
kernelParams = [
"rcutree.gp_init_delay=1"
"mt7925e.disable_aspm=1"
];
};
hardware = {
nvidia-container-toolkit.enable = true;
nvidia = {
modesetting.enable = true;
nvidiaPersistenced = false;
powerManagement = {
enable = true;
finegrained = false;
};
forceFullCompositionPipeline = true;
open = false;
package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
version = "575.64.05";
sha256_64bit = "sha256-hfK1D5EiYcGRegss9+H5dDr/0Aj9wPIJ9NVWP3dNUC0=";
sha256_aarch64 = "sha256-fYji1Y2vJc5t6dkqbh4AC/fuAswiIvlj2cXX4NmBunw=";
openSha256 = pkgs.lib.fakeSha256;
settingsSha256 = "sha256-o2zUnYFUQjHOcCrB0w/4L6xI1hVUXLAWgG2Y26BowBE=";
persistencedSha256 = "sha256-2g5z7Pu8u2EiAh5givP5Q1Y4zk4Cbb06W37rf768NFU=";
};
};
};
wm.actives = [
"niri"
];
wm.screens =
let
height = 1080;
in
[
{
name = "DP-4";
rotation = "left";
}
{
name = "DP-3";
position.x = height;
}
{
name = "DP-5";
position = {
x = height;
y = height;
};
}
{
name = "HDMI-A-2";
position.x = 3000;
rotation = "right";
}
];
}