LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Software (https://www.linuxquestions.org/questions/linux-software-2/)
-   -   gnu screen won't do 256 colors with xterm, rxvt, mrxvt (https://www.linuxquestions.org/questions/linux-software-2/gnu-screen-wont-do-256-colors-with-xterm-rxvt-mrxvt-583880/)

slackware-elf 09-11-2007 09:43 AM

gnu screen won't do 256 colors with xterm, rxvt, mrxvt
 
Hi folks!

I've just started using GNU screen -- wow! Only problem is, I can't figure out how to get 256 color support. I'm running it on mrxvt, and when I "tic mrxvt.terminfo" as recommended, I do get 256 colors on mrxvt. But within screen, no joy.

Here's my .screenrc. It's basically the default Slackware .screenrc, plus a few suggested lines I insered and then commented out when they didn't work. I wouldn't mind switching to another terminal if necessary to get this to work--I really want 256 colors on Vim within screen--but neither xterm nor rxvt seemed to work either.

Thanks in advance for any help!

Code:

#
# Example of a user's .screenrc file
#

# This is how one can set a reattach password:
# password ODSJQf.4IJN7E    # "1234"

# no annoying audible bell, please
vbell on

# detach on hangup
autodetach on

# don't display the copyright page
startup_message off

# emulate .logout message
pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended."

# advertise hardstatus support to $TERMCAP
# termcapinfo  * '' 'hs:ts=\E_:fs=\E\\:ds=\E_\E\\'

# make the shell in every window a login shell
#shell -$SHELL

# autoaka testing
# shellaka '> |tcsh'
# shellaka '$ |sh'

# set every new windows hardstatus line to somenthing descriptive
# defhstatus "screen: ^En (^Et)"

defscrollback 1000

# don't kill window after the process died
# zombie "^["

# enable support for the "alternate screen" capability in all windows
# altscreen on

################
#
# xterm tweaks
#

#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 not work anymore.
termcap  xterm hs@:cs=\E[%i%d;%dr:im=\E[4h:ei=\E[4l
terminfo xterm hs@:cs=\E[%i%p1%d;%p2%dr:im=\E[4h:ei=\E[4l

#80/132 column switching must be enabled for ^AW to work
#change init sequence to not switch width
termcapinfo  xterm Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l

# Make the output buffer large for (fast) xterms.
#termcapinfo xterm* OL=10000
termcapinfo xterm* OL=100

# tell screen that xterm can switch to dark background and has function
# keys.
termcapinfo xterm 'VR=\E[?5h:VN=\E[?5l'
termcapinfo xterm 'k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~'
termcapinfo xterm 'kh=\EOH:kI=\E[2~:kD=\E[3~:kH=\EOF:kP=\E[5~:kN=\E[6~'

# special xterm hardstatus: use the window title.
termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'

#terminfo xterm 'vb=\E[?5h$<200/>\E[?5l'
termcapinfo xterm 'vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l'

# emulate part of the 'K' charset
termcapinfo  xterm 'XC=K%,%\E(B,[\304,\\\\\326,]\334,{\344,|\366,}\374,~\337'

# xterm-52 tweaks:
# - uses background color for delete operations
termcapinfo xterm* be

################
#
# wyse terminals
#

#wyse-75-42 must have flow control (xo = "terminal uses xon/xoff")
#essential to have it here, as this is a slow terminal.
termcapinfo wy75-42 xo:hs@

# New termcap sequences for cursor application mode.
termcapinfo wy* CS=\E[?1h:CE=\E[?1l:vi=\E[?25l:ve=\E[?25h:VR=\E[?5h:VN=\E[?5l:cb=\E[1K:CD=\E[1J

################
#
# other terminals
#

# make hp700 termcap/info better
termcapinfo  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@'

# Extend the vt100 desciption by some sequences.
termcap  vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC
terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC
termcapinfo linux C8
# old rxvt versions also need this
# termcapinfo rxvt C8

#BILL: trying to fix rxvt
#termcap  xterm 'AF=\E[3%dm:AB=\E[4%dm'
#terminfo xterm 'AF=\E[3%p1%dm:AB=\E[4%p1%dm'


###############
# # 256 colours #
#  ###############
#
#.. __: http://frexx.de/xterm-256-notes/
#

# terminfo and termcap for nice 256 color terminal
# allow bold colors - necessary for some reason
#attrcolor b ".I"
# tell screen how to set colors. AB=background, AF=foreground
#termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
# erase background with current bg color
#defbce "on"

################
#
# keybindings
#

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

# Yet another hack:
# Prepend/append register [/] to the paste if ^a^] is pressed.
# This lets me have autoindent mode in vi.
register [ "\033:se noai\015a"
register ] "\033:se ai\015a"
bind ^] paste [.]

################
#
# default windows
#

# BILL modifications:
#
#screen -t bash 0
#screen -t mail 1 mutt
screen -t vim 2 vim
#screen -t browser 3 elinks
#screen -t music 4 cmus
#screen -t mc 5 mc

# BILL: I don't care for ^A, even with CapsLock.
bindkey ^H command

bind . select bash
bind , select vim


# screen -t 40 2 rlogin server

# caption always "%3n %t%? @%u%?%? [%h]%?%=%c"
# hardstatus alwaysignore
# hardstatus alwayslastline "%Lw"

# bind = resize =
# bind + resize +1
# bind - resize -1
# bind _ resize max
#
# defnonblock 1
# blankerprg rain -d 100
# idle 30 blanker


Tinkster 09-12-2007 07:38 PM

Never felt the urge to see colours in screen, but did a quick google anyway ;}


http://frexx.de/xterm-256-notes/

Does that help?



Cheers,
Tink

slackware-elf 09-12-2007 10:47 PM

Turned out to be a simple line in .vimrc!
 
Thanks, Tinkster!

When I saw that site, i had an eerie feeling I'd seen it before, but whether or not I had, this time I finally read it properly. On my system, it turned out to be a mere tweak to Vim. Somehow, mrxvt was smart enough to start Vim in 256 color mode, but in screen, I had to tell Vim to do 256 color like so:

vim -T xterm-256color

However, I had also neglected to check the Vim Tips. And this is truly eerie; I've set up my bash to show a VimTip every time I start a new shell (which is a second or so of waiting, actually), and _right after_ I got vim working under screen, what tip should pop up but:

http://www.vim.org/tips/tip.php?tip_id=1312

Which boils down to putting this line in .vimrc:

set t_Co=256

That did the trick. So you can set the terminal in .vimrc, or use -T (or set an alias to use -T from the command line).

On a weird side note: the two perl scripts on that link you gave to test for 256 color support ONLY worked under screen. On an xterm, rxvt, and mrxvt _without_ screen, they hung. But screen on mrxvt works (I didn't test screen on the other terminals). I'm afraid I may have messed something up in a desperate arcane tweak. But it doesn't matter much, since I want to use screen anyhow, I only mention it in case anyone else ever has a similar problem. No solution, I just noticed the same weirdness.

Thanks again!
Bill Powell


All times are GMT -5. The time now is 11:02 AM.