fixed terminal title problem
authorChris Koeritz <fred@gruntose.com>
Wed, 15 Aug 2018 14:05:28 +0000 (10:05 -0400)
committerChris Koeritz <fred@gruntose.com>
Wed, 15 Aug 2018 14:05:28 +0000 (10:05 -0400)
working around gnome-terminal not supplying WINDOWID by using xdotool.  sigh.  yet another workaround requiring an extra software install.

scripts/tty/terminal_titler.sh

index df3e6a8cb36fabda4cf6546f6591ef0ebbb6b204..cb5c9a0e1a844e4110f023177bd95bc86f8a0b3c 100644 (file)
@@ -33,7 +33,7 @@ function set_terminal_title()
 {
   apply_title_to_terminal $*
 
-#tricky tries to get it to be available when we ask for it in get_terminal_title
+#tricky attempts to get it to be available when we ask for it in get_terminal_title
   sync
 #  echo -n
 
@@ -50,9 +50,11 @@ function get_terminal_title()
   # save the former terminal title if we're running in X with xterm.
   which xprop &>/dev/null
   if [ $? -eq 0 ]; then
-    # make sure we're actually using xterm *and* that we have a window ID.
-    if [[ ! -z "$GNOME_TERMINAL_SCREEN" ]]; then
-      term_title_found="$(xprop -id $WINDOWID | perl -nle 'print $1 if /^WM_NAME.+= \"(.*)\"$/')"
+    # gnome-terminal doesn't set WINDOWID currently, but we can work around this if xdotool
+    # is installed.
+    if [[ -z "$WINDOWID" && ! -z "$(which xdotool)" ]]; then
+      term_title_found="$(xprop -id $(xdotool getactivewindow) | perl -nle 'print $1 if /^WM_NAME.+= \"(.*)\"$/')"
+    # check if we're actually using xterm *and* that we have a window ID.
     elif [[ "$TERM" =~ .*"xterm".* && ! -z "$WINDOWID" ]]; then
       term_title_found="$(xprop -id $WINDOWID | perl -nle 'print $1 if /^WM_NAME.+= \"(.*)\"$/')"
     fi