blob: 8889120a8fcfd63d3132295e85bfc1801f5b0858 (
plain) (
blame)
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
|
{
config,
lib,
pkgs,
this,
...
}:
with lib; {
nixfiles.modules = {
ark.enable = true;
wireguard.client.enable = true;
syncthing.enable = true;
openssh.server.enable = true;
games = {
lutris.enable = true;
minecraft.client.enable = true;
steam.enable = true;
};
android.enable = true;
bluetooth.enable = true;
discord.enable = true;
libvirtd.enable = true;
qutebrowser.enable = true;
mpd.enable = true;
};
hm = {
home.packages = with pkgs; [obs-studio];
programs = {
# NOTE This produces very poor performance even though RX 6750 XT should
# handle VA-API hardware decoding for all major formats (including AV1) just
# fine.
firefox.profiles.default.settings."media.ffmpeg.vaapi.enabled" = false;
# Mostly just placebo. :^)
mpv.config = {
hwdec = "vdpau";
vo = "gpu";
profile = "gpu-hq";
};
};
};
# Usually stuff that is going to be compiled on this machine is going to have
# parallelisation support enabled, so we will make sure that all cores are
# utilised and limit the job queue to one.
nix.extraOptions = ''
keep-going = true
max-jobs = 1
cores = 32
'';
boot = {
# TODO Override Xanmod kernel to support ZFS. This probably will require
# some patching and whatnot.
kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
# Silence benign MCE errors:
# ```
# mce: [Hardware Error]: CPU 1: Machine Check: 0 Bank 29: ffffffffffffffff
# mce: [Hardware Error]: TSC 0 MISC ff1fffffffffffff SYND ffffffffffffffff IPID ffffffffffffffff
# mce: [Hardware Error]: PROCESSOR 2:a60f12 TIME 1669988017 SOCKET 0 APIC 2 microcode a601201
# ```
kernelParams = ["mce=nobootlog"];
# The boot drive is Samsung SSD 980 PRO 2TB.
initrd.kernelModules = ["nvme"];
};
fileSystems = {
"/boot" = {
device = "/dev/disk/by-uuid/FF1E-9CFD";
fsType = "vfat";
};
"/" = {
device = "/dev/disk/by-uuid/20276c1b-7e46-430b-b741-2f4aeb76bc51";
fsType = "xfs";
options = ["noatime"];
};
};
# No swap space is declared here because the system already has 128Gb of RAM. :^)
# I've only manage to hit around 100Gb mark when running large
# computations/compiling something big. Pretty sure that a hefty chunk of it
# was just residual cache and it wouldn't make me get to OOM situations.
}
|