From 4dca14db75a6a35b94dba63f39fb7b404562fb3e Mon Sep 17 00:00:00 2001 From: elenapan Date: Mon, 30 Dec 2024 19:18:05 +0200 Subject: [PATCH] Make scratchpad-toggle explicitly focus the window if unfocused --- config/sway/scripts/scratchpad-toggle | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) 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