Using GNU Screen with 256 colors

19,931

Solution 1

I personally put it in ~/.bashrc

export TERM=xterm-256color

If that does not work, what terminal are you using ?

Solution 2

If you built screen from source you'll need to recompile it with the 256 color flag enabled. Run ./configure --enable-colors256 && make && sudo make install

Share:
19,931

Related videos on Youtube

Scott
Author by

Scott

Updated on September 18, 2022

Comments

  • Scott
    Scott over 1 year

    I recently installed GNU screen on a machine I ssh into. How do I get GNU screen to use 256 colors?

    So far, I've tried adding the following to my .screenrc:

    term screen-256color
    

    and

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

    but neither worked.

    In the login shell, before I start screen, when I run this script, which prints 256 colors, I get normal output. When I use the command tput colors I get the output 8.

    When I start screen and run the script, I get 16 colors mapped to 256 colors - there are large blocks of solid color. When I run tput colors I get 256 (when term screen-256color is in my .screenrc).

    edit: I got it to work - I didn't configure screen with the --enable-colors256 option.

    • Alexei Averchenko
      Alexei Averchenko over 12 years
      What does echo $COLORTERM say?
    • Scott
      Scott over 12 years
      undefined, but I got it to work - I recompiled it with the --enable-colors256 option.
    • Adobe
      Adobe about 12 years
      I have file names in color, but command prompt in black-and-white. Is you prompt in color also? (I mean - after you've re-build it yourself)
  • Matthew
    Matthew almost 11 years
    This is what fixed it for me. Need this in ~/.bashrc and the 3 lines listed in the original question for attrcolor, termcapinfo and defbce in the .screenrc. Thanks.
  • trusktr
    trusktr almost 10 years
    This worked. But adding the other stuff to ~/.screenrc makes everything output escape sequences instead of colors, like some sort of alien terminal.
  • Mostafa Shahverdy
    Mostafa Shahverdy over 9 years
    This was my problem! I recompiled the source code, and added those three lines to my .screenrc!
  • John Von Neumann
    John Von Neumann almost 5 years
    This should be the accepted answer. Fixed an annoying bug I never got round to for ages.
  • Arusekk
    Arusekk about 4 years
    .bashrc is a wrong place for setting TERM variable. See jdebp.eu./Softwares/nosh/guide/TERM.html#MIS-CONFIGURATION