HASH 0acf43414344
DATE 2026-03-29
SUBJECT nixos: add earlyoom module, move switch and locale to system namespace
FILES 6 CHANGED HASH 0acf43414344
DATE 2026-03-29
SUBJECT nixos: add earlyoom module, move
switch and locale to system namespace
FILES 6 CHANGED ┌─ hosts/ooksdesk/default.nix ────────────────────────────────────────────── [ COPY ] ─┐
│ diff --git a/hosts/ooksdesk/default.nix b/hosts/ooksdesk/default.nix │
│ index 50a0ddc..843c16d 100644 │
│ --- a/hosts/ooksdesk/default.nix │
│ +++ b/hosts/ooksdesk/default.nix │
│ @@ -9,6 +9,7 @@ │
│ ]; │
│ │
│ ooknet = { │
│ + system.earlyoom.enable = true; │
│ host = { │
│ deployment = { │
│ enable = true; │
└────────────────────────────────────────────────────────────────────────────────────┘ ┌─ hosts/ooksdesk/default.nix ──────── [ COPY ] ─┐
│ diff --git a/hosts/ooksdesk/default.nix b/ho │
│ sts/ooksdesk/default.nix │
│ index 50a0ddc..843c16d 100644 │
│ --- a/hosts/ooksdesk/default.nix │
│ +++ b/hosts/ooksdesk/default.nix │
│ @@ -9,6 +9,7 @@ │
│ ]; │
│ │
│ ooknet = { │
│ + system.earlyoom.enable = true; │
│ host = { │
│ deployment = { │
│ enable = true; │
└──────────────────────────────────────────────┘ ┌─ modules/nixos/base/default.nix ────────────────────────────────────────── [ COPY ] ─┐
│ diff --git a/modules/nixos/base/default.nix b/modules/nixos/base/default.nix │
│ index fc53a19..97d6607 100644 │
│ --- a/modules/nixos/base/default.nix │
│ +++ b/modules/nixos/base/default.nix │
│ @@ -4,9 +4,8 @@ │
│ ./openssh.nix │
│ ./tailscale.nix │
│ ./networking.nix │
│ - ./switch.nix │
│ ./security │
│ + ./system │
│ ./syncthing.nix │
│ - ./locale.nix │
│ ]; │
│ } │
└────────────────────────────────────────────────────────────────────────────────────┘ ┌─ modules/nixos/base/default.nix ──── [ COPY ] ─┐
│ diff --git a/modules/nixos/base/default.nix │
│ b/modules/nixos/base/default.nix │
│ index fc53a19..97d6607 100644 │
│ --- a/modules/nixos/base/default.nix │
│ +++ b/modules/nixos/base/default.nix │
│ @@ -4,9 +4,8 @@ │
│ ./openssh.nix │
│ ./tailscale.nix │
│ ./networking.nix │
│ - ./switch.nix │
│ ./security │
│ + ./system │
│ ./syncthing.nix │
│ - ./locale.nix │
│ ]; │
│ } │
└──────────────────────────────────────────────┘ ┌─ modules/nixos/base/system/default.nix ─────────────────────────────────── [ COPY ] ─┐
│ diff --git a/modules/nixos/base/system/default.nix b/modules/nixos/base/system/def │
│ ault.nix │
│ new file mode 100644 │
│ index 0000000..5c36859 │
│ --- /dev/null │
│ +++ b/modules/nixos/base/system/default.nix │
│ @@ -0,0 +1,7 @@ │
│ +{ │
│ + imports = [ │
│ + ./earlyoom.nix │
│ + ./locale.nix │
│ + ./switch.nix │
│ + ]; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘ ┌─ ...nixos/base/system/default.nix ── [ COPY ] ─┐
│ diff --git a/modules/nixos/base/system/defau │
│ lt.nix b/modules/nixos/base/system/default.n │
│ ix │
│ new file mode 100644 │
│ index 0000000..5c36859 │
│ --- /dev/null │
│ +++ b/modules/nixos/base/system/default.nix │
│ @@ -0,0 +1,7 @@ │
│ +{ │
│ + imports = [ │
│ + ./earlyoom.nix │
│ + ./locale.nix │
│ + ./switch.nix │
│ + ]; │
│ +} │
└──────────────────────────────────────────────┘ ┌─ modules/nixos/base/system/earlyoom.nix ────────────────────────────────── [ COPY ] ─┐
│ diff --git a/modules/nixos/base/system/earlyoom.nix b/modules/nixos/base/system/ea │
│ rlyoom.nix │
│ new file mode 100644 │
│ index 0000000..d5bedb4 │
│ --- /dev/null │
│ +++ b/modules/nixos/base/system/earlyoom.nix │
│ @@ -0,0 +1,26 @@ │
│ +{ │
│ + config, │
│ + lib, │
│ + ... │
│ +}: let │
│ + inherit (lib) mkIf; │
│ + inherit (config.ooknet.system) earlyoom; │
│ +in { │
│ + config = mkIf earlyoom.enable { │
│ + services.earlyoom = { │
│ + enable = true; │
│ + freeMemThreshold = 5; │
│ + freeSwapThreshold = 10; │
│ + enableNotifications = true; │
│ + │
│ + # prefer killing the biggest memory hogs in userspace, │
│ + # avoid taking out system-critical stuff │
│ + extraArgs = [ │
│ + "--prefer" │
│ + "^(Xwayland|steam|Web Content|Isolated Web Co|electron|chromium|zen)" │
│ + "--avoid" │
│ + "^(Hyprland|pipewire|wireplumber|systemd|sshd)" │
│ + ]; │
│ + }; │
│ + }; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘ ┌─ ...ixos/base/system/earlyoom.nix ── [ COPY ] ─┐
│ diff --git a/modules/nixos/base/system/early │
│ oom.nix b/modules/nixos/base/system/earlyoom │
│ .nix │
│ new file mode 100644 │
│ index 0000000..d5bedb4 │
│ --- /dev/null │
│ +++ b/modules/nixos/base/system/earlyoom.nix │
│ @@ -0,0 +1,26 @@ │
│ +{ │
│ + config, │
│ + lib, │
│ + ... │
│ +}: let │
│ + inherit (lib) mkIf; │
│ + inherit (config.ooknet.system) earlyoom; │
│ +in { │
│ + config = mkIf earlyoom.enable { │
│ + services.earlyoom = { │
│ + enable = true; │
│ + freeMemThreshold = 5; │
│ + freeSwapThreshold = 10; │
│ + enableNotifications = true; │
│ + │
│ + # prefer killing the biggest memory h │
│ ogs in userspace, │
│ + # avoid taking out system-critical st │
│ uff │
│ + extraArgs = [ │
│ + "--prefer" │
│ + "^(Xwayland|steam|Web Content|Isola │
│ ted Web Co|electron|chromium|zen)" │
│ + "--avoid" │
│ + "^(Hyprland|pipewire|wireplumber|sy │
│ stemd|sshd)" │
│ + ]; │
│ + }; │
│ + }; │
│ +} │
└──────────────────────────────────────────────┘ ┌─ modules/nixos/base/system/locale.nix ──────────────────────────────────── [ COPY ] ─┐
│ diff --git a/modules/nixos/base/locale.nix b/modules/nixos/base/system/locale.nix │
│ similarity index 100% │
│ rename from modules/nixos/base/locale.nix │
│ rename to modules/nixos/base/system/locale.nix │
└────────────────────────────────────────────────────────────────────────────────────┘ ┌─ .../nixos/base/system/locale.nix ── [ COPY ] ─┐
│ diff --git a/modules/nixos/base/locale.nix b │
│ /modules/nixos/base/system/locale.nix │
│ similarity index 100% │
│ rename from modules/nixos/base/locale.nix │
│ rename to modules/nixos/base/system/locale.n │
│ ix │
└──────────────────────────────────────────────┘ ┌─ modules/nixos/base/system/switch.nix ──────────────────────────────────── [ COPY ] ─┐
│ diff --git a/modules/nixos/base/switch.nix b/modules/nixos/base/system/switch.nix │
│ similarity index 100% │
│ rename from modules/nixos/base/switch.nix │
│ rename to modules/nixos/base/system/switch.nix │
└────────────────────────────────────────────────────────────────────────────────────┘ ┌─ .../nixos/base/system/switch.nix ── [ COPY ] ─┐
│ diff --git a/modules/nixos/base/switch.nix b │
│ /modules/nixos/base/system/switch.nix │
│ similarity index 100% │
│ rename from modules/nixos/base/switch.nix │
│ rename to modules/nixos/base/system/switch.n │
│ ix │
└──────────────────────────────────────────────┘ [ BACK TO LOG ] ──────────────────────────────────────────────────────────────────────────────────────
OOKNET ────────────────────────────────────────────────
OOKNET