1{ lib, pkgs, helpers, ... } @ inputs:
2
3with lib;
4let
5 inherit (import ../../lib/colors.nix inputs) hex;
6in helpers.linuxAttrs {
7 environment.systemPackages = [ pkgs.sbctl ];
8
9 console = {
10 earlySetup = true;
11 useXkbConfig = true;
12
13 colors = [
14 "000000"
15 "${hex.red}"
16 "${hex.green}"
17 "${hex.yellow}"
18 "${hex.blue}"
19 "${hex.magenta}"
20 "${hex.aqua}"
21 "${hex.white}"
22 "${hex.grey}"
23 "${hex.brightRed}"
24 "${hex.brightGreen}"
25 "${hex.orange}"
26 "${hex.brightBlue}"
27 "${hex.pink}"
28 "${hex.cyan}"
29 "${hex.muted}"
30 ];
31 };
32
33 boot = {
34 bootspec.enable = mkDefault true;
35 consoleLogLevel = mkDefault 2;
36
37 loader = {
38 timeout = mkDefault 2;
39 systemd-boot.configurationLimit = mkDefault 3;
40 };
41
42 initrd = {
43 verbose = false;
44 systemd.enable = true;
45 };
46
47 kernelPackages = mkDefault pkgs.linuxPackages_latest;
48
49 kernelParams = [
50 "quiet"
51 "splash"
52 "boot.shell_on_fail"
53 "rd.systemd.show_status=auto"
54 "rd.udev.log_level=3"
55 "udev.log_priority=3"
56 "nmi_watchdog=0"
57 "mitigations=off"
58 ];
59
60 kernel.sysctl = {
61 "vm.swappiness" = 10;
62 "vm.vfs_cache_pressure" = 10;
63 "vm.dirty_ratio" = 2;
64 "vm.dirty_background_ratio" = 5;
65 "net.ipv4.tcp_fin_timeout" = mkDefault 5;
66 "net.ipv4.tcp_mtu_probing" = mkDefault true;
67 };
68 };
69
70 time.timeZone = "Europe/London";
71
72 i18n = {
73 defaultLocale = "en_GB.UTF-8";
74 extraLocaleSettings = {
75 LC_TIME = "en_GB.UTF-8";
76 LC_ADDRESS = "en_GB.UTF-8";
77 LC_IDENTIFICATION = "en_GB.UTF-8";
78 LC_MEASUREMENT = "en_GB.UTF-8";
79 LC_MONETARY = "en_GB.UTF-8";
80 LC_NAME = "en_GB.UTF-8";
81 LC_NUMERIC = "en_GB.UTF-8";
82 LC_PAPER = "en_GB.UTF-8";
83 LC_TELEPHONE = "en_GB.UTF-8";
84 };
85 supportedLocales = [
86 "en_GB.UTF-8/UTF-8"
87 "en_US.UTF-8/UTF-8"
88 ];
89 };
90
91 security = {
92 sudo.enable = true;
93 polkit.enable = true;
94 };
95
96 services.dbus.enable = true;
97
98 virtualisation.oci-containers.backend = mkDefault "podman";
99}