diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/common.nix | 1 | ||||
| -rw-r--r-- | modules/oom.nix | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/modules/common.nix b/modules/common.nix index e36d4e9..00b87bb 100644 --- a/modules/common.nix +++ b/modules/common.nix @@ -13,6 +13,7 @@ ./vim.nix ./tmux.nix ./nix-ld.nix + ./oom.nix ]; services.envfs.enable = true; diff --git a/modules/oom.nix b/modules/oom.nix new file mode 100644 index 0000000..b05052a --- /dev/null +++ b/modules/oom.nix @@ -0,0 +1,28 @@ +# module for controlling out-of-memory states for desktop linux machines, +# to avoid hanging the full system including the shell, in favor of +# sending out oom signals before it comes to that with the earlyoom service. +{ ... }: + +{ + services = { + # TODO: i believe systemd-oomd could also be used to prevent system hanging, + # and i should investigate it, to avoid running 2 userspace oom killers. + # earlyoom is known for the small amount of configuration needed to prevent the + # system from hanging for half an hour, and we can keep it simple for now. + earlyoom = { + enable = true; + + freeMemThreshold = 10; + freeMemKillThreshold = 5; + + # requires systembus-notify. + # i wish libnotify would support sending out + # notifications to all users through the system + # session bus natively... + # see: https://gitlab.gnome.org/GNOME/libnotify/-/issues/9 + enableNotifications = true; + }; + + systembus-notify.enable = true; + }; +} |
