Migrate existing waybar configs to pin battery to BAT0 (#5369)

* Migrate existing waybar configs to pin battery to BAT0

Follow-up to #4918: that PR updated the default template, but
existing users keep their copy at ~/.config/waybar/config.jsonc
and won't pick up the fix without running omarchy-refresh-waybar
(which wipes local customizations). Patch the existing file in
place and restart waybar.

* Make battery-pin migration tolerant of whitespace variants

Per Copilot review: grep/sed patterns now match "battery" : {,
"battery":{, and "bat" : "..." variants that hand-edited configs
may use. Also only restart waybar when a battery block actually
exists to edit.
This commit is contained in:
Lewis Buckley
2026-04-20 13:52:04 +02:00
committed by GitHub
parent 7c9442f8d0
commit a9baa8f45f
+10
View File
@@ -0,0 +1,10 @@
echo "Pin waybar battery module to BAT0 to prevent crash on HID battery disconnect"
CONFIG_FILE=~/.config/waybar/config.jsonc
if [[ -f "$CONFIG_FILE" ]] \
&& ! grep -Eq '"bat"[[:space:]]*:' "$CONFIG_FILE" \
&& grep -Eq '"battery"[[:space:]]*:[[:space:]]*\{' "$CONFIG_FILE"; then
sed -i -E '/"battery"[[:space:]]*:[[:space:]]*\{/a\ "bat": "BAT0",' "$CONFIG_FILE"
omarchy-restart-waybar
fi