- Merge sunbather dark/light into one background-aware color scheme - Fold uninstall.sh into install.sh as a subcommand; drop clone logic - Inline bash_tools/ helpers; remove fct and odict - Remove TPM, tmux-sensible, and tmux-fuzzback; tmux has no plugins now - Remove vim-repeat, vim-fugitive, vim-gitgutter, vim-tmux-navigator, and moonfly; everforest is the default dark theme - Fetch vim-plug via git instead of curl; require git, not curl - Guard termguicolors on Windows consoles without VT support and set nomore before the vimrc loads so headless installs cannot hang - Fall back to sunbather when a color scheme fails to load, without overwriting the saved preference - Append config/vim to runtimepath so netrw stops writing into the repo - Fix .editorconfig Python indent; trim .gitignore; update CI and README Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NBfsAH6iJg9inkNLKq11YC
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
let s:path = get(g:, 'vim_dir', expand('~/.vim')) . '/theme.json'
|
||||
let s:defaults = {
|
||||
\ 'background': 'dark',
|
||||
\ 'dark': {'theme': 'moonfly', 'transparent': v:false},
|
||||
\ 'dark': {'theme': 'everforest', 'transparent': v:false},
|
||||
\ 'light': {'theme': 'PaperColor', 'transparent': v:false}}
|
||||
let s:config = deepcopy(s:defaults)
|
||||
let s:applying = v:false
|
||||
@@ -60,11 +60,15 @@ endfunction
|
||||
|
||||
function! theme#apply(name) abort
|
||||
let l:background = &background
|
||||
let l:name = s:Available(a:name) ? a:name
|
||||
\ : (l:background ==# 'dark' ? 'sunbather_dark' : 'sunbather_light')
|
||||
let l:name = s:Available(a:name) ? a:name : 'sunbather'
|
||||
let s:applying = v:true
|
||||
try
|
||||
execute 'colorscheme ' . l:name
|
||||
catch
|
||||
" A scheme that fails to load (for example, one that needs true color in a
|
||||
" terminal without it) must not leave Vim without a color scheme. The
|
||||
" saved preference is kept so the next capable session restores it.
|
||||
colorscheme sunbather
|
||||
finally
|
||||
let s:applying = v:false
|
||||
endtry
|
||||
@@ -100,9 +104,6 @@ function! theme#onColorScheme(name) abort
|
||||
if s:applying
|
||||
return
|
||||
endif
|
||||
if a:name !~# '^sunbather_' && index(['everforest', 'moonfly', 'PaperColor'], a:name) < 0
|
||||
return
|
||||
endif
|
||||
let s:config.background = &background
|
||||
let s:config[&background].theme = a:name
|
||||
call s:ApplyTransparency()
|
||||
|
||||
@@ -15,7 +15,7 @@ if exists('syntax on')
|
||||
syntax reset
|
||||
endif
|
||||
|
||||
let g:colors_name='sunbather_dark'
|
||||
let g:colors_name='sunbather'
|
||||
|
||||
let s:black = { "gui": "#000000", "cterm": "232" }
|
||||
let s:medium_gray = { "gui": "#767676", "cterm": "243" }
|
||||
@@ -45,19 +45,31 @@ let s:yellow = { "gui": "#F3E430", "cterm": "11" }
|
||||
let s:light_yellow = { "gui": "#ffff87", "cterm": "228" }
|
||||
let s:dark_yellow = { "gui": "#A89C14", "cterm": "3" }
|
||||
|
||||
let s:background = 'dark'
|
||||
|
||||
let s:bg = s:black
|
||||
let s:bg_subtle = s:lighter_black
|
||||
let s:bg_very_subtle = s:subtle_black
|
||||
let s:norm = s:lighter_gray
|
||||
let s:norm_subtle = s:medium_gray
|
||||
let s:pink = s:light_pink
|
||||
let s:cyan = s:light_cyan
|
||||
let s:green = s:light_green
|
||||
let s:red = s:light_red
|
||||
let s:visual = s:light_pink
|
||||
let s:yellow = s:light_yellow
|
||||
if &background ==# 'light'
|
||||
let s:bg = s:actual_white
|
||||
let s:bg_subtle = s:light_gray
|
||||
let s:bg_very_subtle = s:lightest_gray
|
||||
let s:norm = s:light_black
|
||||
let s:norm_subtle = s:medium_gray
|
||||
let s:pink = s:dark_pink
|
||||
let s:cyan = s:dark_cyan
|
||||
let s:green = s:dark_green
|
||||
let s:red = s:dark_red
|
||||
let s:visual = s:dark_pink
|
||||
let s:yellow = s:dark_yellow
|
||||
else
|
||||
let s:bg = s:black
|
||||
let s:bg_subtle = s:lighter_black
|
||||
let s:bg_very_subtle = s:subtle_black
|
||||
let s:norm = s:lighter_gray
|
||||
let s:norm_subtle = s:medium_gray
|
||||
let s:pink = s:light_pink
|
||||
let s:cyan = s:light_cyan
|
||||
let s:green = s:light_green
|
||||
let s:red = s:light_red
|
||||
let s:visual = s:light_pink
|
||||
let s:yellow = s:light_yellow
|
||||
endif
|
||||
|
||||
" https://github.com/noahfrederick/vim-hemisu/
|
||||
function! s:h(group, style)
|
||||
@@ -74,7 +86,6 @@ endfunction
|
||||
call s:h("Normal", {"bg": s:bg, "fg": s:norm})
|
||||
|
||||
" restore &background's value in case changing Normal changed &background (:help :hi-normal-cterm)
|
||||
execute "set background=" . s:background
|
||||
|
||||
call s:h("Cursor", {"bg": s:pink, "fg": s:norm })
|
||||
call s:h("Comment", {"fg": s:bg_subtle, "gui": "italic"})
|
||||
@@ -1,214 +0,0 @@
|
||||
" Name: sunbather.vim
|
||||
" Version: 0.1.0
|
||||
" Maintainer: github.com/nikolvs
|
||||
" License: The MIT License (MIT)
|
||||
"
|
||||
" A minimal pink colorscheme for Vim.
|
||||
"
|
||||
" Forked from paramount:
|
||||
" https://github.com/owickstrom/vim-colors-paramount
|
||||
"
|
||||
"""
|
||||
hi clear
|
||||
|
||||
if exists('syntax on')
|
||||
syntax reset
|
||||
endif
|
||||
|
||||
let g:colors_name='sunbather_light'
|
||||
|
||||
let s:black = { "gui": "#000000", "cterm": "232" }
|
||||
let s:medium_gray = { "gui": "#767676", "cterm": "243" }
|
||||
let s:white = { "gui": "#F1F1F1", "cterm": "15" }
|
||||
let s:actual_white = { "gui": "#FFFFFF", "cterm": "231" }
|
||||
let s:subtle_black = { "gui": "#121212", "cterm": "233" }
|
||||
let s:light_black = { "gui": "#262626", "cterm": "235" }
|
||||
let s:lighter_black = { "gui": "#4E4E4E", "cterm": "239" }
|
||||
let s:light_gray = { "gui": "#A8A8A8", "cterm": "248" }
|
||||
let s:lighter_gray = { "gui": "#C6C6C6", "cterm": "251" }
|
||||
let s:lightest_gray = { "gui": "#EEEEEE", "cterm": "255" }
|
||||
let s:dark_pink = { "gui": "#ff5f87", "cterm": "204" }
|
||||
let s:light_pink = { "gui": "#d75f87", "cterm": "168" }
|
||||
let s:dark_red = { "gui": "#C30771", "cterm": "1" }
|
||||
let s:light_red = { "gui": "#E32791", "cterm": "1" }
|
||||
let s:orange = { "gui": "#D75F5F", "cterm": "167" }
|
||||
let s:darker_blue = { "gui": "#005F87", "cterm": "18" }
|
||||
let s:dark_blue = { "gui": "#008EC4", "cterm": "32" }
|
||||
let s:blue = { "gui": "#20BBFC", "cterm": "12" }
|
||||
let s:light_blue = { "gui": "#b6d6fd", "cterm": "153" }
|
||||
let s:dark_cyan = { "gui": "#20A5BA", "cterm": "6" }
|
||||
let s:light_cyan = { "gui": "#4FB8CC", "cterm": "14" }
|
||||
let s:dark_green = { "gui": "#10A778", "cterm": "2" }
|
||||
let s:light_green = { "gui": "#5FD7A7", "cterm": "10" }
|
||||
let s:light_purple = { "gui": "#a790d5", "cterm": "140" }
|
||||
let s:yellow = { "gui": "#F3E430", "cterm": "11" }
|
||||
let s:light_yellow = { "gui": "#ffff87", "cterm": "228" }
|
||||
let s:dark_yellow = { "gui": "#A89C14", "cterm": "3" }
|
||||
|
||||
let s:background = 'light'
|
||||
|
||||
let s:bg = s:actual_white
|
||||
let s:bg_subtle = s:light_gray
|
||||
let s:bg_very_subtle = s:lightest_gray
|
||||
let s:norm = s:light_black
|
||||
let s:norm_subtle = s:medium_gray
|
||||
let s:pink = s:dark_pink
|
||||
let s:cyan = s:dark_cyan
|
||||
let s:green = s:dark_green
|
||||
let s:red = s:dark_red
|
||||
let s:visual = s:dark_pink
|
||||
let s:yellow = s:dark_yellow
|
||||
|
||||
" https://github.com/noahfrederick/vim-hemisu/
|
||||
function! s:h(group, style)
|
||||
execute "highlight" a:group
|
||||
\ "guifg=" (has_key(a:style, "fg") ? a:style.fg.gui : "NONE")
|
||||
\ "guibg=" (has_key(a:style, "bg") ? a:style.bg.gui : "NONE")
|
||||
\ "guisp=" (has_key(a:style, "sp") ? a:style.sp.gui : "NONE")
|
||||
\ "gui=" (has_key(a:style, "gui") ? a:style.gui : "NONE")
|
||||
\ "ctermfg=" (has_key(a:style, "fg") ? a:style.fg.cterm : "NONE")
|
||||
\ "ctermbg=" (has_key(a:style, "bg") ? a:style.bg.cterm : "NONE")
|
||||
\ "cterm=" (has_key(a:style, "cterm") ? a:style.cterm : "NONE")
|
||||
endfunction
|
||||
|
||||
call s:h("Normal", {"bg": s:bg, "fg": s:norm})
|
||||
|
||||
" restore &background's value in case changing Normal changed &background (:help :hi-normal-cterm)
|
||||
execute "set background=" . s:background
|
||||
|
||||
call s:h("Cursor", {"bg": s:pink, "fg": s:norm })
|
||||
call s:h("Comment", {"fg": s:bg_subtle, "gui": "italic"})
|
||||
|
||||
call s:h("Constant", {"fg": s:pink})
|
||||
hi! link Character Constant
|
||||
hi! link Number Constant
|
||||
hi! link Boolean Constant
|
||||
hi! link Float Constant
|
||||
hi! link String Constant
|
||||
|
||||
"call s:h("Identifier", {"fg": s:dark_blue})
|
||||
hi! link Identifier Normal
|
||||
hi! link Function Identifier
|
||||
|
||||
call s:h("Statement", {"fg": s:norm_subtle})
|
||||
hi! link Conditonal Statement
|
||||
hi! link Repeat Statement
|
||||
hi! link Label Statement
|
||||
hi! link Keyword Statement
|
||||
hi! link Exception Statement
|
||||
|
||||
call s:h("Operator", {"fg": s:norm, "cterm": "bold", "gui": "bold"})
|
||||
|
||||
call s:h("PreProc", {"fg": s:norm_subtle})
|
||||
hi! link Include PreProc
|
||||
hi! link Define PreProc
|
||||
hi! link Macro PreProc
|
||||
hi! link PreCondit PreProc
|
||||
|
||||
call s:h("Type", {"fg": s:norm})
|
||||
hi! link StorageClass Type
|
||||
hi! link Structure Type
|
||||
hi! link Typedef Type
|
||||
|
||||
call s:h("Special", {"fg": s:norm_subtle, "gui": "italic"})
|
||||
hi! link SpecialChar Special
|
||||
hi! link Tag Special
|
||||
hi! link Delimiter Special
|
||||
hi! link SpecialComment Special
|
||||
hi! link Debug Special
|
||||
|
||||
call s:h("Underlined", {"fg": s:norm, "gui": "underline", "cterm": "underline"})
|
||||
call s:h("Ignore", {"fg": s:bg})
|
||||
call s:h("Error", {"fg": s:actual_white, "bg": s:red, "cterm": "bold"})
|
||||
call s:h("Todo", {"fg": s:pink, "gui": "underline", "cterm": "underline"})
|
||||
call s:h("SpecialKey", {"fg": s:light_green})
|
||||
call s:h("NonText", {"fg": s:medium_gray})
|
||||
call s:h("Directory", {"fg": s:dark_blue})
|
||||
call s:h("ErrorMsg", {"fg": s:red})
|
||||
call s:h("IncSearch", {"bg": s:yellow, "fg": s:light_black})
|
||||
call s:h("Search", {"bg": s:light_green, "fg": s:light_black})
|
||||
call s:h("MoreMsg", {"fg": s:medium_gray, "cterm": "bold", "gui": "bold"})
|
||||
hi! link ModeMsg MoreMsg
|
||||
call s:h("LineNr", {"fg": s:bg_subtle})
|
||||
call s:h("CursorLineNr", {"fg": s:pink, "bg": s:bg_very_subtle})
|
||||
call s:h("Question", {"fg": s:red})
|
||||
call s:h("StatusLine", {"bg": s:bg_very_subtle})
|
||||
call s:h("StatusLineNC", {"bg": s:bg_very_subtle, "fg": s:medium_gray})
|
||||
call s:h("VertSplit", {"bg": s:bg_very_subtle, "fg": s:bg_very_subtle})
|
||||
call s:h("Title", {"fg": s:dark_blue})
|
||||
call s:h("Visual", {"fg": s:norm, "bg": s:visual})
|
||||
call s:h("VisualNOS", {"bg": s:bg_subtle})
|
||||
call s:h("WarningMsg", {"fg": s:yellow})
|
||||
call s:h("WildMenu", {"fg": s:bg, "bg": s:norm})
|
||||
call s:h("Folded", {"fg": s:medium_gray})
|
||||
call s:h("FoldColumn", {"fg": s:bg_subtle})
|
||||
call s:h("DiffAdd", {"fg": s:green})
|
||||
call s:h("DiffDelete", {"fg": s:red})
|
||||
call s:h("DiffChange", {"fg": s:dark_yellow})
|
||||
call s:h("DiffText", {"fg": s:dark_blue})
|
||||
call s:h("SignColumn", {"fg": s:light_green})
|
||||
|
||||
|
||||
if has("gui_running")
|
||||
call s:h("SpellBad", {"gui": "underline", "sp": s:red})
|
||||
call s:h("SpellCap", {"gui": "underline", "sp": s:light_green})
|
||||
call s:h("SpellRare", {"gui": "underline", "sp": s:light_purple})
|
||||
call s:h("SpellLocal", {"gui": "underline", "sp": s:dark_green})
|
||||
else
|
||||
call s:h("SpellBad", {"cterm": "underline", "fg": s:red})
|
||||
call s:h("SpellCap", {"cterm": "underline", "fg": s:light_green})
|
||||
call s:h("SpellRare", {"cterm": "underline", "fg": s:light_purple})
|
||||
call s:h("SpellLocal", {"cterm": "underline", "fg": s:dark_green})
|
||||
endif
|
||||
|
||||
call s:h("Pmenu", {"fg": s:norm, "bg": s:bg_very_subtle})
|
||||
call s:h("PmenuSel", {"fg": s:subtle_black, "bg": s:pink})
|
||||
call s:h("PmenuSbar", {"fg": s:norm, "bg": s:bg_subtle})
|
||||
call s:h("PmenuThumb", {"fg": s:norm, "bg": s:bg_subtle})
|
||||
call s:h("TabLine", {"fg": s:norm, "bg": s:bg_very_subtle})
|
||||
call s:h("TabLineSel", {"fg": s:subtle_black, "bg": s:pink, "gui": "bold", "cterm": "bold"})
|
||||
call s:h("TabLineFill", {"fg": s:norm, "bg": s:bg_very_subtle})
|
||||
call s:h("CursorColumn", {"bg": s:bg_very_subtle})
|
||||
call s:h("CursorLine", {"bg": s:bg_very_subtle})
|
||||
call s:h("ColorColumn", {"bg": s:bg_subtle})
|
||||
|
||||
call s:h("MatchParen", {"bg": s:bg_subtle, "fg": s:norm})
|
||||
call s:h("qfLineNr", {"fg": s:medium_gray})
|
||||
|
||||
call s:h("htmlH1", {"bg": s:bg, "fg": s:norm})
|
||||
call s:h("htmlH2", {"bg": s:bg, "fg": s:norm})
|
||||
call s:h("htmlH3", {"bg": s:bg, "fg": s:norm})
|
||||
call s:h("htmlH4", {"bg": s:bg, "fg": s:norm})
|
||||
call s:h("htmlH5", {"bg": s:bg, "fg": s:norm})
|
||||
call s:h("htmlH6", {"bg": s:bg, "fg": s:norm})
|
||||
|
||||
" Syntastic
|
||||
call s:h("SyntasticWarningSign", {"fg": s:yellow})
|
||||
call s:h("SyntasticWarning", {"bg": s:yellow, "fg": s:black, "gui": "bold", "cterm": "bold"})
|
||||
call s:h("SyntasticErrorSign", {"fg": s:red})
|
||||
call s:h("SyntasticError", {"bg": s:red, "fg": s:white, "gui": "bold", "cterm": "bold"})
|
||||
|
||||
" which-key.nvim
|
||||
call s:h("WhichKey", {"bg": s:bg, "fg": s:pink, "gui": "bold", "cterm": "bold"})
|
||||
call s:h("WhichKeyDesc", {"bg": s:bg, "fg": s:norm_subtle, "gui": "bold", "cterm": "bold"})
|
||||
call s:h("WhichKeySeparator", {"bg": s:bg, "fg": s:norm, "gui": "bold", "cterm": "bold"})
|
||||
call s:h("WhichKeyFloat", {"bg": s:bg})
|
||||
|
||||
hi link WhichKeyGroup WhichKey
|
||||
|
||||
" Neomake
|
||||
hi link NeomakeWarningSign SyntasticWarningSign
|
||||
hi link NeomakeErrorSign SyntasticErrorSign
|
||||
|
||||
" ALE
|
||||
hi link ALEWarningSign SyntasticWarningSign
|
||||
hi link ALEErrorSign SyntasticErrorSign
|
||||
|
||||
" Signify, git-gutter
|
||||
hi link SignifySignAdd LineNr
|
||||
hi link SignifySignDelete LineNr
|
||||
hi link SignifySignChange LineNr
|
||||
hi link GitGutterAdd LineNr
|
||||
hi link GitGutterDelete LineNr
|
||||
hi link GitGutterChange LineNr
|
||||
hi link GitGutterChangeDelete LineNr
|
||||
Reference in New Issue
Block a user