Size: 643
Comment: How can I set the contents of my terminal's title bar?
|
Size: 795
Comment: fix up debug trap, add another version with $BASH_COMMAND
|
Deletions are marked like this. | Additions are marked like this. |
Line 9: | Line 9: |
If you want to set the title bar to the currently-running process's title every time you type a command, then this solution approximates it: | If you want to set the title bar to the currently-running command line every time you type a command, then this solution approximates it: |
Line 12: | Line 12: |
trap 'printf "\e]2;%s\a" "$(HISTTIMEFORMAT='' history 1)"' DEBUG | trap 'printf "\e]2;%s\a" "$(HISTTIMEFORMAT='' history 1)" > /dev/tty' DEBUG |
Line 16: | Line 16: |
Or to use just the name and arguments of the current simple command: {{{ trap 'printf "\e]2;%s\a" "$BASH_COMMAND" > /dev/tty' DEBUG }}} |
How can I set the contents of my terminal's title bar?
If you have a terminal that understands xterm-compatible escape sequences, and you just want to set the title one time, you can use a function like this:
settitle() { printf '\e]2;%s\a' "$*"; }
If you want to set the title bar to the currently-running command line every time you type a command, then this solution approximates it:
trap 'printf "\e]2;%s\a" "$(HISTTIMEFORMAT='' history 1)" > /dev/tty' DEBUG
However, it leaves the command history number in place, and it doesn't trigger on explicit subshells like (cd foo && make).
Or to use just the name and arguments of the current simple command:
trap 'printf "\e]2;%s\a" "$BASH_COMMAND" > /dev/tty' DEBUG