diff --git a/config/nvim/autoload/lightline/colorscheme/lena.vim b/config/nvim/autoload/lightline/colorscheme/lena.vim deleted file mode 100644 index 9ef10a1..0000000 --- a/config/nvim/autoload/lightline/colorscheme/lena.vim +++ /dev/null @@ -1,47 +0,0 @@ -" ============================================================================= -" Filename: autoload/lightline/colorscheme/lena.vim -" Author: elenapan @ github -" ============================================================================= - -" Normal colors -let s:black = [ '#000000', 0 ] -let s:red = [ '#800000', 1 ] -let s:green = [ '#008000', 2 ] -let s:yellow = [ '#808000', 3 ] -let s:blue = [ '#000080', 4 ] -let s:magenta = [ '#800080', 5 ] -let s:cyan = [ '#008080', 6 ] -let s:white = [ '#ffffff', 7 ] - -" Bold / Brighter colors -let s:black2 = [ '#808080', 8 ] -let s:red2 = [ '#ff0000', 9 ] -let s:green2 = [ '#00ff00', 10 ] -let s:yellow2 = [ '#ffff00', 11 ] -let s:blue2 = [ '#0000ff', 12 ] -let s:magenta2 = [ '#ff00ff', 13 ] -let s:cyan2 = [ '#00ffff', 14 ] -let s:white2 = [ '#ffffff', 15 ] - -let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}} -let s:p.normal.left = [ [ s:cyan2, s:black ], [ s:cyan, s:black ] ] -let s:p.normal.right = [ [ s:cyan2, s:black ], [ s:cyan, s:black ] ] -let s:p.insert.left = [ [ s:red2, s:black ], [ s:red, s:black ] ] -let s:p.insert.right = [ [ s:red2, s:black ], [ s:red, s:black ] ] -let s:p.visual.left = [ [ s:magenta2, s:black ], [ s:magenta, s:black ] ] -let s:p.visual.right = [ [ s:magenta2, s:black ], [ s:magenta, s:black ] ] -let s:p.replace.left = [ [ s:yellow2, s:black ], [ s:yellow, s:black ] ] -let s:p.replace.right = [ [ s:yellow2, s:black ], [ s:yellow, s:black ] ] -let s:p.inactive.left = [ [ s:black2, s:black ], [ s:black2, s:black ] ] -let s:p.inactive.right = [ [ s:black2, s:black ], [ s:black2, s:black ] ] -let s:p.normal.middle = [ [ s:white, s:black ] ] -let s:p.normal.error = [ [ s:white, s:red ] ] -let s:p.normal.warning = [ [ s:black, s:yellow ] ] -let s:p.inactive.middle = [ [ s:black2, s:black ] ] - -let s:p.tabline.left = [ [ s:blue, s:black ] ] -let s:p.tabline.tabsel = [ [ s:red, s:black ] ] -let s:p.tabline.middle = [ [ s:black, s:black ] ] -let s:p.tabline.right = [ [ s:black, s:black ] ] - -let g:lightline#colorscheme#lena#palette = lightline#colorscheme#flatten(s:p) diff --git a/config/nvim/colors/lena.vim b/config/nvim/colors/lena.vim index c251482..a4b1ee2 100644 --- a/config/nvim/colors/lena.vim +++ b/config/nvim/colors/lena.vim @@ -1,5 +1,4 @@ -" lena.vim - Vim color scheme for 16-color terminals, heavily based on noctu -" elenapan @ github +" lena.vim - Vim color scheme based on noctu " ------------------------------------------------------------------ " Scheme setup {{{ @@ -14,48 +13,52 @@ let g:colors_name = "lena" "}}} " Vim UI {{{ -hi Normal ctermfg=7 -hi Cursor ctermfg=7 ctermbg=1 -hi CursorLine ctermbg=0 cterm=NONE -hi MatchParen ctermfg=7 ctermbg=NONE cterm=underline -hi Pmenu ctermfg=15 ctermbg=0 -hi PmenuThumb ctermbg=7 -hi PmenuSBar ctermbg=8 -hi PmenuSel ctermfg=0 ctermbg=4 -hi ColorColumn ctermbg=0 -hi SpellBad ctermfg=1 ctermbg=NONE cterm=underline -hi SpellCap ctermfg=12 ctermbg=NONE cterm=underline -hi SpellRare ctermfg=11 ctermbg=NONE cterm=underline -hi SpellLocal ctermfg=13 ctermbg=NONE cterm=underline -hi NonText ctermfg=8 -hi LineNr ctermfg=8 ctermbg=NONE cterm=bold -hi CursorLineNr ctermfg=14 ctermbg=NONE cterm=bold -hi Visual ctermfg=0 ctermbg=5 -hi IncSearch ctermfg=0 ctermbg=13 cterm=NONE -hi Search ctermfg=0 ctermbg=14 -hi StatusLine ctermfg=5 ctermbg=0 cterm=NONE -hi StatusLineNC ctermfg=8 ctermbg=0 cterm=bold -hi VertSplit ctermfg=13 ctermbg=NONE cterm=bold -hi TabLine ctermfg=8 ctermbg=0 cterm=NONE -hi TabLineSel ctermfg=7 ctermbg=0 -hi Folded ctermfg=4 ctermbg=0 cterm=bold,italic -hi Conceal ctermfg=6 ctermbg=NONE -hi Directory ctermfg=10 ctermbg=NONE cterm=NONE -hi Title ctermfg=11 ctermbg=NONE cterm=bold -hi ErrorMsg ctermfg=9 ctermbg=NONE cterm=bold -hi DiffAdd ctermfg=0 ctermbg=2 -hi DiffChange ctermfg=0 ctermbg=3 -hi DiffDelete ctermfg=0 ctermbg=1 -hi DiffText ctermfg=0 ctermbg=11 cterm=bold -hi User1 ctermfg=1 ctermbg=0 -hi User2 ctermfg=2 ctermbg=0 -hi User3 ctermfg=4 ctermbg=0 -hi User4 ctermfg=3 ctermbg=0 -hi User5 ctermfg=5 ctermbg=0 -hi User6 ctermfg=6 ctermbg=0 -hi User7 ctermfg=7 ctermbg=0 -hi User8 ctermfg=8 ctermbg=0 -hi User9 ctermfg=15 ctermbg=5 +hi Normal guifg=#f4f3ee guibg=#101319 +hi Cursor guifg=#f4f3ee guibg=#E34F4F +hi CursorLine guibg=#171b24 gui=none +hi MatchParen guifg=#f4f3ee guibg=#101319 gui=underline +hi Pmenu guifg=#DDDBCF guibg=#171b24 +hi PmenuThumb guibg=#f4f3ee +hi PmenuSBar guibg=#3A435A +" For some reason, after an update bg and fg on this one are inverted +hi PmenuSel guibg=#171b24 guifg=#956dca +hi ColorColumn guibg=#171b24 +hi SpellBad guifg=#E34F4F guibg=none gui=underline +hi SpellCap guifg=#56B7C8 guibg=none gui=underline +hi SpellRare guifg=#5679E3 guibg=none gui=underline +hi SpellLocal guifg=#885AC4 guibg=none gui=underline +hi NonText guifg=#3A435A +hi LineNr guifg=#3A435A guibg=#101319 gui=bold +hi CursorLineNr guifg=#5679E3 guibg=#171b24 gui=bold +hi Visual guifg=#171b24 guibg=#956dca +hi IncSearch guifg=#171b24 guibg=#885AC4 gui=none +hi Search guifg=#171b24 guibg=#DE642B +hi WinSeparator guifg=#171b24 guibg=#101319 gui=bold +hi EndOfBuffer guifg=#3A435A guibg=none gui=bold +hi Folded guifg=#DE642B guibg=#101319 gui=bold +hi Conceal guifg=#DE642B guibg=#101319 +hi Directory guifg=#3E66E0 guibg=#101319 gui=none +hi Title guifg=#5679E3 guibg=#101319 gui=bold +hi ErrorMsg guifg=#DE2B2B guibg=#101319 gui=bold +hi DiffAdd guifg=#171b24 guibg=#69bfce +hi DiffChange guifg=#171b24 guibg=#5599E2 +hi DiffDelete guifg=#171b24 guibg=#E34F4F +hi DiffText guifg=#171b24 guibg=#5679E3 gui=bold +hi User1 guifg=#E34F4F guibg=#171b24 +hi User2 guifg=#3F8CDE guibg=#171b24 +hi User3 guifg=#5599E2 guibg=#171b24 +hi User4 guifg=#69bfce guibg=#171b24 +hi User5 guifg=#956dca guibg=#171b24 +hi User6 guifg=#DE642B guibg=#171b24 +hi User7 guifg=#f4f3ee guibg=#171b24 +hi User8 guifg=#3A435A guibg=#171b24 +hi User9 guifg=#DE2B2B guibg=#171b24 +hi User10 guifg=#3E66E0 guibg=#171b24 +hi User11 guifg=#5679E3 guibg=#171b24 +hi User12 guifg=#56B7C8 guibg=#171b24 +hi User13 guifg=#885AC4 guibg=#171b24 +hi User14 guifg=#DE642B guibg=#171b24 +hi User15 guifg=#DDDBCF guibg=#171b24 hi! link CursorColumn CursorLine hi! link SignColumn LineNr hi! link WildMenu Visual @@ -64,53 +67,57 @@ hi! link WarningMsg ErrorMsg hi! link MoreMsg Title hi! link Question MoreMsg hi! link ModeMsg MoreMsg -hi! link TabLineFill StatusLineNC hi! link SpecialKey NonText "}}} " Generic syntax {{{ -hi Delimiter ctermfg=7 -hi Comment ctermfg=8 cterm=bold -hi Underlined ctermfg=2 cterm=underline -hi Type ctermfg=2 -hi String ctermfg=1 cterm=bold -hi Keyword ctermfg=4 -hi Todo ctermfg=11 ctermbg=NONE cterm=bold,underline -hi Urgent ctermfg=1 ctermbg=NONE cterm=bold,underline -hi Done ctermfg=4 ctermbg=NONE cterm=bold,underline -hi Function ctermfg=2 -hi Identifier ctermfg=7 cterm=NONE -hi Statement ctermfg=4 cterm=bold -hi Constant ctermfg=13 -hi Number ctermfg=10 -hi Boolean ctermfg=2 -hi Special ctermfg=13 -hi Ignore ctermfg=0 -hi PreProc ctermfg=8 cterm=bold -hi Operator ctermfg=5 cterm=bold -" hi! link Operator Delimiter +hi Delimiter guifg=#f4f3ee +hi Comment guifg=#3A435A gui=bold +hi Underlined guifg=#3F8CDE gui=underline +hi Type guifg=#3F8CDE +hi String guifg=#5679E3 gui=bold +hi Keyword guifg=#3F8CDE +hi Todo guifg=#5679E3 guibg=#101319 gui=bold,underline +hi Urgent guifg=#E34F4F guibg=#101319 gui=bold,underline +hi Done guifg=#69bfce guibg=#101319 gui=bold,underline +hi Function guifg=#DE642B gui=bold +" hi Function guifg=#DE642B gui=italic +hi Identifier guifg=#f4f3ee gui=none +hi Statement guifg=#3F8CDE gui=bold +hi Constant guifg=#885AC4 +hi Number guifg=#3E66E0 gui=bold +hi Boolean guifg=#69bfce +hi Special guifg=#885AC4 +hi Ignore guifg=#171b24 +hi PreProc guifg=#DE642B gui=bold +hi Operator guifg=#956dca gui=bold +hi Define guifg=#3F8CDE gui=none hi! link Error ErrorMsg +" Extra TODO +hi Conditional guifg=#5599E2 gui=bold +hi Exception guifg=#5599E2 gui=none + "}}} " HTML {{{ -hi htmlTagName ctermfg=4 -hi htmlTag ctermfg=4 -hi htmlArg ctermfg=12 -hi htmlH1 cterm=bold -hi htmlBold cterm=bold -hi htmlItalic cterm=underline -hi htmlUnderline cterm=underline -hi htmlBoldItalic cterm=bold,underline -hi htmlBoldUnderline cterm=bold,underline -hi htmlUnderlineItalic cterm=underline -hi htmlBoldUnderlineItalic cterm=bold,underline +hi htmlTagName guifg=#3F8CDE +hi htmlTag guifg=#3F8CDE +hi htmlArg guifg=#3E66E0 +hi htmlH1 gui=bold +hi htmlBold gui=bold +hi htmlItalic gui=underline +hi htmlUnderline gui=underline +hi htmlBoldItalic gui=bold,underline +hi htmlBoldUnderline gui=bold,underline +hi htmlUnderlineItalic gui=underline +hi htmlBoldUnderlineItalic gui=bold,underline hi! link htmlLink Underlined hi! link htmlEndTag htmlTag "}}} " XML {{{ -hi xmlTagName ctermfg=2 -hi xmlTag ctermfg=10 +hi xmlTagName guifg=#69bfce +hi xmlTag guifg=#56B7C8 hi! link xmlString xmlTagName hi! link xmlAttrib xmlTag hi! link xmlEndTag xmlTag @@ -123,45 +130,49 @@ hi! link javaScriptBraces Delimiter "}}} " PHP {{{ -hi phpSpecialFunction ctermfg=5 -hi phpIdentifier ctermfg=11 -hi phpParent ctermfg=8 +hi phpSpecialFunction guifg=#956dca +hi phpIdentifier guifg=#5679E3 +hi phpParent guifg=#3A435A hi! link phpVarSelector phpIdentifier hi! link phpHereDoc String hi! link phpDefine Statement +"}}} +" Lua {{{ +hi luaIfThen guifg=#3F8CDE gui=bold +hi luaCond guifg=#3F8CDE gui=bold "}}} " Markdown {{{ -hi markdownHeadingRule ctermfg=3 +hi markdownHeadingRule guifg=#5599E2 hi! link markdownHeadingDelimiter markdownHeadingRule hi! link markdownLinkDelimiter Delimiter hi! link markdownURLDelimiter Delimiter hi! link markdownCodeDelimiter NonText -hi markdownLinkDelimiter ctermfg=15 ctermbg=NONE cterm=NONE +hi markdownLinkDelimiter guifg=#DDDBCF guibg=#101319 gui=none hi! link markdownLinkTextDelimiter markdownLinkDelimiter -hi markdownLinkText ctermfg=2 ctermbg=NONE cterm=bold,underline +hi markdownLinkText guifg=#3F8CDE guibg=#101319 gui=bold,underline hi! link markdownUrl markdownLinkText hi! link markdownUrlTitleDelimiter markdownLinkText hi! link markdownAutomaticLink markdownLinkText hi! link markdownIdDeclaration markdownLinkText -hi markdownCode ctermfg=4 ctermbg=NONE cterm=NONE +hi markdownCode guifg=#69bfce guibg=#101319 gui=none hi! link markdownCodeBlock String hi! link markdownCodeBlock markdownCode hi! link markdownCodeDelimiter markdownCode -hi markdownBold ctermfg=5 ctermbg=NONE cterm=bold -hi markdownItalic ctermfg=5 ctermbg=NONE cterm=italic -hi markdownBlockquote ctermfg=15 ctermbg=NONE cterm=italic,bold -hi markdownRule ctermfg=15 ctermbg=NONE cterm=italic,bold +hi markdownBold guifg=#956dca guibg=#101319 gui=bold +hi markdownItalic guifg=#956dca guibg=#101319 gui=italic +hi markdownBlockquote guifg=#DDDBCF guibg=#101319 gui=italic,bold +hi markdownRule guifg=#DDDBCF guibg=#101319 gui=italic,bold -hi markdownH1 ctermfg=3 ctermbg=NONE cterm=bold -hi markdownH2 ctermfg=3 ctermbg=NONE cterm=bold -hi markdownH3 ctermfg=2 ctermbg=NONE cterm=bold -hi markdownH4 ctermfg=2 ctermbg=NONE cterm=bold -hi markdownH5 ctermfg=2 ctermbg=NONE cterm=NONE -hi markdownH6 ctermfg=2 ctermbg=NONE cterm=NONE +hi markdownH1 guifg=#5599E2 guibg=#101319 gui=bold +hi markdownH2 guifg=#5599E2 guibg=#101319 gui=bold +hi markdownH3 guifg=#3F8CDE guibg=#101319 gui=bold +hi markdownH4 guifg=#3F8CDE guibg=#101319 gui=bold +hi markdownH5 guifg=#3F8CDE guibg=#101319 gui=none +hi markdownH6 guifg=#3F8CDE guibg=#101319 gui=none -hi markdownListMarker ctermfg=6 ctermbg=NONE cterm=bold -hi markdownOrderedListMarker ctermfg=3 ctermbg=NONE cterm=bold +hi markdownListMarker guifg=#DE642B guibg=#101319 gui=bold +hi markdownOrderedListMarker guifg=#5599E2 guibg=#101319 gui=bold "}}} " Ruby {{{ @@ -173,11 +184,11 @@ hi! link rubyStringDelimiter rubyString "}}} " Git {{{ -hi gitCommitBranch ctermfg=3 -hi gitCommitSelectedType ctermfg=12 -hi gitCommitSelectedFile ctermfg=4 -hi gitCommitUnmergedType ctermfg=9 -hi gitCommitUnmergedFile ctermfg=1 +hi gitCommitBranch guifg=#5599E2 +hi gitCommitSelectedType guifg=#3E66E0 +hi gitCommitSelectedFile guifg=#3F8CDE +hi gitCommitUnmergedType guifg=#DE2B2B +hi gitCommitUnmergedFile guifg=#E34F4F hi! link gitCommitFile Directory hi! link gitCommitUntrackedFile gitCommitUnmergedFile hi! link gitCommitDiscardedType gitCommitUnmergedType @@ -191,7 +202,7 @@ hi! link vimHiAttrib Constant "}}} " LESS {{{ -hi lessVariable ctermfg=11 +hi lessVariable guifg=#5679E3 hi! link lessVariableValue Normal "}}} @@ -207,7 +218,7 @@ hi! link VimwikiBoldChar markdownBold hi! link VimwikiItalicChar markdownItalic hi! link VimwikiBoldCharT VimwikiBoldChar hi! link VimwikiItalicCharT VimwikiItalicChar -hi VimwikiBoldItalicChar ctermfg=6 ctermbg=NONE cterm=italic,bold +hi VimwikiBoldItalicChar guifg=#DE642B guibg=#101319 gui=italic,bold hi! link VimwikiItalicBoldChar VimwikiBoldItalicChar hi! link VimwikiBoldItalicCharT VimwikiBoldItalicChar hi! link VimwikiItalicBoldCharT VimwikiBoldItalicChar @@ -238,50 +249,51 @@ hi! link helpURL Underlined "}}} " CtrlP {{{ -hi CtrlPMatch ctermfg=1 cterm=bold -hi CtrlPLinePre ctermfg=6 cterm=bold +hi CtrlPMatch guifg=#E34F4F gui=bold +hi CtrlPLinePre guifg=#DE642B gui=bold "}}} " Mustache {{{ -hi mustacheSection ctermfg=14 cterm=bold -hi mustacheMarker ctermfg=6 -hi mustacheVariable ctermfg=14 -hi mustacheVariableUnescape ctermfg=9 -hi mustachePartial ctermfg=13 +hi mustacheSection guifg=#DE642B gui=bold +hi mustacheMarker guifg=#DE642B +hi mustacheVariable guifg=#DE642B +hi mustacheVariableUnescape guifg=#DE2B2B +hi mustachePartial guifg=#885AC4 "}}} " Shell {{{ -hi shDerefSimple ctermfg=11 +hi shDerefSimple guifg=#5679E3 +hi shDo guifg=#5599E2 hi! link shDerefVar shDerefSimple "}}} " Syntastic {{{ -hi SyntasticWarningSign ctermfg=3 ctermbg=NONE -hi SyntasticErrorSign ctermfg=1 ctermbg=NONE -hi SyntasticStyleWarningSign ctermfg=4 ctermbg=NONE -hi SyntasticStyleErrorSign ctermfg=2 ctermbg=NONE +hi SyntasticWarningSign guifg=#5599E2 guibg=#101319 +hi SyntasticErrorSign guifg=#E34F4F guibg=#101319 +hi SyntasticStyleWarningSign guifg=#69bfce guibg=#101319 +hi SyntasticStyleErrorSign guifg=#3F8CDE guibg=#101319 "}}} " Netrw {{{ -hi netrwExe ctermfg=9 -hi netrwClassify ctermfg=8 cterm=bold +hi netrwExe guifg=#DE2B2B +hi netrwClassify guifg=#3A435A gui=bold "}}} " Ledger {{{ -hi ledgerAccount ctermfg=11 +hi ledgerAccount guifg=#5679E3 hi! link ledgerMetadata Comment hi! link ledgerTransactionStatus Statement "}}} " Diff {{{ -hi diffAdded ctermfg=4 -hi diffRemoved ctermfg=1 +hi diffAdded guifg=#3F8CDE +hi diffRemoved guifg=#E34F4F hi! link diffFile PreProc hi! link diffLine Title "}}} " Plug {{{ -hi plugSha ctermfg=3 +hi plugSha guifg=#5599E2 "}}} " Blade {{{ @@ -290,5 +302,146 @@ hi! link bladeParen phpParent hi! link bladeEchoDelim PreProc "}}} +" Solidity {{{ +hi! link solStorageType Keyword +hi! link solFuncStorageType Keyword +hi! link solStorageConst Keyword +hi! link solParens Normal +hi! link solComma Normal +hi! link solMapping Define +hi! link solEnum Define +hi! link solStruct Define +hi! link solNumber Number +hi! link solString String +hi! link solString String +hi! link solOperator Operator +hi! link solDestructure Keyword +hi! link solFunction Define +hi! link solConstructor Define +hi! link solFuncName Function +hi! link solFuncModifier Keyword +hi! link solFuncModCustom Keyword +hi! link solFuncCall Function +hi! link solFuncReturn Special +hi! link solModifier Define +hi! link solModifierName Function +hi! link solModifierInsert Function +hi! link solContract Define +hi! link solContractName Function +hi! link solInheritor Keyword +hi! link solLibUsing Special +hi! link solLibName Type +hi! link solEvent Define +hi! link solEventName Function +hi! link solEventParamMod Keyword +hi! link solEmitEvent Special +hi! link solConstant Constant +hi! link solReserved Error +hi! link solPragma PreProc +hi! link solAssemblyBlock PreProc +hi! link solAssemblyName Special +hi! link solAssemblyOperator Operator +hi! link solAssemblyLet Keyword +hi! link solAssemblyMethod Special +hi! link solAssemblyConst Constant +hi! link solAssemblyCond Conditional +hi! link solMethod Special +hi! link solRepeat Repeat +hi! link solLabel Label +hi! link solException Exception +hi! link solValueType Type +hi! link solTypeCast Type +hi! link solIf Keyword +hi! link solElse Keyword +hi! link solLoop Keyword +hi! link solTodo Todo +hi! link solComment Comment +hi! link solNatspecTag SpecialComment +hi! link solNatspecBlock Comment +hi! link solNatspecParam Define + + +" }}} +" FZF {{{ +hi FzfMain guifg=#f4f3ee guibg=#171b24 +hi FzfMargin guifg=#f4f3ee guibg=#171b24 +hi FzfHighlight guifg=#E34F4F guibg=#E34F4F +hi FzfBorder guifg=#DE642B guibg=#101319 +hi FzfBgPlus guibg=#171b24 gui=none +hi FzfBorderFloating guibg=#171b24 guifg=#E34F4F +"}}} +" Statusline {{{ +hi StatusLine guifg=#171b24 guibg=none gui=bold +hi StatusLineNC guifg=#171b24 guibg=none gui=bold + +hi StatusLineAccent guibg=#171b24 guifg=#f4f3ee +hi StatusLineNormalAccent guibg=#171b24 guifg=#5679E3 +hi StatusLineInsertAccent guibg=#171b24 guifg=#E34F4F +hi StatusLineVisualAccent guibg=#171b24 guifg=#956dca +hi StatusLineReplaceAccent guibg=#171b24 guifg=#e37e4f +hi StatusLineCmdLineAccent guibg=#171b24 guifg=#69bfce + +" }}} +" Tabline {{{ +hi TabLine guifg=#3A435A guibg=none gui=none +hi TabLineSel guifg=#f4f3ee guibg=none +hi TabLineFill guifg=#E34F4F guibg=none gui=none + +hi CustomTablineBubbleEdge guibg=none guifg=#171b24 +hi CustomTablineBubbleIndex guibg=#171b24 guifg=#69bfce gui=bold +hi CustomTablineBubbleIndexSel guibg=#171b24 guifg=#956dca gui=bold +hi CustomTablineBubbleLabel guibg=#171b24 guifg=#3A435A gui=bold +hi CustomTablineBubbleLabelSel guibg=#171b24 guifg=#f4f3ee gui=bold +hi CustomTablineBubbleLabelSelModified guibg=#171b24 guifg=#f4f3ee gui=bold,undercurl guisp=#5599E2 +hi CustomTablineBubbleDirectory guibg=#171b24 guifg=#5679E3 gui=bold +hi CustomTablineBubbleFiletype guibg=#171b24 guifg=#e37e4f gui=bold +hi CustomTablineBubbleGit guibg=#171b24 guifg=#E34F4F gui=bold +hi CustomTablineBubbleSeparator guibg=#171b24 guifg=#3A435A gui=bold +hi CustomTablineBubbleLine guibg=#171b24 guifg=#E34F4F gui=bold +hi CustomTablineBubbleColumn guibg=#171b24 guifg=#69bfce gui=bold +hi CustomTablineBubblePercentage guibg=#171b24 guifg=#5679E3 gui=bold +hi CustomTablineBubbleTotalLines guibg=#171b24 guifg=#956dca gui=bold + +" }}} +" Vim Sneak {{{ +hi Sneak guifg=#171b24 gui=bold guibg=#5679E3 +hi SneakScope guifg=#171b24 gui=bold guibg=#DE642B +hi SneakLabel guifg=#171b24 gui=bold guibg=#5679E3 + +"}}} +" GitGutter {{{ +hi GitGutterAdd guifg=#56B7C8 guibg=#101319 gui=bold +hi GitGutterChange guifg=#3E66E0 guibg=#101319 gui=bold +hi GitGutterDelete guifg=#DE2B2B guibg=#101319 gui=bold +hi GitGutterChangeDelete guifg=#5679E3 guibg=#101319 gui=bold + +hi GitGutterAddLine guifg=#56B7C8 guibg=#101319 gui=bold +hi GitGutterChangeLine guifg=#3E66E0 guibg=#101319 gui=bold +hi GitGutterDeleteLine guifg=#DE2B2B guibg=#101319 gui=bold +hi GitGutterChangeDeleteLine guifg=#5679E3 guibg=#101319 gui=bold + +highlight link diffAdded DiffAdd +highlight link diffChanged DiffChange +highlight link diffRemoved DiffDelete +"}}} + +" highlightedyank +" highlight HighlightedyankRegion gui=reverse gui=reverse +highlight HighlightedyankRegion guibg=#3F8CDE guifg=#171b24 gui=none + +" Mini +hi MiniIndentscopeSymbol guifg=#956dca guibg=none gui=none + +" Org +hi @org.headline.level1 guibg=none guifg=#3F8CDE gui=bold +hi @org.headline.level2 guibg=none guifg=#DE642B gui=bold +hi @org.headline.level3 guibg=none guifg=#DE2B2B gui=bold +hi @org.headline.level4 guibg=none guifg=#3E66E0 gui=bold +hi @org.headline.level5 guibg=none guifg=#56B7C8 gui=bold +hi @org.headline.level6 guibg=none guifg=#885AC4 gui=bold +hi @org.headline.level7 guibg=none guifg=#3F8CDE gui=bold +hi @org.headline.level8 guibg=none guifg=#DE642B gui=bold + +" Nvim-cmp +hi FloatBorder guibg=none guifg=#5599E2 gui=bold -" vim: fdm=marker:sw=2:sts=2:et diff --git a/config/nvim/init.lua b/config/nvim/init.lua new file mode 100644 index 0000000..b51d21f --- /dev/null +++ b/config/nvim/init.lua @@ -0,0 +1,13 @@ +vim.g.mapleader = " " +vim.g.maplocalleader = " m" +vim.o.termguicolors = true + +require('appearance') + +-- Still cleaning these up, will upload in a few decades +-- require('plugins') +-- require('settings') +-- require('utils') +-- require('keybinds') +-- require('autocommands') +-- require('greek') diff --git a/config/nvim/init.vim b/config/nvim/init.vim deleted file mode 100644 index 1e9bf68..0000000 --- a/config/nvim/init.vim +++ /dev/null @@ -1,363 +0,0 @@ -" ~~~ Plugins ~~~ -" call plug#begin('~/.local/share/nvim/plugged') -" Plug 'shougo/deoplete.nvim' -" Plug 'ctrlpvim/ctrlp.vim' -" Plug 'itchyny/lightline.vim' -" Plug 'tpope/vim-commentary' -" Plug 'tpope/vim-surround' -" Plug 'lambdalisue/suda.vim' -" Plug 'jiangmiao/auto-pairs' -" Plug 'machakann/vim-highlightedyank' -" Plug 'vimwiki/vimwiki' -" Plug 'tpope/vim-markdown' -" Plug 'nelstrom/vim-markdown-folding' -" call plug#end() - -" Highlight the line on which the cursor lives. -set nocursorline - -" Always show at least one line above/below the cursor. -set scrolloff=1 -" Always show at least one line left/right of the cursor. -set sidescrolloff=5 - -" Relative line numbers -set number relativenumber - -" Highlight matching pairs of brackets. Use the '%' character to jump between them. -set matchpairs+=<:> - -" Display different types of white spaces. -set list -set listchars=tab:›\ ,trail:•,extends:#,nbsp:. - -" Use system clipboard -set clipboard=unnamedplus - -" Remove timeout for partially typed commands -set notimeout - -" F keys -" Quick write session with F2 -map :mksession! ~/.vim_session -" And load session with F3 -map :source ~/.vim_session - -" Fix indentation -map gg=G -" Toggle auto change directory -map :set autochdir! autochdir? - -" Toggle vertical line -set colorcolumn= -fun! ToggleCC() - if &cc == '' - " set cc=1,4,21 - set cc=80 - else - set cc= - endif -endfun -nnoremap :call ToggleCC() - -" Beginning and end of line -imap -imap -cmap -cmap - -" Control-S Save -nmap :w -vmap :w -imap :w -" Save + back into insert -" imap :wa - -" Control-C Copy in visual mode -vmap y - -" Control-V Paste in insert and command mode -imap pa -cmap 0 - -" Window Movement -nmap h -nmap j -nmap k -nmap l - -" Resizing -nmap 2< -nmap 2> -nmap - -nmap + - -" Insert mode movement -imap -imap -imap -imap -imap -imap - -" Spacemacs-like keybinds -" Change bind from default \ -" nnoremap -" let mapleader=" " - -" Make ci( work like quotes do -function! New_cib() - if search("(","bn") == line(".") - sil exe "normal! f)ci(" - sil exe "normal! l" - startinsert - else - sil exe "normal! f(ci(" - sil exe "normal! l" - startinsert - endif -endfunction - -" And for curly brackets -function! New_ciB() - if search("{","bn") == line(".") - sil exe "normal! f}ci{" - sil exe "normal! l" - startinsert - else - sil exe "normal! f{ci{" - sil exe "normal! l" - startinsert - endif -endfunction - -nnoremap ci( :call New_cib() -nnoremap cib :call New_cib() -nnoremap ci{ :call New_ciB() -nnoremap ciB :call New_ciB() - -" Alt-m for creating a new line in insert mode -imap o - -" netrw configuration -let g:netrw_browse_split = 0 -let g:netrw_altfile = 1 - -" Cycle windows -nmap w -vmap w -tmap w -imap w - -" Command mode history -cmap -cmap -cmap -cmap - -" Back to normal mode from insert -" inoremap jk -" inoremap JK - -" Manually refresh file -nmap :e! - -" Indentation -set smarttab -set expandtab -set tabstop=8 -set softtabstop=4 -set shiftwidth=4 - -"set smartindent -set autoindent -"set cindent - -set nocompatible -filetype plugin indent on - -" Write buffer through sudo (works on vim but not neovim) -" cnoreabbrev w!! w !sudo -S tee % >/dev/null -" Neovim: suda plugin -cnoreabbrev w!! w suda://% - -" Allow switching between buffers without saving -set hidden - -" Mouse support -set mouse=a - -"Case insensitive searching -set ignorecase - -"Will automatically switch to case sensitive if you use any capitals -set smartcase - -" Auto toggle smart case of for ex commands -" Assumes 'set ignorecase smartcase' -augroup dynamic_smartcase - autocmd! - autocmd CmdLineEnter : set nosmartcase - autocmd CmdLineLeave : set smartcase -augroup END - -" Substitute live preview -set inccommand=nosplit - -" Markdown Folding -let g:markdown_fold_style = 'nested' - -" Vimwiki -" let g:vimwiki_list = [{'path': '~/dox/vimwiki/', 'syntax': 'markdown', 'ext': '.md'}] -let g:vimwiki_global_ext=0 -let g:vimwiki_table_mappings=0 -let g:vimwiki_folding='expr' -nmap vv VimwikiIndex -nmap vV VimwikiTabIndex -nmap vs VimwikiUISelect -nmap vi VimwikiDiaryIndex -nmap vdd VimwikiMakeDiaryNote -nmap vDD VimwikiTabMakeDiaryNote -nmap vdy VimwikiMakeYesterdayDiaryNote -nmap vdt VimwikiMakeTomorrowDiaryNote -nmap VimwikiToggleListItem - -" Highlighted yank (-1 for persistent) -let g:highlightedyank_highlight_duration = 400 - -" If lightline/airline is enabled, don't show mode under it -set noshowmode - -" Shell -set shell=/bin/zsh - -" Ctrlp -let g:ctrlp_switch_buffer = '0' -" Useful for large projects -let g:ctrlp_max_files=0 -let g:ctrlp_max_depth=10 -" So that it does not only index starting from current directory -let g:ctrlp_working_path_mode = "" -let g:ctrlp_cache_dir = $HOME . '/.cache/ctrlp' -" Use ag AKA the_silver_searcher for indexing. Faster!!! -" TIP: Use ~/.ignore to ignore directories/files -" set grepprg=ag\ --nogroup\ --nocolor -" let g:ctrlp_user_command = 'ag %s -l --hidden --nocolor -g ""' -""if executable('ag') -"" let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' -""endif -let g:ctrlp_show_hidden =1 -let g:ctrlp_clear_cache_on_exit = 0 - -" Lightline -" Get default from :h lightline -let g:lightline = { - \ 'colorscheme': 'lena', - \ } - -let g:lightline.active = { - \ 'left': [ [ 'mode', 'paste', 'sep1' ], - \ [ 'readonly', 'filename', 'modified' ], - \ [ ] ], - \ 'right': [ [ 'lineinfo' ], - \ [ 'percent' ], - \ [ 'filetype' ] ] - \ } - -let g:lightline.inactive = { - \ 'left': [ [ 'mode', 'paste', 'sep1' ], - \ [ 'readonly', 'filename', 'modified' ] ], - \ 'right': [ [ 'lineinfo' ], - \ [ 'percent' ], - \ [ 'filetype' ] ] - \ } - -let g:lightline.tabline = { - \ 'left': [ [ 'tabs' ] ], - \ 'right': [ ] } - -let g:lightline.tab = { - \ 'active': [ 'tabnum', 'filename', 'modified' ], - \ 'inactive': [ 'tabnum', 'filename', 'modified' ] } - -let g:lightline.component = { - \ 'mode': '%{lightline#mode()}', - \ 'absolutepath': '%F', - \ 'relativepath': '%f', - \ 'filename': '%t', - \ 'modified': '%M', - \ 'bufnum': '%n', - \ 'paste': '%{&paste?"PASTE":""}', - \ 'readonly': '%R', - \ 'charvalue': '%b', - \ 'charvaluehex': '%B', - \ 'fileencoding': '%{&fenc!=#""?&fenc:&enc}', - \ 'fileformat': '%{&ff}', - \ 'filetype': '%{&ft!=#""?&ft:"no ft"}', - \ 'percent': '%3p%%', - \ 'percentwin': '%P', - \ 'spell': '%{&spell?&spelllang:""}', - \ 'lineinfo': '%3l:%-2v', - \ 'line': '%l', - \ 'column': '%c', - \ 'close': '%999X X ', - \ 'winnr': '%{winnr()}', - \ 'sep1': '' - \} - -let g:lightline.mode_map = { - \ 'n' : 'N', - \ 'i' : 'I', - \ 'R' : 'R', - \ 'v' : 'V', - \ 'V' : 'L', - \ "\": 'B', - \ 'c' : 'C', - \ 's' : 'S', - \ 'S' : 'S-LINE', - \ "\": 'S-BLOCK', - \ 't': 'T', - \ } - - -let g:lightline.separator = { - \ 'left': '', 'right': '' - \} -let g:lightline.subseparator = { - \ 'left': '', 'right': '' - \} - -let g:lightline.tabline_separator = g:lightline.separator -let g:lightline.tabline_subseparator = g:lightline.subseparator - -let g:lightline.enable = { - \ 'statusline': 1, - \ 'tabline': 1 - \ } - -" deoplete -let g:deoplete#enable_at_startup = 1 -inoremap pumvisible() ? "\" : "\" - -" Clear search highlighting with Escape key -nnoremap :noh - -" Allow color schemes to do bright colors without forcing bold. -if &t_Co == 8 && $TERM !~# '^linux\|^Eterm' - set t_Co=16 -endif - -set wildmenu - -set encoding=utf8 -scriptencoding utf-8 - -" Colorscheme -colorscheme lena -set fillchars=vert:: - -" Restore last cursor position and marks on open -au BufReadPost * - \ if line("'\"") > 1 && line("'\"") <= line("$") && &ft !~# 'commit' - \ | exe "normal! g`\"" - \ | endif diff --git a/config/nvim/lua/appearance.lua b/config/nvim/lua/appearance.lua new file mode 100644 index 0000000..951a72d --- /dev/null +++ b/config/nvim/lua/appearance.lua @@ -0,0 +1,144 @@ +-- Load colorscheme +vim.cmd [[colorscheme lena]] + +-- Display different types of white spaces +vim.o.list = true +vim.o.listchars = 'tab:│ ,trail:•,extends:#,nbsp:.' +-- set listchars=tab:›\ ,trail:•,extends:#,nbsp:. + +-- Characters to fill the statuslines and vertical separators +vim.o.fillchars='stl:━,stlnc:━,vert:┃,vertleft:┫,vertright:┣,verthoriz:╋,horiz:━,horizup:┻,horizdown:┳,eob:⬝' + +-- Only one statusline for all windows +vim.opt.laststatus = 3 +-- Always show tabline, since statusline has no information +vim.o.showtabline = 2 + +local function LineInfo() + return table.concat { + "%#CustomTablineBubbleEdge#", + "%#CustomTablineBubbleLine# ", + "%2l", -- Space-padded line number + "%#CustomTablineBubbleSeparator# ✖ ", + "%#CustomTablineBubbleColumn#", + "%-2c", -- Space padded, right-aligned column number + " %#CustomTablineBubbleEdge#", + "%#CustomTablineBubblePercentage# ", + "%P", -- Space-padded line number + "%#CustomTablineBubbleSeparator# ● ", + "%#CustomTablineBubbleTotalLines#", + "%L", + " %#CustomTablineBubbleEdge# ", + } +end + +function FiletypeAndDirectoryAndGit() + local full_path = vim.fn.expand('%:p:h'):gsub(vim.fn.expand('~'), '~') + local components = vim.split(full_path, '/') + + -- Get the direct parent directory + local parent_dir = table.remove(components) + + -- Truncate each component to a maximum of three characters + for i, component in ipairs(components) do + components[i] = string.sub(component, 1, 3) + end + + -- Add the direct parent directory back to the components + table.insert(components, parent_dir) + + -- Reconstruct the truncated path + local truncated_path = table.concat(components, '/') + + local git_info = vim.b.gitsigns_status_dict + + local git_info_or_end_bubble + if not git_info or git_info.head == "" then + git_info_or_end_bubble = " %#CustomTablineBubbleEdge#" + else + git_info_or_end_bubble = " %#CustomTablineBubbleEdge#%#CustomTablineBubbleGit# "..git_info.head.." %#CustomTablineBubbleEdge#" + end + + return table.concat { + "%#CustomTablineBubbleEdge#", + "%#CustomTablineBubbleFiletype# ", + vim.bo.filetype == "" and "-" or vim.bo.filetype, + " %#CustomTablineBubbleEdge#", + "%#CustomTablineBubbleDirectory# ", + truncated_path, + git_info_or_end_bubble + } +end + +function Tabs() + local selected_tabnr = vim.fn.tabpagenr() + local total_tabs = vim.fn.tabpagenr('$') + + local tabs_string = '' + local i = 1 + while i <= total_tabs do + local buflist = vim.fn.tabpagebuflist(i) + local winnr = vim.fn.tabpagewinnr(i) + local file = vim.fn.fnamemodify(vim.fn.bufname(buflist[winnr]), ':p:t') + if (file == '') then + file = '[No Name]' + end + local tab_bubble, hi_label, hi_index + if (i == selected_tabnr) then + hi_index = "%#CustomTablineBubbleIndexSel#" + if (vim.bo.modified) then + hi_label = "%#CustomTablineBubbleLabelSelModified#" + else + hi_label = "%#CustomTablineBubbleLabelSel#" + end + else + hi_index = "%#CustomTablineBubbleIndex#" + hi_label = "%#CustomTablineBubbleLabel#" + end + + tab_bubble = table.concat { + "%"..i.."T", -- Start of clickable section for tab i + '%#CustomTablineBubbleEdge#', + hi_index..' '..i..' ', + '%#CustomTablineBubbleEdge#', + '%#CustomTablineBubbleEdge#', + hi_label..' '..file..' ', + '%#CustomTablineBubbleEdge#', + "%X", -- End of clickable section + ' ', + } + tabs_string = tabs_string..tab_bubble + i = i + 1 + end + return tabs_string +end + +function CustomTabline() + return table.concat { + Tabs(), + "%=", -- Switch to right side + FiletypeAndDirectoryAndGit(), + " ", + LineInfo(), + } +end + +-- Empty since all the info is in the tabline now +-- TODO Add LSP info in statusline at some point +function CustomStatusline() + return "" +end + +-- Since some of the displayed information does not update automatically in the +-- tabline, but only the statusline, we need to use this autocmd to update it +-- on relevant events +vim.api.nvim_create_autocmd({'CursorMoved', 'BufEnter'}, { + callback = function() + vim.api.nvim_command('redrawtabline') + end, +}) + +vim.api.nvim_exec([[ + set tabline=%!v:lua.CustomTabline() + set statusline=%!v:lua.CustomStatusline() +]], false) diff --git a/config/nvim/statusline.vim b/config/nvim/statusline.vim deleted file mode 100644 index a8dab1a..0000000 --- a/config/nvim/statusline.vim +++ /dev/null @@ -1,123 +0,0 @@ -" ==================================================================== -" Make sure to: -" 1. source this file somewhere at the bottom of your config. -" 2. disable any statusline plugins, as they will override this. -" ==================================================================== - -" Do not show mode under the statusline since the statusline itself changes -" color depending on mode -set noshowmode - -set laststatus=2 -" ~~~~ Statusline configuration ~~~~ -" ':help statusline' is your friend! -function! RedrawModeColors(mode) " {{{ - " Normal mode - if a:mode == 'n' - hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE - hi MyStatuslineFilename ctermfg=4 cterm=none ctermbg=0 - hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=4 - " Insert mode - elseif a:mode == 'i' - hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE - hi MyStatuslineFilename ctermfg=1 cterm=none ctermbg=0 - hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=1 - " Replace mode - elseif a:mode == 'R' - hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE - hi MyStatuslineFilename ctermfg=3 cterm=none ctermbg=0 - hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=3 - " Visual mode - elseif a:mode == 'v' || a:mode == 'V' || a:mode == '^V' - hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE - hi MyStatuslineFilename ctermfg=5 cterm=none ctermbg=0 - hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=5 - " Command mode - elseif a:mode == 'c' - hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE - hi MyStatuslineFilename ctermfg=6 cterm=none ctermbg=0 - hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=6 - " Terminal mode - elseif a:mode == 't' - hi MyStatuslineAccent ctermfg=8 cterm=NONE ctermbg=NONE - hi MyStatuslineFilename ctermfg=1 cterm=none ctermbg=0 - hi MyStatuslineAccentBody ctermbg=8 cterm=NONE ctermfg=1 - endif - " Return empty string so as not to display anything in the statusline - return '' -endfunction -" }}} -function! SetModifiedSymbol(modified) " {{{ - if a:modified == 1 - hi MyStatuslineModifiedBody ctermbg=0 cterm=bold ctermfg=1 - else - hi MyStatuslineModifiedBody ctermbg=0 cterm=bold ctermfg=8 - endif - return '●' -endfunction -" }}} -function! SetFiletype(filetype) " {{{ - if a:filetype == '' - return '-' - else - return a:filetype - endif -endfunction -" }}} - -" Statusbar items -" ==================================================================== - -" This will not be displayed, but the function RedrawModeColors will be -" called every time the mode changes, thus updating the colors used for the -" components. -set statusline=%{RedrawModeColors(mode())} -" Left side items -" ======================= -set statusline+=%#MyStatuslineAccent# -set statusline+=%#MyStatuslineAccentBody#\ -" Filename -set statusline+=%#MyStatuslineFilename#\ %.20f -set statusline+=%#MyStatuslineSeparator#\ -" Modified status -set statusline+=%#MyStatuslineModified# -set statusline+=%#MyStatuslineModifiedBody#%{SetModifiedSymbol(&modified)} -set statusline+=%#MyStatuslineModified# -" Right side items -" ======================= -set statusline+=%= -" Line and Column -set statusline+=%#MyStatuslineLineCol# -set statusline+=%#MyStatuslineLineColBody#%2l -set statusline+=\/%#MyStatuslineLineColBody#%2c -set statusline+=%#MyStatuslineLineCol# -" Padding -set statusline+=\ -" Current scroll percentage and total lines of the file -set statusline+=%#MyStatuslinePercentage# -set statusline+=%#MyStatuslinePercentageBody#%P -set statusline+=\/\%#MyStatuslinePercentageBody#%L -set statusline+=%#MyStatuslinePercentage# -" Padding -set statusline+=\ -" Filetype -set statusline+=%#MyStatuslineFiletype# -set statusline+=%#MyStatuslineFiletypeBody#%{SetFiletype(&filetype)} -set statusline+=%#MyStatuslineFiletype# - -" Setup the colors -hi StatusLine ctermfg=5 ctermbg=NONE cterm=NONE -hi StatusLineNC ctermfg=8 ctermbg=NONE cterm=bold - -hi MyStatuslineSeparator ctermfg=0 cterm=NONE ctermbg=NONE - -hi MyStatuslineModified ctermfg=0 cterm=NONE ctermbg=NONE - -hi MyStatuslineFiletype ctermbg=NONE cterm=NONE ctermfg=0 -hi MyStatuslineFiletypeBody ctermfg=5 cterm=italic ctermbg=0 - -hi MyStatuslinePercentage ctermfg=0 cterm=NONE ctermbg=NONE -hi MyStatuslinePercentageBody ctermbg=0 cterm=none ctermfg=6 - -hi MyStatuslineLineCol ctermfg=0 cterm=NONE ctermbg=NONE -hi MyStatuslineLineColBody ctermbg=0 cterm=none ctermfg=2