diff --git a/linux-game-manager.sh b/linux-game-manager.sh index 830c666..24965fa 100755 --- a/linux-game-manager.sh +++ b/linux-game-manager.sh @@ -404,6 +404,7 @@ game_launcher() { fi ;; *doom*) + ${0%/*}/speech/speak_window_title.sh gzdoom & exec ${game} ;; *"main.py") diff --git a/speech/speak_window_title.sh b/speech/speak_window_title.sh new file mode 100755 index 0000000..eb73553 --- /dev/null +++ b/speech/speak_window_title.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# Adapted from the bash snippet found at: +# https://bbs.archlinux.org/viewtopic.php?id=117031 + +# Wait for the application to start +while ! pgrep -u "$USER" ^$1 &> /dev/null ; do + sleep 0.05 +done + +# Read so long as the application is running +while pgrep -u "$USER" ^$1 &> /dev/null ; do + sleep 0.05 + if [[ -f ~/.agmsilent ]]; then + continue + fi + wnd_focus=$(xdotool getwindowfocus) + wnd_title=$(xprop -id $wnd_focus WM_NAME) + lookfor='"(.*)"' + + if [[ "$wnd_title" =~ $lookfor ]]; then + wnd_title=${BASH_REMATCH[1]} + if [[ "$old_title" != "$wnd_title" ]]; then + spd-say -- "$wnd_title" + old_title="$wnd_title" + fi + fi +done + +exit 0