Yellow appears as brown in konsole

colorskonsoleterminal

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

Best Answer

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.

Related Question