Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

By "alter colors", I mean something like change black from #000000 to #111111, and by "TTY console", I mean what you get when you do Ctrl+Alt+F1 from X11, not a terminal emulator like xterm or urxvt.

I'm using Arch Linux, but I think it has more to do with the program providing the TTY (agetty, I think).

share|improve this question
Terminals don't operate in terms of hex colors - they use color codes like those found in "/etc/shell-colors". – new123456 Jul 23 '11 at 4:55
@new123456 - I don't have any file called "shell-colors" anywhere under / – Austin Hyde Jul 23 '11 at 18:27
Huh. You don't state your distribution here - I am running Zenwalk, so you're distribution may vary. Search for color in bash to get a list of all the escapes. – new123456 Jul 23 '11 at 21:24
@new123456 - I did mention that I was using Arch, and I'm not looking for bash escape sequences for colors, like \e[0;30m for black, I'm looking for a way to customize the actual color for each named color. – Austin Hyde Jul 23 '11 at 23:11
1. Sorry - I look at tags first ;) 2. Just information, not entirely pertinent to the question but pertinent to the domain. – new123456 Jul 24 '11 at 2:16
up vote 0 down vote accepted

The setterm command is what you're looking for.

setterm -foreground black -background white


No, there is no way to alter the names of the colors as you requested. They are not referenced that way anywhere in curses, terminfo, or the terminal itself. You could change the definitions of the color indexes (0-15 i think) by editing the kernel source and recompiling.

share|improve this answer
No, that is not what I'm looking for. I want to change the definitions of colors, not the foreground and background color. – Austin Hyde Jul 23 '11 at 18:22

This is entirely possible and is something I do on my Arch setup.

You could drop something like this in a shell script and have it run at login:

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0151515" # Black
    echo -en "\e]P1ac4142" # Red
    echo -en "\e]PEac4142" # Bright Cyan
    echo -en "\e]PFac4142" # Bright White
    clear # Clear artifacts

The \e]P0 to \e]PF (base 16) are the escape sequences you need to set the 16 (8 half bright, 8 bright) colours. After which you put your desired replacement colour e.g. 151515.

share|improve this answer

This is the best command I know of:

setterm -clear all -foreground green -bold -store

You can only have 8 different color afaict. Maybe some more by using bright in front of basic 8.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .