You are not logged in.

#1 2011-04-12 12:30:21

helloworld1
Member
Registered: 2010-12-26
Posts: 72

[SOLVED] urxvt + screen + zsh, title is not displayed correctly

I use urxvt and screen inside it. The screen's  title is set up to display the current program and the window number. However after changing from bash to zsh, it always display "zsh" instead of "vim" or "top" which is currently running.

my screenrc:

#
# This is an example for the global screenrc file.
# You may want to install this file as /usr/local/etc/screenrc.
# Check config.h for the exact location.
#
# Flaws of termcap and standard settings are done here.
#

startup_message off

#defflow on # will force screen to process ^S/^Q

deflogin on
#autodetach off

vbell on
vbell_msg "   Wuff  ----  Wuff!!  "

# all termcap entries are now duplicated as terminfo entries.
# only difference should be the slightly modified syntax, and check for
# terminfo entries, that are already corected in the database.
# 
# G0     we have a SEMI-GRAPHICS-CHARACTER-MODE
# WS    this sequence resizes our window.
# cs    this sequence changes the scrollregion
# hs@    we have no hardware statusline. screen will only believe that
#       there is a hardware status line if hs,ts,fs,ds are all set.
# ts    to statusline
# fs    from statusline
# ds    delete statusline
# al    add one line
# AL    add multiple lines
# dl    delete one line
# DL    delete multiple lines
# ic    insert one char (space)
# IC    insert multiple chars
# nx    terminal uses xon/xoff

termcap  facit|vt100|xterm LP:G0
terminfo facit|vt100|xterm LP:G0

#the vt100 description does not mention "dl". *sigh*
termcap  vt100 dl=5\E[M
terminfo vt100 dl=5\E[M

#facit's "al" / "dl"  are buggy if the current / last line
#contain attributes...
termcap  facit al=\E[L\E[K:AL@:dl@:DL@:cs=\E[%i%d;%dr:ic@
terminfo facit al=\E[L\E[K:AL@:dl@:DL@:cs=\E[%i%p1%d;%p2%dr:ic@

#make sun termcap/info better
termcap  sun 'up=^K:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:IC=\E[%d@:WS=1000\E[8;%d;%dt'
terminfo sun 'up=^K:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC:IC=\E[%p1%d@:WS=\E[8;%p1%d;%p2%dt$<1000>'

#xterm understands both im/ic and doesn't have a status line.
#Note: Do not specify im and ic in the real termcap/info file as
#some programs (e.g. vi) will (no,no, may (jw)) not work anymore.
termcap  xterm|fptwist hs@:cs=\E[%i%d;%dr:im=\E[4h:ei=\E[4l
terminfo xterm|fptwist hs@:cs=\E[%i%p1%d;%p2%dr:im=\E[4h:ei=\E[4l

# Long time I had this in my private screenrc file. But many people
# seem to want it (jw):
# we do not want the width to change to 80 characters on startup:
# on suns, /etc/termcap has :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l:
termcap xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
terminfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

#
# Do not use xterms alternate window buffer. 
# This one would not add lines to the scrollback buffer.
#termcap xterm|xterms|xs ti=\E7\E[?47l
#terminfo xterm|xterms|xs ti=\E7\E[?47l

#make hp700 termcap/info better
termcap  hp700 'Z0=\E[?3h:Z1=\E[?3l:hs:ts=\E[62"p\E[0$~\E[2$~\E[1$}:fs=\E[0}\E[61"p:ds=\E[62"p\E[1$~\E[61"p:ic@'
terminfo hp700 'Z0=\E[?3h:Z1=\E[?3l:hs:ts=\E[62"p\E[0$~\E[2$~\E[1$}:fs=\E[0}\E[61"p:ds=\E[62"p\E[1$~\E[61"p:ic@'

#wyse-75-42 must have defflow control (xo = "terminal uses xon/xoff")
#(nowadays: nx = padding doesn't work, have to use xon/off)
#essential to have it here, as this is a slow terminal.
termcap wy75-42 nx:xo:Z0=\E[?3h\E[31h:Z1=\E[?3l\E[31h
terminfo wy75-42 nx:xo:Z0=\E[?3h\E[31h:Z1=\E[?3l\E[31h

#remove some stupid / dangerous key bindings
bind ^k
#bind L
bind ^\
#make them better
bind \\ quit
bind K kill
bind I login on
bind O login off
bind } history


# Modified Liberty, Display the status on the gnome terminal title 
#hardstatus string "[screen %n%?: %t%?] %h"

termcapinfo xterm*|rxvt*|urxvt* 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
hardstatus string "[screen: %w] %h"

# scrollback buffer size
defscrollback 5000

Solved by adding this to .zshrc

case $TERM in
    xterm*|rxvt*|screen*)
         precmd() { print -Pn "\e]0;%m:%~\a" }
         preexec () { print -Pn "\e]0;$1\a" }
        ;;
esac

Last edited by helloworld1 (2011-04-12 16:25:53)

Offline

#2 2011-04-12 14:07:32

Army
Member
Registered: 2007-12-07
Posts: 1,784

Re: [SOLVED] urxvt + screen + zsh, title is not displayed correctly

I have

defhstatus "^Et"

in my .screenrc. Maybe there's something you like even better, e.g. there's also "^EH" which I used to use. Just checkout what can be done with defhstatus, you'll find what you want.

Offline

#3 2011-04-12 16:26:10

helloworld1
Member
Registered: 2010-12-26
Posts: 72

Re: [SOLVED] urxvt + screen + zsh, title is not displayed correctly

solved. Thank you

Offline

Board footer

Powered by FluxBB