diff --git a/config/sway/scripts/scratchpad-toggle b/config/sway/scripts/scratchpad-toggle index 08496ad..a40eb60 100755 --- a/config/sway/scripts/scratchpad-toggle +++ b/config/sway/scripts/scratchpad-toggle @@ -4,11 +4,14 @@ cmd="$2" query_focused="${query//\]/ workspace\=__focused__ con_id=__focused__]}" # If focused, move to scratchpad -if swaymsg "${query_focused} focus" >/dev/null; then +if swaymsg "${query_focused} exec true" >/dev/null; then swaymsg "${query} move window to scratchpad" -# If not focused, try to move to current workspace and focus -elif ! swaymsg "${query} scratchpad show"; then - # If the "scratchpad show" fails, it means the scratchpad was not open. - # Run the command that spawns the scratchpad - ${cmd} +else + # If it exists (but not focused), move to current workspace and focus + if swaymsg "${query} exec true" >/dev/null; then + swaymsg "${query} scratchpad show, focus" + else + # Window not open, run the command that spawns it + ${cmd} + fi fi