Experimental support for focusing the game when launched through Steam. Problem, Steam launches in full screen. It's games launch behind it so they do not take focus. Second problem, even if they do take focus, the game is most likely not a winow Orca can see, so it thinks it's still in the Steam client meaning you can get orca trying to read Steam while playing the game. Solution, watch for Steam child window spawns. Create a small blank window that times out quickly and focus it. Move focus to the Steam child window which will be the game. It has worked for everything thus far.

This commit is contained in:
Storm Dragon
2025-12-30 23:11:11 -05:00
parent c9d35a06ad
commit 9a4459e3e2
2 changed files with 136 additions and 2 deletions

18
i38.sh
View File

@@ -314,6 +314,9 @@ screenlockPinHash="$screenlockPinHash"
# Personal mode
personalModeEnabled="${personalModeEnabled:-1}"
personalModeKey="$personalModeKey"
# WayTray configuration (0=use I38 config, 1=keep user config)
waytrayUseI38Config="${waytrayUseI38Config:-0}"
EOF
dialog --title "I38" --msgbox "Configuration saved to $configFile\n\nYou can edit this file manually or delete it to reconfigure from scratch." 0 0
@@ -431,9 +434,16 @@ write_waytray_config() {
mkdir -p "${waytrayConfigDir}"
# Ask user if config already exists
# Ask user if config already exists (unless preference already saved)
if [[ -f "${waytrayConfig}" ]]; then
if ! yesno "Existing waytray configuration detected. Replace with I38's minimal tray-only config?\n\n(Select 'No' to keep your existing waytray configuration with all modules enabled)"; then
if [[ -z "$waytrayUseI38Config" ]]; then
if yesno "Existing waytray configuration detected. Replace with I38's minimal tray-only config?\n\n(Select 'No' to keep your existing waytray configuration with all modules enabled)"; then
waytrayUseI38Config=0
else
waytrayUseI38Config=1
fi
fi
if [[ $waytrayUseI38Config -ne 0 ]]; then
return 0 # User wants to keep existing config
fi
fi
@@ -1141,6 +1151,10 @@ $(if [[ $sounds -eq 0 ]]; then
echo "exec_always --no-startup-id ${i3Path}/scripts/sound.py"
fi
fi
# Steam game focus handler (i3 only) - focuses games when they open behind Big Picture
if [[ $usingSway -ne 0 ]] && command -v steam &> /dev/null; then
echo "exec --no-startup-id ${i3Path}/scripts/steam_games.py"
fi
# i3 watchdog - monitors i3 responsiveness and auto-recovers from freezes
if [[ $usingSway -ne 0 ]]; then
echo "exec_always --no-startup-id ${i3Path}/scripts/i3_watchdog.sh"