- if [[ "$TERM" =~ .*"xterm".* && ! -z "$WINDOWID" ]]; then
- local prior_title="$(xprop -id $WINDOWID | perl -nle 'print $1 if /^WM_NAME.+= \"(.*)\"$/')"
- if [ ! -z "$prior_title" ]; then
-echo "saving prior terminal title as '$prior_title'"
- export PRIOR_TERMINAL_TITLE="$prior_title"
- else
-echo "not saving prior terminal title which was empty"
- fi
+ if [[ ! -z "$GNOME_TERMINAL_SCREEN" ]]; then
+ term_title_found="$(xprop -id $WINDOWID | perl -nle 'print $1 if /^WM_NAME.+= \"(.*)\"$/')"
+ elif [[ "$TERM" =~ .*"xterm".* && ! -z "$WINDOWID" ]]; then
+ term_title_found="$(xprop -id $WINDOWID | perl -nle 'print $1 if /^WM_NAME.+= \"(.*)\"$/')"
+ fi
+ fi
+ echo -n "$term_title_found"
+}
+
+# reads the current terminal title, if possible, and saves it to our record.
+function save_terminal_title()
+{
+ local title="$(get_terminal_title)"
+ if [ "$title" != "unknown" ]; then
+ # there was a title, so save it.
+ if [ ! -z "$DEBUG_TERM_TITLE" ]; then
+ echo "saving prior terminal title as '$title'"
+ fi
+ export PRIOR_TERMINAL_TITLE="$title"
+ else
+ # the terminal had no title, or we couldn't access it, or there's no terminal.
+ if [ ! -z "$DEBUG_TERM_TITLE" ]; then
+ echo "not saving prior terminal title which was empty"