My Terminal Setup
Every so often I tweak my setup which includes the shell, terminal, mutt, Vim and their color configuration. Currently I’m using a setup that I’ve tweaked a couple of years back - it seems I like this one. The color setup between my often used application are all unified, giving everything a consistent look.
As for colors; I like contrast: I have a black background terminal and the main text is white. I’m also using a minimal color scheme, just a few tints here and there. Most of the text is just white.
As I spend most of my time in my editor the color scheme in Vim is leading in how I setup things.
Vim⌗
I’m using the iceberg color scheme with a few tweaks to make the black background work. I currently have added:
au ColorScheme * set cursorline
au ColorScheme * hi ColorColumn ctermbg=235 guibg=#2d2d27
au ColorScheme * hi Normal guifg=#eeeeee ctermfg=255 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
au ColorScheme * hi EndOfBuffer guifg=#eeeeee ctermfg=255 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE
au ColorScheme * hi SpecialKey ctermbg=NONE ctermfg=236 guibg=NONE guifg=#242940
au ColorScheme * hi NonText ctermbg=NONE ctermfg=236 guibg=NONE guifg=#242940
au ColorScheme * hi CursorLine NONE
au ColorScheme * hi Comment cterm=italic gui=italic
au ColorScheme * hi goFunction cterm=italic gui=italic
au ColorScheme * hi goStructDef cterm=italic gui=italic
Now having this scheme in Vim, means I also want this in my shell setup. I’ve basically ported iceberg to my shell, my prompt and mutt.
Shell⌗
I’m using zsh as my shell and configured my prompt (lean prompt to
use the same colors as iceberg which are color242
, color110
and color150
.
Now the other important part is how my files are colored (and it seems zsh uses these colors for
other stuff as well). To configure this you need a dircolors
file, mine is short:
NORMAL 00
FILE 00
RESET
DIR 00;38;5;110
LINK target
MULTIHARDLINK 01
FIFO 00
SOCK 00
DOOR 00
BLK 00
CHR 00
ORPHAN 00
SETUID 00
SETGID 00
CAPABILITY 00
STICKY_OTHER_WRITABLE 01
OTHER_WRITABLE 01
STICKY 01
EXEC 00
.log 00;38;5;242
.bak 00;38;5;242
.aux 00;38;5;242
.lof 00;38;5;242
.lol 00;38;5;242
.lot 00;38;5;242
.out 00;38;5;242
.toc 00;38;5;242
.bbl 00;38;5;242
.blg 00;38;5;242
*~ 00;38;5;242
*# 00;38;5;242
.part 00;38;5;242
.incomplete 00;38;5;242
.swp 00;38;5;242
.tmp 00;38;5;242
.temp 00;38;5;242
.o 00;38;5;242
.pyc 00;38;5;242
.class 00;38;5;242
.cache 00;38;5;242
mutt⌗
A pet peeve of mine is that when I view an email in mutt the coloring should be identical to what
I would see in Vim. This leads to the following colors file (sourced with source ~/.mutt/color
)
color indicator color150 color235
color status default color235
color error color203 color234
color normal default default
color tree color242 default
color message color203 color234
color signature white default
color attachment color150 color235
color search brightyellow red
color tilde blue default
color markers red default
color bold red default
color underline green default
color hdrdefault color243 default # default header lines
color header color140 default "^Subject:"
color index default default ~N
color index color243 default "!~N"
color index color110 default ~Q
color index color140 default "~Q~N"
color index color1 default ~D
color quoted color242 default
color quoted1 color252 default
color quoted2 color242 default
color quoted3 color252 default
color header color150 default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # email
color body color150 default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # email
color body color109 default "(http|ftp|https)://[\-\.\,/+=&%~_:?\#a-zA-Z0-9]+" # URL
Terminal⌗
For my terminal I use the Tango color scheme, but then reset the background to actual black.