3

For some reason, the yellow color color (ANSI Esc. code 33), appears for normal fonts as orange/brownish in my terminal (yakuake, konsole). For example, the command echo -e "\\033[33mhello world\\033[0m" returns an orange/brownish text hello world. Bold yellow, however, appears as expected. In the following, small, sccreenshot, the hostname is on top of a yellow background, which is the escape code \e[43m.

<code>echo -e</code> examples in the terminal

Another example, is the output of the command terminal-colors -o. It gives the output as seen in the larger screenshot below.

<code>terminal-colors -o</code>

I work with Funtoo-Linux and KDE. Though I have set some transparency (23%) I don't think this is a misleading of the eye issue. How can I troubleshoot this?

Relevant details

  • In Funtoo, the default bashrc, under /etc/bash/, contains:

    38:# Set colorful PS1 only on colorful terminals.
    63:            PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\]'
    65:            PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
    
  • echo $TERM returns xterm-256color

  • echo $PS1 is set to

    \[\e[0;30m\e[45m\] \u \[\e[0;35m\e[43m\] \[\e[0;30m\e[43m\]@\H \[\e[0;33m\]\[\e[0;32m\] \w\a\[\e[0;32m\] → \[\e[0m\]
    
  • the font used is irrelevant, as I have tried various ones
  • if useful, dircolors returns:

    LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:';
    

    export LS_COLORS

  • strangely, there is a table in the post BASH Shell: Change The Color of My Shell Prompt Under Linux or UNIX, which describes the color code 0;33 as Brown!


Update

Perhaps more useful for 256 colors, is the output of terminal-colors -cn (or other parameters). In the screenshot below, the yellow background has been correctly set:

enter image description here

1

The 8 standard colors numbered 1 through 8 officially contains primary and secondary colors (black, red, green, yellow, blue, magenta, cyan, white), but there is considerable variation: many terminals don't show primary colors, but instead show variants thereof. Yours shows the following RGB values:

383a3a ff3950 00b226 c56227 022bab fd16de 00b5ae aeb2b3

while nominal values with roughly similar brightness would be

000000 a00000 00a000 808000 0000a0 800080 008080 808080

There is considerable variation on all colors, not just on the one for which you choose to give a different name. Yellow does however have a tradition of being made more brownish because actual yellow tends to be poorly contrasted on a white background (and sometimes blue is made more grayish to be better-contrasted on a black background).

You can change the colors used by Konsole if they bother you. In the profile settings, go to the “Appearance” tab and either choose from one of the profiles or make up your own. You can even make the colors resemble nothing like the standard ones if you wish, though that may be confusing at times.

  • See also comments above (links to ANSI escape code -- relevant? – Nikos Alexandris Mar 27 '15 at 7:40
  • Curious: where did you extract "my" RGB values from? The screenshot? – Nikos Alexandris Mar 27 '15 at 7:43
  • @NikosAlexandris Yes, specifically the section on colors. As you can see, there's quite a broad variation in the “yellow” color, ranging from brown to orange to yellow-green (to my perception). I extracted your RGB values from the screenshot. – Gilles Mar 27 '15 at 8:28
  • Respect. No wonder the 253K. – Nikos Alexandris Mar 27 '15 at 9:19
  • My prompt received its yellow now :-): echo $PS1 \[\033[s\]\[\e[0;38;5;232m\[\[\e[48;5;5m\] \u \[\e[0;38;5;5m\[\[\e[48;5;11m\] \[\e[0;38;5;232m\[\[\e[48;5;11m\]@\H \[\e[0;38;5;11m\[\[\]\[\] \[\e[38;5;117m\]\w\a →\[\] – Nikos Alexandris Mar 27 '15 at 11:24
0

To troubleshoot this, if you're using X11/Xorg, I would start by requesting xrdb:

xrdb -query

It will display all non-default values.

~/.Xresources or ~/.Xdefaults files can customize your terminal colors. It can be customized in a specific application file in /usr/share/X11/app-defaults/ directory as well.

For instance, on my box where I have my own ~/.Xresources in order to change cyan color to purple in my Xterm, xrdb -query tells me:

xterm*color6:   purple3
  • 1
    This would be a correct answer for xterm, but the asker isn't using xterm, he's using konsole, which doesn't use X resources. – Gilles Mar 26 '15 at 23:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.