diff --git a/modules/hosts/laptop/default.nix b/modules/hosts/laptop/default.nix index 70668e1..34014e2 100644 --- a/modules/hosts/laptop/default.nix +++ b/modules/hosts/laptop/default.nix @@ -52,6 +52,12 @@ # Disable USB power saving. USB_AUTOSUSPEND = 0; + # Disable Wi-Fi power saving for consistent latency. + # keep-sorted start + WIFI_PWR_ON_AC = "off"; + WIFI_PWR_ON_BAT = "off"; + # keep-sorted end + # Cpu performance profiles: maximize performance on ac, conserve battery on bat. # keep-sorted start CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; diff --git a/modules/profiles/common/tweaks.nix b/modules/profiles/common/tweaks.nix index 224a783..2af6746 100644 --- a/modules/profiles/common/tweaks.nix +++ b/modules/profiles/common/tweaks.nix @@ -16,6 +16,13 @@ optional # keep-sorted end ; + + managerSettings = { + # keep-sorted start + DefaultTimeoutStartSec = "15s"; + DefaultTimeoutStopSec = "10s"; + # keep-sorted end + }; in { options.tweaks.rcuLazy.enable = mkEnableOption "Enable RCU lazy mode."; @@ -87,6 +94,15 @@ # keep-sorted end ]; + security.pam.loginLimits = [ + { + domain = "@audio"; + item = "nice"; + type = "-"; + value = "-11"; + } + ]; + systemd = { coredump.settings.Coredump.Storage = "journal"; @@ -97,19 +113,21 @@ "w! /sys/kernel/mm/transparent_hugepage/defrag - - - - defer+madvise" ]; - user.settings.Manager.DefaultLimitNOFILE = "1024:1048576"; - - settings.Manager = { - # keep-sorted start - DefaultLimitNOFILE = "2048:2097152"; - DefaultTimeoutStartSec = "15s"; - DefaultTimeoutStopSec = "10s"; - # keep-sorted end - }; + user.settings.Manager = + managerSettings + // { + DefaultLimitNOFILE = "1024:1048576"; + }; + + settings.Manager = + managerSettings + // { + DefaultLimitNOFILE = "2048:2097152"; + }; }; # keep-sorted end - # Udev rules for audio power saving and disk scheduler tuning. + # Udev rules for power and latency tuning. services.udev.extraRules = let # keep-sorted start bash = getExe pkgs.bash; @@ -140,6 +158,10 @@ ACTION=="change", KERNEL=="zram0", ATTR{initstate}=="1", SYSCTL{vm.swappiness}="150", \ RUN+="${bash} -c '${echo} N > /sys/module/zswap/parameters/enabled'" + ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", \ + ATTRS{removable}=="removable", TEST=="../power/control", \ + ATTR{../power/control}="on" + KERNEL=="rtc0", GROUP="audio" KERNEL=="hpet", GROUP="audio" diff --git a/modules/services/network/network.nix b/modules/services/network/network.nix index 2a09342..9d84c99 100644 --- a/modules/services/network/network.nix +++ b/modules/services/network/network.nix @@ -50,6 +50,9 @@ enable = true; dns = "systemd-resolved"; plugins = [pkgs.networkmanager-openvpn]; + + # Prefer temporary IPv6 addresses for outbound connections. + settings.connection."ipv6.ip6-privacy" = 2; }; };