fix(bgnotify): detect if sway is running and not just installed

Before it also tried to call swaymsg if running on another wayland
compositor, but sway was also installed. The fix is to also check for
the $SWAYSOCK variable, which swaymsg is using to check where to talk to
sway. So it only tries to run swaymsg if sway is actually running.
This commit is contained in:
Benjamin Neff 2025-02-22 18:19:30 +01:00
parent 6e7ac0544e
commit c106934235
No known key found for this signature in database
GPG Key ID: 971464C3F1A90194

View File

@ -62,7 +62,7 @@ function bgnotify_formatted {
function bgnotify_appid {
if (( ${+commands[osascript]} )); then
osascript -e "tell application id \"$(bgnotify_programid)\" to get the {id, frontmost, id of front window, visible of front window}" 2>/dev/null
elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )); then # wayland+sway
elif [[ -n $WAYLAND_DISPLAY ]] && [[ -n $SWAYSOCK ]] && (( ${+commands[swaymsg]} )); then # wayland+sway
local app_id=$(bgnotify_find_sway_appid)
[[ -n "$app_id" ]] && echo "$app_id" || echo $EPOCHSECONDS
elif [[ -z $WAYLAND_DISPLAY ]] && [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then