diff --git a/bin/omarchy-wifi-powersave b/bin/omarchy-wifi-powersave deleted file mode 100755 index d75434a1..00000000 --- a/bin/omarchy-wifi-powersave +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -# omarchy:summary=Set Wi-Fi power save mode on wireless interfaces -# omarchy:args= - -shopt -s nullglob -for iface in /sys/class/net/*/wireless; do - iface="$(basename "$(dirname "$iface")")" - iw dev "$iface" set power_save "$1" 2>/dev/null -done diff --git a/etc/NetworkManager/conf.d/omarchy-wifi-powersave.conf b/etc/NetworkManager/conf.d/omarchy-wifi-powersave.conf new file mode 100644 index 00000000..454400d3 --- /dev/null +++ b/etc/NetworkManager/conf.d/omarchy-wifi-powersave.conf @@ -0,0 +1,5 @@ +# Keep Wi-Fi power save off: it trades 20-300ms latency spikes on idle links +# for a fraction of a watt while the radio idles, and broken firmware (Intel +# BE200/BE211) drops the link outright when it naps. +[connection] +wifi.powersave = 2 diff --git a/etc/udev/rules.d/99-omarchy-wifi-powersave.rules b/etc/udev/rules.d/99-omarchy-wifi-powersave.rules deleted file mode 100644 index 87950af6..00000000 --- a/etc/udev/rules.d/99-omarchy-wifi-powersave.rules +++ /dev/null @@ -1,2 +0,0 @@ -SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="0", RUN+="/usr/bin/systemd-run --no-block --collect --unit=omarchy-wifi-powersave-on /usr/bin/omarchy-wifi-powersave on" -SUBSYSTEM=="power_supply", ATTR{type}=="Mains", ATTR{online}=="1", RUN+="/usr/bin/systemd-run --no-block --collect --unit=omarchy-wifi-powersave-off /usr/bin/omarchy-wifi-powersave off" diff --git a/migrations/1784914435.sh b/migrations/1784914435.sh new file mode 100644 index 00000000..a7899c4e --- /dev/null +++ b/migrations/1784914435.sh @@ -0,0 +1,19 @@ +echo "Keep Wi-Fi power save off for lower latency" + +as_root() { + if (( EUID == 0 )); then + "$@" + else + sudo "$@" + fi +} + +as_root nmcli general reload conf >/dev/null 2>&1 || true + +# NetworkManager only applies wifi.powersave when a connection activates, so +# also switch it off directly for the running session. +shopt -s nullglob +for wireless in /sys/class/net/*/wireless; do + iface=$(basename "$(dirname "$wireless")") + as_root iw dev "$iface" set power_save off 2>/dev/null || true +done