From 1f1710c56a9e810215d6270b6485e0d410e8606d Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Wed, 13 May 2026 13:43:17 +0100 Subject: feat(sway): separate thunderbird autostart from super+t launch path Splitting the for_window 'move to scratchpad' action into a dedicated autostart helper so that super+t launches TB tiled (not stashed) when TB isn't already running. Previously the for_window rule would stash every new main window, forcing the user to press super+t twice after killing TB manually. --- dot_config/sway/executable_tb-autostart.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 dot_config/sway/executable_tb-autostart.sh (limited to 'dot_config/sway/executable_tb-autostart.sh') diff --git a/dot_config/sway/executable_tb-autostart.sh b/dot_config/sway/executable_tb-autostart.sh new file mode 100644 index 0000000..b77431e --- /dev/null +++ b/dot_config/sway/executable_tb-autostart.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# Launch Thunderbird and stash the main window into the scratchpad once sway +# marks it. Used at sway startup so TB is running but hidden from the outset. +# Invoking Super+t (tb-toggle.sh) while TB isn't running takes a different +# path and leaves the window tiled on the current workspace. + +set -eu + +MARK=tb-main + +thunderbird & + +for _ in $(seq 1 200); do + if swaymsg -t get_tree | jq -e --arg m "$MARK" ' + [.. | objects | select(.marks? // [] | index($m))] | length > 0 + ' >/dev/null 2>&1; then + swaymsg "[con_mark=\"$MARK\"] move container to scratchpad" >/dev/null + exit 0 + fi + sleep 0.1 +done -- cgit v1.3.1