Route panel hotkeys through the shell IPC target so they survive reloads

Bar-widget panels (audio, bluetooth, network, power, monitor) used to be
toggled via their own per-plugin IpcHandler targets. Quickshell resolves
duplicate targets first-handler-wins, so after a plugin or bar reload the
stale handler of the destroyed widget instance kept claiming the target
and the hotkeys went dead.

The shell root's IpcHandler lives outside the reload cycle, so summon,
hide, and toggle now go through `omarchy-shell shell toggle <plugin>`
and the shell routes to the live widget instance via the bar's slot
registry. Panel plugins that are also panel/overlay/menu kinds keep
using the panel loader path. Failures to find a live widget are logged
so a widget missing from the bar layout stays diagnosable.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
David Heinemeier Hansson
2026-07-07 09:17:54 -07:00
co-authored by Claude Fable 5
parent 6bb3cb666b
commit e1cdc9005e
5 changed files with 83 additions and 7 deletions
+1 -1
View File
@@ -19,7 +19,7 @@ notify_update() {
notify_wifi() {
(
if [[ -n $(omarchy-notification-send -u critical -g 󰖩 "Click to Setup Wi-Fi" -a) ]]; then
omarchy-shell omarchy.network toggle
omarchy-shell shell toggle omarchy.network
fi
) >/dev/null 2>&1 &
}