From f4644708b07dd52b61a3be0db750259a5bbacead Mon Sep 17 00:00:00 2001 From: Jihang Li Date: Sun, 3 Jun 2018 17:06:32 +0800 Subject: [PATCH] Added solarized_flood theme --- autoload/airline/themes/solarized_flood.vim | 174 ++++++++++++++++++++ doc/airline-themes.txt | 1 + 2 files changed, 175 insertions(+) create mode 100644 autoload/airline/themes/solarized_flood.vim diff --git a/autoload/airline/themes/solarized_flood.vim b/autoload/airline/themes/solarized_flood.vim new file mode 100644 index 0000000..cefe469 --- /dev/null +++ b/autoload/airline/themes/solarized_flood.vim @@ -0,0 +1,174 @@ +" Name: Solarized Flood +" Changed: June 3 2018 +" Maintainer: https://github.com/Neur1n +" Description: +" A vim-airline theme made based on and tested with the Solarized colorscheme +" (https://github.com/frankier/neovim-colors-solarized-truecolor-only) in +" Windows 10 OS and GVim 8.1. +" +" This script is based on the 'dark' theme. The 'inactive' and 'ctrlp' parts +" were not changed. +" +" It is call 'flood' since the statusline and the tabline will be highlighted +" with the 'base03' color in Solarized (dark). If you use the dark Solarized +" colorscheme for Vim and, in Windows, set 'Personalization-Colors-Choose +" your color - Custom color' to be '#002B36' (*), then most parts of the GVim +" window will be 'flooded' with the color. +" NOTE: This will make some components of the airline less distinguishable +" from the others. If anyone has better ideas, I will be happy to take +" a conversation with you. :) + +" (*): Your PC may not support the exact color but it will pick the nearest +" color for you and it should work fine. + + +scriptencoding utf-8 + +" The following color definitions: +" 'hex': originated from official solarized (dark) colors +" 'term': calculated by 'x256' package of Python +" '*': 'term' value that is different with solarized official definition +" '#': picked manually +let s:base03 = {'hex': '#002B36', 'term': 234} " 0, 43, 54 +let s:base02 = {'hex': '#073642', 'term': 235} " 7, 54, 66 +let s:base01 = {'hex': '#586E75', 'term': 242} " 88, 110, 117 * +let s:base00 = {'hex': '#657B83', 'term': 66} " 101, 123, 131 * + +let s:base0 = {'hex': '#839496', 'term': 246} " 131, 148, 150 * +let s:base1 = {'hex': '#93A1A1', 'term': 247} " 147, 161, 161 * +let s:base2 = {'hex': '#EEE8D5', 'term': 254} " 238, 232, 213 +let s:base3 = {'hex': '#FDF6E3', 'term': 230} " 253, 246, 227 + +let s:yellow = {'hex': '#B58900', 'term': 136} " 181, 137, 0 +let s:orange = {'hex': '#CB4B16', 'term': 166} " 203, 75, 22 +let s:red = {'hex': '#DC322F', 'term': 160} " 220, 50, 47 * +let s:magenta = {'hex': '#D33682', 'term': 168} " 211, 54, 130 * +let s:violet = {'hex': '#6C71C4', 'term': 62} " 108, 113, 196 * +let s:blue = {'hex': '#268BD2', 'term': 32} " 38, 139, 210 * +let s:cyan = {'hex': '#2AA198', 'term': 36} " 42, 161, 152 * +let s:green = {'hex': '#859900', 'term': 106} " 133, 153, 0 # + +let g:airline#themes#solarized_flood#palette = {} + + +" ***************************************************************************** +" Normal Mode +" ***************************************************************************** +let s:airline_a_normal = [s:base03['hex'], s:green['hex'], + \ s:base03['term'], s:green['term'], 'italic'] + +let s:airline_b_normal = [s:base1['hex'], s:base03['hex'], + \ s:base1['term'], s:base03['term'], 'italic'] + +let s:airline_c_normal = [s:cyan['hex'], s:base03['hex'], + \ s:cyan['term'], s:base03['term'], 'italic'] + +let g:airline#themes#solarized_flood#palette.normal = + \ airline#themes#generate_color_map(s:airline_a_normal, + \ s:airline_b_normal, + \ s:airline_c_normal) + +let g:airline#themes#solarized_flood#palette.normal['airline_z'] = + \ [s:green['hex'], s:base03['hex'], s:green['term'], s:base03['term'], + \ 'italic'] + +let g:airline#themes#solarized_flood#palette.normal_modified = { + \ 'airline_c': [s:magenta['hex'], s:base03['hex'], + \ s:magenta['term'], s:base03['term'], 'italic'], + \ } + +" ***************************************************************************** +" Insert Mode +" ***************************************************************************** +let s:airline_a_insert = [s:base03['hex'] , s:cyan['hex'], + \ s:base03['term'], s:cyan['term'], 'bold'] + +let s:airline_b_insert = [s:base1['hex'], s:base03['hex'], + \ s:base1['term'], s:base03['term'], 'bold'] + +let s:airline_c_insert = [s:blue['hex'], s:base03['hex'], + \ s:blue['term'], s:base03['term'], 'bold'] + +let g:airline#themes#solarized_flood#palette.insert = + \ airline#themes#generate_color_map(s:airline_a_insert, + \ s:airline_b_insert, + \ s:airline_c_insert) + +let g:airline#themes#solarized_flood#palette.insert['airline_z'] = + \ [s:cyan['hex'], s:base03['hex'], s:cyan['term'], s:base03['term'], + \ 'bold'] + +let g:airline#themes#solarized_flood#palette.insert_modified = { + \ 'airline_c': [s:magenta['hex'], s:base03['hex'], + \ s:magenta['term'], s:base03['term'], 'bold'], + \ } + +let g:airline#themes#solarized_flood#palette.insert_paste = { + \ 'airline_a': [s:base03['hex'], s:orange['hex'], + \ s:base03['term'], s:orange['term'], 'bold'], + \ } + +" ***************************************************************************** +" Replace Mode +" ***************************************************************************** +let g:airline#themes#solarized_flood#palette.replace = + \ copy(g:airline#themes#solarized_flood#palette.insert) + +let g:airline#themes#solarized_flood#palette.replace.airline_a = + \ [s:base03['hex'], s:red['hex'], s:base03['term'], s:red['term'], 'bold'] + +let g:airline#themes#solarized_flood#palette.replace_modified = + \ g:airline#themes#solarized_flood#palette.insert_modified + +" ***************************************************************************** +" Visual Mode +" ***************************************************************************** +let s:airline_a_visual = [s:base03['hex'], s:yellow['hex'], + \ s:base03['term'], s:yellow['term'], 'italic'] + +let s:airline_b_visual = [s:base1['hex'], s:base03['hex'], + \ s:base1['term'], s:base03['term'], 'italic'] + +let s:airline_c_visual = [s:red['hex'], s:base03['hex'], + \ s:red['term'], s:base03['term'], 'italic'] + +let g:airline#themes#solarized_flood#palette.visual = + \ airline#themes#generate_color_map(s:airline_a_visual, + \ s:airline_b_visual, + \ s:airline_c_visual) + +let g:airline#themes#solarized_flood#palette.visual['airline_z'] = + \ [s:yellow['hex'], s:base03['hex'], s:yellow['term'], s:base03['term'], + \ 'italic'] + +let g:airline#themes#solarized_flood#palette.visual_modified = { + \ 'airline_c': [s:magenta['hex'], s:base03['hex'], + \ s:magenta['term'], s:base03['term'], 'italic'], + \ } + +" ***************************************************************************** +" Inactive Mode +" ***************************************************************************** +let s:airline_a_inactive = ['#4e4e4e', '#1c1c1c', 239, 234, ''] +let s:airline_b_inactive = ['#4e4e4e', '#262626', 239, 235, ''] +let s:airline_c_inactive = ['#4e4e4e', '#303030', 239, 236, ''] +let g:airline#themes#solarized_flood#palette.inactive = + \ airline#themes#generate_color_map(s:airline_a_inactive, + \ s:airline_b_inactive, + \ s:airline_c_inactive) +let g:airline#themes#solarized_flood#palette.inactive_modified = { + \ 'airline_c': ['#875faf', '', 97, '', ''] , + \ } + + +let g:airline#themes#solarized_flood#palette.accents = { + \ 'red': [s:red['hex'], '', s:red['term'], ''] + \ } + + +if get(g:, 'loaded_ctrlp', 0) + let g:airline#themes#solarized_flood#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#d7d7ff', '#5f00af', 189, 55 , '' ], + \ [ '#ffffff', '#875fd7', 231, 98 , '' ], + \ [ '#5f00af', '#ffffff', 55 , 231, 'bold']) +endif diff --git a/doc/airline-themes.txt b/doc/airline-themes.txt index 1bf2221..7dac95f 100644 --- a/doc/airline-themes.txt +++ b/doc/airline-themes.txt @@ -118,6 +118,7 @@ Currently this repository contains the following themes: * soda * sol * solarized (|airline-theme-solarized|) + * solarized_flood * term * term_light * tomorrow