2013-08-18 08:59:49 +08:00
|
|
|
let g:airline#themes#solarized#palette = {}
|
|
|
|
|
2013-08-06 22:25:21 +08:00
|
|
|
function! s:generate()
|
2013-08-07 03:23:07 +08:00
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
" Options
|
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
2013-08-13 14:09:23 +08:00
|
|
|
let s:reduced = get(g:, 'airline_solarized_reduced', 1)
|
|
|
|
let s:background = get(g:, 'airline_solarized_bg', &background)
|
|
|
|
let s:ansi_colors = get(g:, 'solarized_termcolors', 16) != 256 && &t_Co >= 16 ? 1 : 0
|
2013-08-07 03:23:07 +08:00
|
|
|
|
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
" Colors
|
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
" Base colors
|
2013-08-13 14:09:23 +08:00
|
|
|
let s:base03 = {'t': s:ansi_colors ? 8 : 234, 'g': '#002b36'}
|
|
|
|
let s:base02 = {'t': s:ansi_colors ? '0' : 235, 'g': '#073642'}
|
|
|
|
let s:base01 = {'t': s:ansi_colors ? 10 : 240, 'g': '#586e75'}
|
|
|
|
let s:base00 = {'t': s:ansi_colors ? 11 : 241, 'g': '#657b83'}
|
|
|
|
let s:base0 = {'t': s:ansi_colors ? 12 : 244, 'g': '#839496'}
|
|
|
|
let s:base1 = {'t': s:ansi_colors ? 14 : 245, 'g': '#93a1a1'}
|
|
|
|
let s:base2 = {'t': s:ansi_colors ? 7 : 254, 'g': '#eee8d5'}
|
|
|
|
let s:base3 = {'t': s:ansi_colors ? 15 : 230, 'g': '#fdf6e3'}
|
|
|
|
let s:yellow = {'t': s:ansi_colors ? 3 : 136, 'g': '#b58900'}
|
|
|
|
let s:orange = {'t': s:ansi_colors ? 9 : 166, 'g': '#cb4b16'}
|
|
|
|
let s:red = {'t': s:ansi_colors ? 1 : 160, 'g': '#dc322f'}
|
|
|
|
let s:magenta = {'t': s:ansi_colors ? 5 : 125, 'g': '#d33682'}
|
|
|
|
let s:violet = {'t': s:ansi_colors ? 13 : 61 , 'g': '#6c71c4'}
|
|
|
|
let s:blue = {'t': s:ansi_colors ? 4 : 33 , 'g': '#268bd2'}
|
|
|
|
let s:cyan = {'t': s:ansi_colors ? 6 : 37 , 'g': '#2aa198'}
|
|
|
|
let s:green = {'t': s:ansi_colors ? 2 : 64 , 'g': '#859900'}
|
2013-08-07 03:23:07 +08:00
|
|
|
let s:c218 = {'t': 218, 'g': '#ffafd7'}
|
|
|
|
let s:c52 = {'t': 52, 'g': '#5f0000'}
|
|
|
|
|
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
" Simple mappings
|
|
|
|
" NOTE: These are easily tweakable mappings. The actual mappings get
|
|
|
|
" the specific gui and terminal colors from the base color dicts.
|
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
" Normal mode
|
|
|
|
let s:N1 = [s:base2, s:blue, 'bold']
|
|
|
|
if s:background == 'dark'
|
2013-07-28 11:16:18 +08:00
|
|
|
let s:N2 = [s:base2, s:base01, '']
|
2013-07-11 08:28:28 +08:00
|
|
|
let s:N3 = [s:base1, s:base02, '']
|
2013-08-07 03:23:07 +08:00
|
|
|
else
|
2013-07-28 11:16:18 +08:00
|
|
|
let s:N2 = [s:base2, s:base1, '']
|
2013-07-11 08:28:28 +08:00
|
|
|
let s:N3 = [s:base00, s:base2, '']
|
2013-08-07 03:23:07 +08:00
|
|
|
endif
|
|
|
|
let s:NF = [s:orange, s:N3[1], '']
|
|
|
|
if s:reduced
|
2013-07-16 04:09:52 +08:00
|
|
|
if s:background == 'dark'
|
2013-08-18 03:20:40 +08:00
|
|
|
let s:NM = [s:magenta, s:N3[1], '']
|
2013-07-16 04:09:52 +08:00
|
|
|
else
|
2013-08-18 03:20:40 +08:00
|
|
|
let s:NM = [s:magenta, s:N3[1], '']
|
2013-07-16 04:09:52 +08:00
|
|
|
endif
|
2013-08-07 03:23:07 +08:00
|
|
|
else
|
2013-07-16 04:09:52 +08:00
|
|
|
if s:background == 'dark'
|
2013-08-18 03:20:40 +08:00
|
|
|
let s:NM = [s:c218, s:c52, '']
|
2013-07-16 04:09:52 +08:00
|
|
|
else
|
2013-08-18 03:20:40 +08:00
|
|
|
let s:NM = [s:red, s:c218, '']
|
2013-07-16 04:09:52 +08:00
|
|
|
endif
|
2013-08-07 03:23:07 +08:00
|
|
|
endif
|
2013-07-11 11:03:27 +08:00
|
|
|
|
2013-07-16 04:09:52 +08:00
|
|
|
|
2013-08-07 03:23:07 +08:00
|
|
|
" Insert mode
|
|
|
|
let s:I1 = [s:N1[0], s:green, 'bold']
|
|
|
|
if s:reduced
|
2013-07-16 04:09:52 +08:00
|
|
|
let s:I2 = s:N2
|
2013-08-07 03:23:07 +08:00
|
|
|
else
|
2013-07-16 04:09:52 +08:00
|
|
|
let s:I2 = [s:base3, s:base1, '']
|
2013-08-07 03:23:07 +08:00
|
|
|
endif
|
|
|
|
let s:I3 = s:N3
|
|
|
|
let s:IF = s:NF
|
2013-08-18 03:20:40 +08:00
|
|
|
let s:IM = s:NM
|
2013-08-07 03:23:07 +08:00
|
|
|
|
|
|
|
" Visual mode
|
|
|
|
let s:V1 = [s:N1[0], s:orange, 'bold']
|
|
|
|
if s:reduced
|
2013-07-16 04:09:52 +08:00
|
|
|
let s:V2 = s:N2
|
|
|
|
let s:V3 = s:N3
|
2013-08-07 03:23:07 +08:00
|
|
|
else
|
2013-07-16 04:09:52 +08:00
|
|
|
let s:V2 = s:I2
|
|
|
|
let s:V3 = s:I3
|
2013-08-07 03:23:07 +08:00
|
|
|
endif
|
|
|
|
let s:VF = s:NF
|
|
|
|
if s:reduced
|
2013-07-16 04:09:52 +08:00
|
|
|
let s:VM = s:NM
|
2013-08-07 03:23:07 +08:00
|
|
|
else
|
2013-07-16 04:09:52 +08:00
|
|
|
let s:VM = s:IM
|
2013-08-07 03:23:07 +08:00
|
|
|
endif
|
2013-07-08 18:58:34 +08:00
|
|
|
|
2013-08-07 03:23:07 +08:00
|
|
|
" Inactive
|
|
|
|
if s:background == 'dark'
|
2013-07-11 08:28:28 +08:00
|
|
|
let s:IA = [s:base00, s:base02, '']
|
2013-08-07 03:23:07 +08:00
|
|
|
else
|
2013-07-11 08:28:28 +08:00
|
|
|
let s:IA = [s:base1, s:base2, '']
|
2013-08-07 03:23:07 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
" Actual mappings
|
|
|
|
" WARNING: Don't modify this section unless necessary.
|
|
|
|
""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
let s:NFa = [s:NF[0].g, s:NF[1].g, s:NF[0].t, s:NF[1].t, s:NF[2]]
|
|
|
|
let s:IFa = [s:IF[0].g, s:IF[1].g, s:IF[0].t, s:IF[1].t, s:IF[2]]
|
|
|
|
let s:VFa = [s:VF[0].g, s:VF[1].g, s:VF[0].t, s:VF[1].t, s:VF[2]]
|
|
|
|
|
2013-08-18 08:59:49 +08:00
|
|
|
let g:airline#themes#solarized#palette.inactive = airline#themes#generate_color_map(
|
2013-08-07 03:23:07 +08:00
|
|
|
\ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]],
|
|
|
|
\ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]],
|
|
|
|
\ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]],
|
|
|
|
\ s:NFa)
|
|
|
|
|
2013-08-18 08:59:49 +08:00
|
|
|
let g:airline#themes#solarized#palette.normal = airline#themes#generate_color_map(
|
2013-08-07 03:23:07 +08:00
|
|
|
\ [s:N1[0].g, s:N1[1].g, s:N1[0].t, s:N1[1].t, s:N1[2]],
|
|
|
|
\ [s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]],
|
|
|
|
\ [s:N3[0].g, s:N3[1].g, s:N3[0].t, s:N3[1].t, s:N3[2]],
|
|
|
|
\ s:NFa)
|
|
|
|
|
2013-08-18 08:59:49 +08:00
|
|
|
let g:airline#themes#solarized#palette.normal_modified = {
|
2013-08-18 03:20:40 +08:00
|
|
|
\ 'airline_c': [s:NM[0].g, s:NM[1].g,
|
|
|
|
\ s:NM[0].t, s:NM[1].t, s:NM[2]]}
|
2013-08-07 03:23:07 +08:00
|
|
|
|
2013-08-18 08:59:49 +08:00
|
|
|
let g:airline#themes#solarized#palette.insert = airline#themes#generate_color_map(
|
2013-08-07 03:23:07 +08:00
|
|
|
\ [s:I1[0].g, s:I1[1].g, s:I1[0].t, s:I1[1].t, s:I1[2]],
|
|
|
|
\ [s:I2[0].g, s:I2[1].g, s:I2[0].t, s:I2[1].t, s:I2[2]],
|
|
|
|
\ [s:I3[0].g, s:I3[1].g, s:I3[0].t, s:I3[1].t, s:I3[2]],
|
|
|
|
\ s:IFa)
|
|
|
|
|
2013-08-18 08:59:49 +08:00
|
|
|
let g:airline#themes#solarized#palette.insert_modified = {
|
2013-08-18 03:20:40 +08:00
|
|
|
\ 'airline_c': [s:IM[0].g, s:IM[1].g,
|
|
|
|
\ s:IM[0].t, s:IM[1].t, s:IM[2]]}
|
2013-08-07 03:23:07 +08:00
|
|
|
|
2013-08-18 08:59:49 +08:00
|
|
|
let g:airline#themes#solarized#palette.visual = airline#themes#generate_color_map(
|
2013-08-07 03:23:07 +08:00
|
|
|
\ [s:V1[0].g, s:V1[1].g, s:V1[0].t, s:V1[1].t, s:V1[2]],
|
|
|
|
\ [s:V2[0].g, s:V2[1].g, s:V2[0].t, s:V2[1].t, s:V2[2]],
|
|
|
|
\ [s:V3[0].g, s:V3[1].g, s:V3[0].t, s:V3[1].t, s:V3[2]],
|
|
|
|
\ s:VFa)
|
|
|
|
|
2013-08-18 08:59:49 +08:00
|
|
|
let g:airline#themes#solarized#palette.visual_modified = {
|
2013-08-18 03:20:40 +08:00
|
|
|
\ 'airline_c': [s:VM[0].g, s:VM[1].g,
|
|
|
|
\ s:VM[0].t, s:VM[1].t, s:VM[2]]}
|
2013-08-06 22:25:21 +08:00
|
|
|
endfunction
|
|
|
|
|
|
|
|
call s:generate()
|
|
|
|
augroup airline_solarized
|
|
|
|
autocmd!
|
2013-08-18 01:35:06 +08:00
|
|
|
autocmd ColorScheme * call <sid>generate() | call airline#load_theme()
|
2013-08-06 22:25:21 +08:00
|
|
|
augroup END
|