diff --git a/autostart.conf b/autostart.conf index 523adbc..b903534 100644 --- a/autostart.conf +++ b/autostart.conf @@ -8,7 +8,7 @@ exec export YDOTOOL_SOCKET=/tmp/.ydotool_socket exec ydotoold ##password keyring unlock -#exec --no-startup-id /home/kellya/projects/public/gnome-keyring-yubikey-unlock/unlock_keyrings.sh /home/kellya/gnome-secret +#exec /home/kellya/projects/public/gnome-keyring-yubikey-unlock/unlock_keyrings.sh /home/kellya/gnome-secret # start nm-applet for network tray icon exec nm-applet @@ -23,5 +23,6 @@ exec /home/kellya/.config/sway/scripts/workspaces.sh exec dex-autostart --autostart --environment sway exec /home/kellya/bin/bg_rotate_sway.sh -exec ~/.local/bin/solaar -w hide -b symbolic +#exec /usr/bin/solaar -w hide -b symbolic +#exec flatpak run im.nheko.Nheko exec swayosd-server diff --git a/conf.d/key_bindings.conf b/conf.d/key_bindings.conf index bd1558e..515003b 100644 --- a/conf.d/key_bindings.conf +++ b/conf.d/key_bindings.conf @@ -1,7 +1,8 @@ # keybindings # Note, this is for more of a "global" keybindings. Modes will have their own mode_whatever.conf keybinding -bindsym $mod+Return exec kitty +bindsym $mod+Return exec ghostty +#bindsym $mod+Return exec kitty bindsym Control+$alt+l exec /home/kellya/.config/sway/scripts/lock.sh diff --git a/conf.d/title_bar_icons.conf b/conf.d/title_bar_icons.conf index eda2299..808f977 100644 --- a/conf.d/title_bar_icons.conf +++ b/conf.d/title_bar_icons.conf @@ -53,6 +53,8 @@ for_window [app_id=^soundux$] title_format "­%title" for_window [app_id=^vlc$] title_format "­󰕼 %title" for_window [app_id=^zenity$] title_format "­%title" +for_window [app_id=^com.mitchellh.ghostty$] title_format "­󰊠 %title" +for_window [app_id=^org.gnome.Fractal$] title_format "­%title" for_window [class=^Ardour$] title_format "­󰔶 %title" for_window [class=^Audacity$|^lmms] title_format "­%title" @@ -85,4 +87,5 @@ for_window [class=^vlc$] title_format "­ for_window [class=^Spotify$] title_format "­%title" for_window [class=^jetbrains-pycharm$] title_format "­%title" for_window [class=^Slack$] title_format "­%title" -for_window [class=^teams-for-linux$] title_format "­%title" +for_window [class=^teams-for-linux$] title_format "­󰇷 %title" +for_window [instance=^element$] title_format "­%title" diff --git a/conf.d/window_rules.conf b/conf.d/window_rules.conf index 1107620..42f41bf 100644 --- a/conf.d/window_rules.conf +++ b/conf.d/window_rules.conf @@ -19,6 +19,8 @@ assign [class="jetbrains-phpstorm"] workspace number $ws4 assign [class="Slack"] workspace number $ws2 assign [app_id="org.mozilla.thunderbird"] workspace number $ws6 assign [class="Joplin"] workspace number $ws6 +assign [instance="element"] workspace number $ws2 +assign [instance="im.nheko.Nheko"] workspace number $ws2 #Default floating (copied from https://github.com/jjquin/swayarch/blob/master/.config/sway/config.d/window_rules) diff --git a/config b/config index 1631b8d..7506958 100644 --- a/config +++ b/config @@ -34,5 +34,5 @@ include conf.d/*.conf include autostart.conf focus_on_window_activation focus -output DP-4 pos 0 0 -output DP-5 pos 1920 0 +output DP-6 pos 0 0 +output DP-7 pos 1920 0 diff --git a/scripts/lock.sh b/scripts/lock.sh index e346a17..1b5193f 100755 --- a/scripts/lock.sh +++ b/scripts/lock.sh @@ -1,5 +1,6 @@ #!/bin/bash swaylock \ + -f \ --screenshots \ --indicator \ --indicator-radius 100 \ diff --git a/scripts/workspaces.sh b/scripts/workspaces.sh index eaf1323..85e381e 100755 --- a/scripts/workspaces.sh +++ b/scripts/workspaces.sh @@ -1,39 +1,62 @@ #!/bin/bash -# Set workspace names/number +# === CONFIG === ws1=1 ws2=2 ws3=3 ws5=5 ws6=6 +# === FUNCTION === +# move_when_ready +move_when_ready() { + local cmd="$1" + local match_type="$2" # "app_id" or "title" + local match_value="$3" + local target_ws="$4" + local timeout="${5:-30}" # default timeout: 30 seconds -#Split the binary and the options so we can optionally run w/ or w/o the option -# full path to the toolwait binary itself -TOOLWAITBIN="/home/kellya/.config/sway/scripts/i3-toolwait" -# Options to pass -TOOLWAITOPTIONS="--nocheck" -# binary, with options -TOOLWAIT="$TOOLWAITBIN $TOOLWAITOPTIONS" + echo "▶ Launching: $cmd (waiting for $match_type=$match_value, timeout ${timeout}s)" + eval "$cmd" & + local waited=0 + local interval=0.5 + local max_wait=$(echo "$timeout / $interval" | bc) -swaymsg workspace $ws6 -$TOOLWAIT --waitfor org.mozilla.thunderbird /usr/bin/thunderbird -$TOOLWAIT --waitfor logseq /home/kellya/bin/logseq + while true; do + if swaymsg -t get_tree | grep -q "\"$match_type\": \"$match_value\""; then + echo "✓ Found $match_type=$match_value — moving to workspace $target_ws" + swaymsg "[${match_type}=\"${match_value}\"] move to workspace ${target_ws}" >/dev/null + break + fi -# Start spotify -swaymsg workspace $ws5 -$TOOLWAIT -- /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=spotify --file-forwarding com.spotify.Client + sleep $interval + waited=$((waited+1)) + if [ "$waited" -ge "$max_wait" ]; then + echo "⏰ Timeout waiting for $match_type=$match_value after ${timeout}s" + break + fi + done +} +# === APPS === -swaymsg workspace $ws2 -$TOOLWAITBIN --waitfor slack -- flatpak run com.slack.Slack -$TOOLWAIT --waitfor teams-for-linux -- /opt/teams-for-linux/teams-for-linux --optInTeamsV2 true +move_when_ready "/usr/bin/thunderbird" "app_id" "net.thunderbird.Thunderbird" "$ws6" -swaymsg workspace $ws1 -$TOOLWAITBIN --waitfor org.mozilla.firefox firefox +move_when_ready "/home/kellya/bin/logseq" "class" "Logseq" "$ws6" + +move_when_ready "flatpak run com.spotify.Client" "instance" "spotify" "$ws5" + +move_when_ready "flatpak run com.slack.Slack" "instance" "slack" "$ws2" + +move_when_ready "/opt/teams-for-linux/teams-for-linux --optInTeamsV2 true" "instance" "teams-for-linux" "$ws2" + +move_when_ready "ghostty" "app_id" "com.mitchellh.ghostty" "$ws3" + +move_when_ready "1password" "instance" "1password" "$ws3" + +move_when_ready "firefox" "app_id" "org.mozilla.firefox" "$ws1" + +swaymsg workspace "$ws1" +swaymsg workspace "$ws3" -# Switch to the terminal/email workspace by default -swaymsg workspace $ws3 -$TOOLWAIT --waitfor kitty kitty -$TOOLWAIT --waitfor 1password 1password diff --git a/workspaces.conf b/workspaces.conf index 5155c35..998d49f 100644 --- a/workspaces.conf +++ b/workspaces.conf @@ -17,8 +17,8 @@ set $ws7 7 set $ws8 8 set $ws9 9 set $ws10 10 -set $display_1 DP-4 -set $display_2 DP-5 +set $display_1 DP-6 +set $display_2 DP-7 # New workspaces will get fullscreen/tabbed by default workspace_layout tabbed