From da157fb9c0abfb169a33c3ebbd6fe6556d264448 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 24 Jul 2026 10:34:19 -0700 Subject: [PATCH] Drop Wi-Fi power save toggling in favor of keeping it off The on-battery toggle bought a fraction of a watt while the radio idled -- twenty-some minutes across a full discharge in the best case -- and paid for it with 20-300ms latency spikes on idle links and outright link drops on Intel BE200/BE211 firmware. NetworkManager can keep power save off natively with one conf.d line, which replaces the udev rule, the setter script, and any per-card deny-listing. Co-Authored-By: Claude Fable 5 --- bin/omarchy-wifi-powersave | 10 ---------- .../conf.d/omarchy-wifi-powersave.conf | 5 +++++ .../rules.d/99-omarchy-wifi-powersave.rules | 2 -- migrations/1784914435.sh | 19 +++++++++++++++++++ 4 files changed, 24 insertions(+), 12 deletions(-) delete mode 100755 bin/omarchy-wifi-powersave create mode 100644 etc/NetworkManager/conf.d/omarchy-wifi-powersave.conf delete mode 100644 etc/udev/rules.d/99-omarchy-wifi-powersave.rules create mode 100644 migrations/1784914435.sh 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