13

So I have screen compiled with 256 colors, running on Konsole in 256 color mode. If start screen, the TERM is set to "screen". If I manually export the TERM to screen-256color everything works beautifully.

I have two questions. The first is why screen is setting the TERM to "screen" instead of "screen-256color" when it supports this? The second is, if I have the following line in my .screenrc file

term    screen-256color

why is screen still not setting my term?

Additional information: I'm running Screen version 4.00.03jw4 (FAU) 2-May-06 on Kubuntu Jaunty amd64

Zxaos
  • 476
  • 3
  • 6
  • 18
  • term screen-256color works here with screen version 4.00.03jw4 (FAU) 2-May-06 on Debian testing. More details, please. – derobert Jun 05 '09 at 05:13
  • I appear to be running the same version of screen as you. I wonder if it's a terminfo problem? – Zxaos Jun 05 '09 at 16:26
  • Yes, most likely your terminfo does not have screen-256color, so screen correctly refuses to set terminfo to that, since the apps you'd run under it would fail – njsf Jun 06 '09 at 03:02
  • If I set it by hand things work and 'tput colors' echoes the correct number of colors. At any rate, I don't know enough about terminfo to fix this, then. Any suggestions? – Zxaos Jun 06 '09 at 04:45
  • If tput works, then you have the terminfo records. – derobert Jun 07 '09 at 00:50

3 Answers3

10

Screen always sets TERM to "screen" by default. Nevertheless, you should realize that a TERM=screen still supports colors.

I tested adding "term screen-256color" to my ~/.screenrc and it does set the TERM to "screen-256color" for me (Screen version 4.00.03 (FAU) 23-Oct-06). Is it possible that screen is looking in the wrong place for your .screenrc file?

You can also try launching screen as follows:

screen -T screen-256color

See if that works.

yadimka
  • 154
  • 2
  • Specifying the terminal by hand launches screen with the correct term. (The reason I care is that Vim doesn't seem to want to play nice, color wise, with screen instead of screen-256color unless I force it into 256 color mode. As to if screen is looking for my .screenrc in the wrong place, how would I check that? – Zxaos Jun 09 '09 at 00:40
  • Thanks, your suggestion lead me to figuring out that it was the installed screen profiles which were messing with the parsing of my .screenrc . – Zxaos Jun 09 '09 at 00:50
5

The issue actually turned out to be some conflicting screen-profiles that were installed on my machine. Although they sourced my local .screenrc, they prevented me from setting the term. Disabling the use of profiles (I renamed the symlink ~/.screen-profiles to something else) caused screen to read the term as set in my .screenrc file.

Zxaos
  • 476
  • 3
  • 6
  • 18
0

Add in your '~/.screenrc':

attrcolor b ".I"
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'
defbce "on"
drybjed
  • 544
  • 2
  • 7
  • Nope. The TERM variable is still set to 'screen' even when starting screen with that present in the .screenrc – Zxaos Jun 05 '09 at 16:23