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