mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-01-09 02:24:03 +01:00
screen: Bugfixes
Multiple bugfixes in this patch: 1) Do not evaluate $TITLE. 2) Do not let normal title code set screen session titles if screen plugin is active 3) Use default way to set hardstatus in screen, not xterm compatible string. Signed-off-by: Markus Pargmann <mpargmann@allfex.org>
This commit is contained in:
parent
efda505417
commit
229ef8cfdc
2 changed files with 18 additions and 7 deletions
|
|
@ -2,12 +2,23 @@
|
|||
#http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#ss3.1
|
||||
#Fully support screen, iterm, and probably most modern xterm and rxvt
|
||||
#Limited support for Apple Terminal (Terminal can't set window or tab separately)
|
||||
|
||||
ZSH_SCREEN_PLUGIN_ACTIVE=false
|
||||
for i in $plugins; do
|
||||
if [[ "$i" == "screen" ]]; then
|
||||
ZSH_SCREEN_PLUGIN_ACTIVE=true
|
||||
fi
|
||||
done
|
||||
|
||||
function title {
|
||||
if [[ "$DISABLE_AUTO_TITLE" == "true" ]] || [[ "$EMACS" == *term* ]]; then
|
||||
return
|
||||
fi
|
||||
if [[ "$TERM" == screen* ]]; then
|
||||
print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
|
||||
# do not set the screen hardstatus, if screen plugin is active
|
||||
if [[ "$ZSH_SCREEN_PLUGIN_ACTIVE" != "true" ]]; then
|
||||
print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
|
||||
fi
|
||||
elif [[ "$TERM_PROGRAM" == "Apple_Terminal" ]]; then
|
||||
print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal)
|
||||
elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
|
||||
|
|
|
|||
|
|
@ -31,10 +31,10 @@ if [[ "$TERM" == screen* ]]; then
|
|||
function screen_set()
|
||||
{
|
||||
# set the tab window title (%t) for screen
|
||||
print -nR $'\033k'$1$'\033'\\\
|
||||
print -nR $'\033k'"$1"$'\033'\\\
|
||||
|
||||
# set hardstatus of tab window (%h) for screen
|
||||
print -nR $'\033]0;'$2$'\a'
|
||||
print -nR $'\033_'"$2"$'\033'\\\
|
||||
}
|
||||
# called by zsh before executing a command
|
||||
function preexec()
|
||||
|
|
@ -42,8 +42,8 @@ if [[ "$TERM" == screen* ]]; then
|
|||
local -a cmd; cmd=(${(z)3}) # the command string
|
||||
if [ "$TITLE" != "" ]
|
||||
then
|
||||
eval "tab_title=$TITLE:$TAB_TITLE_EXEC"
|
||||
eval "tab_hardstatus=$TITLE:$TAB_HARDSTATUS_EXEC"
|
||||
eval "tab_title=\"$TITLE\":$TAB_TITLE_EXEC"
|
||||
eval "tab_hardstatus=\"$TITLE\":$TAB_HARDSTATUS_EXEC"
|
||||
else
|
||||
eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_EXEC"
|
||||
eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_EXEC"
|
||||
|
|
@ -55,8 +55,8 @@ if [[ "$TERM" == screen* ]]; then
|
|||
{
|
||||
if [ "$TITLE" != "" ]
|
||||
then
|
||||
eval "tab_title=$TITLE:$TAB_TITLE_PROMPT"
|
||||
eval "tab_hardstatus=$TITLE:$TAB_HARDSTATUS_PROMPT"
|
||||
eval "tab_title=\"$TITLE\":$TAB_TITLE_PROMPT"
|
||||
eval "tab_hardstatus=\"$TITLE\":$TAB_HARDSTATUS_PROMPT"
|
||||
else
|
||||
eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_PROMPT"
|
||||
eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_PROMPT"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue