From 5878a205047e9f16611b2ac74390ad2e6e2ecccd Mon Sep 17 00:00:00 2001 From: DarthMooMancer Date: Thu, 31 Jul 2025 17:34:28 -0400 Subject: [PATCH] wip --- .config/nvim/README.md | 1 - .config/nvim/colors/everforest.vim | 986 ------------------ .config/nvim/init.lua | 78 +- .config/nvim/lsp/clangd.lua | 99 ++ .config/nvim/lsp/lua_ls.lua | 21 + .config/suckless/dmenu/Makefile | 37 +- .config/suckless/dmenu/config.def.h | 15 - .config/suckless/dmenu/config.h | 7 +- .config/suckless/dmenu/config.mk | 20 +- .config/suckless/dmenu/dmenu | Bin 42456 -> 0 bytes .config/suckless/dmenu/dmenu.1 | 199 ---- .config/suckless/dmenu/dmenu.c | 46 - .config/suckless/dmenu/dmenu.o | Bin 33408 -> 0 bytes .config/suckless/dmenu/dmenu_path | 6 +- .config/suckless/dmenu/drw.o | Bin 11464 -> 0 bytes .../dmenu/patches/dmenu-grid-4.9.diff | 108 -- .../dmenu/patches/dmenu-gridnav-5.2.diff | 69 -- .config/suckless/dmenu/stest | Bin 16288 -> 0 bytes .config/suckless/dmenu/stest.1 | 90 -- .config/suckless/dmenu/stest.c | 109 -- .config/suckless/dmenu/stest.o | Bin 5344 -> 0 bytes .config/suckless/dmenu/themes/everforest.h | 12 - .config/suckless/dmenu/util.o | Bin 2472 -> 0 bytes .config/suckless/dwm/Makefile | 19 +- .config/suckless/dwm/config.h | 23 +- .config/suckless/dwm/config.mk | 10 +- .config/suckless/dwm/dwm.c | 100 -- .config/suckless/dwm/transient.c | 42 - .config/suckless/dwm/util.c | 1 - .config/suckless/dwm/util.h | 2 - .config/suckless/slstatus/Makefile | 17 +- .../slstatus/{components => }/run_command.c | 4 +- .config/suckless/st/config.h | 2 +- 33 files changed, 180 insertions(+), 1943 deletions(-) delete mode 100644 .config/nvim/README.md create mode 100644 .config/nvim/lsp/clangd.lua create mode 100644 .config/nvim/lsp/lua_ls.lua delete mode 100644 .config/suckless/dmenu/config.def.h delete mode 100755 .config/suckless/dmenu/dmenu delete mode 100644 .config/suckless/dmenu/dmenu.1 delete mode 100644 .config/suckless/dmenu/dmenu.o delete mode 100644 .config/suckless/dmenu/drw.o delete mode 100644 .config/suckless/dmenu/patches/dmenu-grid-4.9.diff delete mode 100644 .config/suckless/dmenu/patches/dmenu-gridnav-5.2.diff delete mode 100755 .config/suckless/dmenu/stest delete mode 100644 .config/suckless/dmenu/stest.1 delete mode 100644 .config/suckless/dmenu/stest.c delete mode 100644 .config/suckless/dmenu/stest.o delete mode 100644 .config/suckless/dmenu/themes/everforest.h delete mode 100644 .config/suckless/dmenu/util.o delete mode 100644 .config/suckless/dwm/transient.c rename .config/suckless/slstatus/{components => }/run_command.c (90%) diff --git a/.config/nvim/README.md b/.config/nvim/README.md deleted file mode 100644 index 12099b7..0000000 --- a/.config/nvim/README.md +++ /dev/null @@ -1 +0,0 @@ -Until changes are fixed with main neovim repo, use my neovim repo that was patched to have the package manager work with my init. diff --git a/.config/nvim/colors/everforest.vim b/.config/nvim/colors/everforest.vim index 84155d6..9665683 100644 --- a/.config/nvim/colors/everforest.vim +++ b/.config/nvim/colors/everforest.vim @@ -1,11 +1,3 @@ -" ----------------------------------------------------------------------------- -" Name: Everforest -" Description: Comfortable & Pleasant Color Scheme for Vim -" Author: sainnhe -" Website: https://github.com/sainnhe/everforest -" License: MIT -" ----------------------------------------------------------------------------- - " Initialization: {{{ let s:configuration = everforest#get_configuration() let s:palette = everforest#get_palette(s:configuration.background, s:configuration.colors_override) @@ -741,488 +733,13 @@ endif highlight! link TSModuleInfoGood Green highlight! link TSModuleInfoBad Red " }}} -" github/copilot.vim {{{ -highlight! link CopilotSuggestion Grey -" }}} -" neoclide/coc.nvim {{{ -call everforest#highlight('CocHoverRange', s:palette.none, s:palette.none, 'bold,underline') -call everforest#highlight('CocSearch', s:palette.green, s:palette.none, 'bold') -call everforest#highlight('CocPumSearch', s:palette.green, s:palette.none, 'bold') -call everforest#highlight('CocMarkdownHeader', s:palette.orange, s:palette.none, 'bold') -call everforest#highlight('CocMarkdownLink', s:palette.green, s:palette.none, 'underline') -highlight! link CocMarkdownCode Green -highlight! link CocPumShortcut Grey -highlight! link CocPumVirtualText Grey -highlight! link CocPumMenu Pmenu -highlight! link CocMenuSel PmenuSel -highlight! link CocDisabled Grey -highlight! link CocSnippetVisual DiffAdd -highlight! link CocInlayHint InlayHints -highlight! link CocNotificationProgress Green -highlight! link CocNotificationButton PmenuSel -highlight! link CocSemClass TSType -highlight! link CocSemEnum TSType -highlight! link CocSemInterface TSType -highlight! link CocSemStruct TSType -highlight! link CocSemTypeParameter TSType -highlight! link CocSemVariable TSVariable -highlight! link CocSemEnumMember TSProperty -highlight! link CocSemEvent TSLabel -highlight! link CocSemModifier TSOperator -highlight! link CocErrorFloat ErrorFloat -highlight! link CocWarningFloat WarningFloat -highlight! link CocInfoFloat InfoFloat -highlight! link CocHintFloat HintFloat -highlight! link CocFloating NormalFloat -highlight! link CocFloatDividingLine Grey -highlight! link CocErrorHighlight ErrorText -highlight! link CocWarningHighlight WarningText -highlight! link CocInfoHighlight InfoText -highlight! link CocHintHighlight HintText -highlight! link CocHighlightText CurrentWord -highlight! link CocHoverRange CurrentWord -highlight! link CocErrorSign RedSign -highlight! link CocWarningSign YellowSign -highlight! link CocInfoSign BlueSign -highlight! link CocHintSign GreenSign -highlight! link CocWarningVirtualText VirtualTextWarning -highlight! link CocErrorVirtualText VirtualTextError -highlight! link CocInfoVirtualText VirtualTextInfo -highlight! link CocHintVirtualText VirtualTextHint -highlight! link CocErrorLine ErrorLine -highlight! link CocWarningLine WarningLine -highlight! link CocInfoLine InfoLine -highlight! link CocHintLine HintLine -highlight! link CocCodeLens Grey -highlight! link CocFadeOut Grey -highlight! link CocStrikeThrough Grey -highlight! link CocListMode StatusLine -highlight! link CocListPath StatusLine -highlight! link CocSelectedText Orange -highlight! link CocListsLine Fg -highlight! link CocListsDesc Grey -highlight! link HighlightedyankRegion Visual -highlight! link CocGitAddedSign GreenSign -highlight! link CocGitChangeRemovedSign PurpleSign -highlight! link CocGitChangedSign BlueSign -highlight! link CocGitRemovedSign RedSign -highlight! link CocGitTopRemovedSign RedSign -highlight! link CocInlineVirtualText Grey -" }}} -" prabirshrestha/vim-lsp {{{ -highlight! link LspErrorVirtualText VirtualTextError -highlight! link LspWarningVirtualText VirtualTextWarning -highlight! link LspInformationVirtualText VirtualTextInfo -highlight! link LspHintVirtualText VirtualTextHint -highlight! link LspErrorHighlight ErrorText -highlight! link LspWarningHighlight WarningText -highlight! link LspInformationHighlight InfoText -highlight! link LspHintHighlight HintText -highlight! link lspReference CurrentWord -highlight! link lspInlayHintsType InlayHints -highlight! link lspInlayHintsParameter InlayHints -highlight! link LspSemanticType TSType -highlight! link LspSemanticClass TSType -highlight! link LspSemanticEnum TSType -highlight! link LspSemanticInterface TSType -highlight! link LspSemanticStruct TSType -highlight! link LspSemanticTypeParameter TSType -highlight! link LspSemanticParameter TSParameter -highlight! link LspSemanticVariable TSVariable -highlight! link LspSemanticProperty TSProperty -highlight! link LspSemanticEnumMember TSProperty -highlight! link LspSemanticEvents TSLabel -highlight! link LspSemanticFunction TSFunction -highlight! link LspSemanticMethod TSMethod -highlight! link LspSemanticKeyword TSKeyword -highlight! link LspSemanticModifier TSOperator -highlight! link LspSemanticComment TSComment -highlight! link LspSemanticString TSString -highlight! link LspSemanticNumber TSNumber -highlight! link LspSemanticRegexp TSStringRegex -highlight! link LspSemanticOperator TSOperator -" }}} -" yegappan/lsp {{{ -highlight! link LspDiagInlineError ErrorText -highlight! link LspDiagInlineWarning WarningText -highlight! link LspDiagInlineInfo InfoText -highlight! link LspDiagInlineHint HintText -highlight! link LspDiagSignErrorText RedSign -highlight! link LspDiagSignWarningText YellowSign -highlight! link LspDiagSignInfoText BlueSign -highlight! link LspDiagSignHintText GreenSign -highlight! link LspDiagVirtualTextError VirtualTextError -highlight! link LspDiagVirtualTextWarning VirtualTextWarning -highlight! link LspDiagVirtualTextInfo VirtualTextInfo -highlight! link LspDiagVirtualTextHint VirtualTextHint -highlight! link LspInlayHintsParam InlayHints -highlight! link LspSigActiveParameter DiffAdd -" }}} -" ycm-core/YouCompleteMe {{{ -highlight! link YcmErrorSign RedSign -highlight! link YcmWarningSign YellowSign -highlight! link YcmErrorLine ErrorLine -highlight! link YcmWarningLine WarningLine -highlight! link YcmErrorSection ErrorText -highlight! link YcmWarningSection WarningText -highlight! link YcmInlayHint InlayHints -highlight! link YcmErrorText VirtualTextError -highlight! link YcmWarningText VirtualTextWarning -if !has('nvim') && has('textprop') && !exists('g:YCM_HIGHLIGHT_GROUP') - let g:YCM_HIGHLIGHT_GROUP = { - \ 'typeParameter': 'TSType', - \ 'parameter': 'TSParameter', - \ 'variable': 'TSVariable', - \ 'property': 'TSProperty', - \ 'enumMember': 'TSVariableBuiltin', - \ 'event': 'TSLabel', - \ 'member': 'TSVariable', - \ 'method': 'TSMethod', - \ 'class': 'TSType', - \ 'namespace': 'TSNamespace', - \ } - for tokenType in keys( g:YCM_HIGHLIGHT_GROUP ) - try - call prop_type_add( 'YCM_HL_' . tokenType, - \ { 'highlight': g:YCM_HIGHLIGHT_GROUP[ tokenType ] } ) - catch - endtry - endfor -endif -" }}} -" dense-analysis/ale {{{ -highlight! link ALEError ErrorText -highlight! link ALEWarning WarningText -highlight! link ALEInfo InfoText -highlight! link ALEErrorSign RedSign -highlight! link ALEWarningSign YellowSign -highlight! link ALEInfoSign BlueSign -highlight! link ALEErrorLine ErrorLine -highlight! link ALEWarningLine WarningLine -highlight! link ALEInfoLine InfoLine -highlight! link ALEVirtualTextError VirtualTextError -highlight! link ALEVirtualTextWarning VirtualTextWarning -highlight! link ALEVirtualTextInfo VirtualTextInfo -highlight! link ALEVirtualTextStyleError VirtualTextHint -highlight! link ALEVirtualTextStyleWarning VirtualTextHint -" }}} -" neomake/neomake {{{ -highlight! link NeomakeError ErrorText -highlight! link NeomakeWarning WarningText -highlight! link NeomakeInfo InfoText -highlight! link NeomakeMessage HintText -highlight! link NeomakeErrorSign RedSign -highlight! link NeomakeWarningSign YellowSign -highlight! link NeomakeInfoSign BlueSign -highlight! link NeomakeMessageSign AquaSign -highlight! link NeomakeVirtualtextError VirtualTextError -highlight! link NeomakeVirtualtextWarning VirtualTextWarning -highlight! link NeomakeVirtualtextInfo VirtualTextInfo -highlight! link NeomakeVirtualtextMessag VirtualTextHint -" }}} -" vim-syntastic/syntastic {{{ -highlight! link SyntasticError ErrorText -highlight! link SyntasticWarning WarningText -highlight! link SyntasticErrorSign RedSign -highlight! link SyntasticWarningSign YellowSign -highlight! link SyntasticErrorLine ErrorLine -highlight! link SyntasticWarningLine WarningLine -" }}} -" Yggdroot/LeaderF {{{ -if !exists('g:Lf_StlColorscheme') - let g:Lf_StlColorscheme = 'everforest' -endif -if !exists('g:Lf_PopupColorscheme') - let g:Lf_PopupColorscheme = 'everforest' -endif -call everforest#highlight('Lf_hl_match', s:palette.green, s:palette.none, 'bold') -call everforest#highlight('Lf_hl_match0', s:palette.green, s:palette.none, 'bold') -call everforest#highlight('Lf_hl_match1', s:palette.aqua, s:palette.none, 'bold') -call everforest#highlight('Lf_hl_match2', s:palette.blue, s:palette.none, 'bold') -call everforest#highlight('Lf_hl_match3', s:palette.purple, s:palette.none, 'bold') -call everforest#highlight('Lf_hl_match4', s:palette.orange, s:palette.none, 'bold') -call everforest#highlight('Lf_hl_matchRefine', s:palette.red, s:palette.none, 'bold') -call everforest#highlight('Lf_hl_popup_normalMode', s:palette.bg0, s:palette.red, 'bold') -call everforest#highlight('Lf_hl_popup_inputMode', s:palette.bg0, s:palette.green, 'bold') -call everforest#highlight('Lf_hl_popup_category', s:palette.fg, s:palette.bg4) -call everforest#highlight('Lf_hl_popup_nameOnlyMode', s:palette.fg, s:palette.bg3) -call everforest#highlight('Lf_hl_popup_fullPathMode', s:palette.fg, s:palette.bg3) -call everforest#highlight('Lf_hl_popup_fuzzyMode', s:palette.fg, s:palette.bg3) -call everforest#highlight('Lf_hl_popup_regexMode', s:palette.fg, s:palette.bg3) -call everforest#highlight('Lf_hl_popup_lineInfo', s:palette.yellow, s:palette.bg4) -call everforest#highlight('Lf_hl_popup_total', s:palette.bg0, s:palette.orange) -call everforest#highlight('Lf_hl_popup_cursor', s:palette.bg0, s:palette.green) -highlight! link Lf_hl_cursorline Fg -highlight! link Lf_hl_selection DiffAdd -highlight! link Lf_hl_rgHighlight Visual -highlight! link Lf_hl_gtagsHighlight Visual -highlight! link Lf_hl_popup_inputText Pmenu -highlight! link Lf_hl_popup_window Pmenu -highlight! link Lf_hl_popup_prompt Green -highlight! link Lf_hl_popup_cwd Pmenu -highlight! link Lf_hl_popup_blank Lf_hl_popup_window -highlight! link Lf_hl_popup_spin Red -" }}} -" liuchengxu/vim-clap {{{ -call everforest#highlight('ClapSelected', s:palette.red, s:palette.none, 'bold') -call everforest#highlight('ClapCurrentSelection', s:palette.none, s:palette.bg1, 'bold') -call everforest#highlight('ClapSpinner', s:palette.orange, s:palette.bg2, 'bold') -call everforest#highlight('ClapBlines', s:palette.fg, s:palette.none) -call everforest#highlight('ClapProviderId', s:palette.fg, s:palette.none, 'bold') -call everforest#highlight('ClapMatches1', s:palette.red, s:palette.none, 'bold') -call everforest#highlight('ClapMatches2', s:palette.orange, s:palette.none, 'bold') -call everforest#highlight('ClapMatches3', s:palette.yellow, s:palette.none, 'bold') -call everforest#highlight('ClapMatches4', s:palette.aqua, s:palette.none, 'bold') -call everforest#highlight('ClapMatches5', s:palette.blue, s:palette.none, 'bold') -call everforest#highlight('ClapMatches6', s:palette.purple, s:palette.none, 'bold') -call everforest#highlight('ClapFuzzyMatches', s:palette.green, s:palette.none, 'bold') -call everforest#highlight('ClapNoMatchesFound', s:palette.red, s:palette.none, 'bold') -highlight! link ClapInput Pmenu -highlight! link ClapDisplay Pmenu -highlight! link ClapPreview Pmenu -highlight! link ClapFuzzyMatches1 ClapFuzzyMatches -highlight! link ClapFuzzyMatches2 ClapFuzzyMatches -highlight! link ClapFuzzyMatches3 ClapFuzzyMatches -highlight! link ClapFuzzyMatches4 ClapFuzzyMatches -highlight! link ClapFuzzyMatches5 ClapFuzzyMatches -highlight! link ClapFuzzyMatches6 ClapFuzzyMatches -highlight! link ClapFuzzyMatches7 ClapFuzzyMatches -highlight! link ClapFuzzyMatches8 ClapFuzzyMatches -highlight! link ClapFuzzyMatches9 ClapFuzzyMatches -highlight! link ClapFuzzyMatches10 ClapFuzzyMatches -highlight! link ClapFuzzyMatches11 ClapFuzzyMatches -highlight! link ClapFuzzyMatches12 ClapFuzzyMatches -highlight! link ClapBlinesLineNr Grey -highlight! link ClapProviderColon ClapBlines -highlight! link ClapProviderAbout ClapBlines -highlight! link ClapFile Fg -highlight! link ClapSearchText ClapFuzzyMatches -" }}} -" junegunn/fzf.vim {{{ -let g:fzf_colors = { - \ 'fg': ['fg', 'Normal'], - \ 'bg': ['bg', 'Normal'], - \ 'hl': ['fg', 'Green'], - \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], - \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], - \ 'hl+': ['fg', 'Aqua'], - \ 'info': ['fg', 'Aqua'], - \ 'border': ['fg', 'Grey'], - \ 'prompt': ['fg', 'Orange'], - \ 'pointer': ['fg', 'Blue'], - \ 'marker': ['fg', 'Yellow'], - \ 'spinner': ['fg', 'Yellow'], - \ 'header': ['fg', 'Grey'] - \ } -" }}} -" Shougo/denite.nvim {{{ -call everforest#highlight('deniteMatchedChar', s:palette.green, s:palette.none, 'bold') -call everforest#highlight('deniteMatchedRange', s:palette.green, s:palette.none, 'bold,underline') -call everforest#highlight('deniteInput', s:palette.green, s:palette.bg3, 'bold') -call everforest#highlight('deniteStatusLineNumber', s:palette.purple, s:palette.bg3) -call everforest#highlight('deniteStatusLinePath', s:palette.fg, s:palette.bg3) -highlight! link deniteSelectedLin Green -" }}} -" kien/ctrlp.vim {{{ -call everforest#highlight('CtrlPMatch', s:palette.green, s:palette.none, 'bold') -call everforest#highlight('CtrlPPrtBase', s:palette.bg3, s:palette.none) -call everforest#highlight('CtrlPLinePre', s:palette.bg3, s:palette.none) -call everforest#highlight('CtrlPMode1', s:palette.blue, s:palette.bg3, 'bold') -call everforest#highlight('CtrlPMode2', s:palette.bg0, s:palette.blue, 'bold') -call everforest#highlight('CtrlPStats', s:palette.grey1, s:palette.bg3, 'bold') -highlight! link CtrlPNoEntries Red -highlight! link CtrlPPrtCursor Blue -" }}} -" airblade/vim-gitgutter {{{ -highlight! link GitGutterAdd GreenSign -highlight! link GitGutterChange BlueSign -highlight! link GitGutterDelete RedSign -highlight! link GitGutterChangeDelete PurpleSign -highlight! link GitGutterAddLine DiffAdd -highlight! link GitGutterChangeLine DiffChange -highlight! link GitGutterDeleteLine DiffDelete -highlight! link GitGutterChangeDeleteLine DiffChange -highlight! link GitGutterAddLineNr Green -highlight! link GitGutterChangeLineNr Blue -highlight! link GitGutterDeleteLineNr Red -highlight! link GitGutterChangeDeleteLineNr Purple -" }}} -" mhinz/vim-signify {{{ -highlight! link SignifySignAdd GreenSign -highlight! link SignifySignChange BlueSign -highlight! link SignifySignDelete RedSign -highlight! link SignifySignChangeDelete PurpleSign -highlight! link SignifyLineAdd DiffAdd -highlight! link SignifyLineChange DiffChange -highlight! link SignifyLineChangeDelete DiffChange -highlight! link SignifyLineDelete DiffDelete -" }}} -" andymass/vim-matchup {{{ -call everforest#highlight('MatchParenCur', s:palette.none, s:palette.none, 'bold') -call everforest#highlight('MatchWord', s:palette.none, s:palette.none, 'underline') -call everforest#highlight('MatchWordCur', s:palette.none, s:palette.none, 'underline') -" }}} -" easymotion/vim-easymotion {{{ -highlight! link EasyMotionTarget Search -highlight! link EasyMotionShade Grey -" }}} -" justinmk/vim-sneak {{{ -call everforest#highlight('SneakLabelMask', s:palette.orange, s:palette.orange) -highlight! link Sneak Search -highlight! link SneakLabel Search -highlight! link SneakScope DiffText -" }}} -" rhysd/clever-f.vim {{{ -highlight! link CleverFDefaultLabel Search -" }}} -" terryma/vim-multiple-cursors {{{ -highlight! link multiple_cursors_cursor Cursor -highlight! link multiple_cursors_visual Visual -" }}} -" mg979/vim-visual-multi {{{ -call everforest#highlight('VMCursor', s:palette.blue, s:palette.bg_blue) -let g:VM_Mono_hl = 'VMCursor' -let g:VM_Extend_hl = 'Visual' -let g:VM_Cursor_hl = 'VMCursor' -let g:VM_Insert_hl = 'VMCursor' -" }}} -" dominikduda/vim_current_word {{{ -highlight! link CurrentWordTwins CurrentWord -" }}} -" RRethy/vim-illuminate {{{ -highlight! link illuminatedWord CurrentWord -highlight! link IlluminatedWordText CurrentWord -highlight! link IlluminatedWordRead CurrentWord -highlight! link IlluminatedWordWrite CurrentWord -" }}} -" itchyny/vim-cursorword {{{ -highlight! link CursorWord0 CurrentWord -highlight! link CursorWord1 CurrentWord -" }}} -" Yggdroot/indentLine {{{ -if s:configuration.ui_contrast ==# 'low' - let g:indentLine_color_gui = s:palette.bg5[0] - let g:indentLine_color_term = s:palette.bg5[1] -else - let g:indentLine_color_gui = s:palette.grey0[0] - let g:indentLine_color_term = s:palette.grey0[1] -endif -" }}} -" nathanaelkane/vim-indent-guides {{{ -if get(g:, 'indent_guides_auto_colors', 1) == 0 - call everforest#highlight('IndentGuidesOdd', s:palette.bg0, s:palette.bg1) - call everforest#highlight('IndentGuidesEven', s:palette.bg0, s:palette.bg2) -endif -" }}} -" thiagoalessio/rainbow_levels.vim {{{ -highlight! link RainbowLevel0 Red -highlight! link RainbowLevel1 Orange -highlight! link RainbowLevel2 Yellow -highlight! link RainbowLevel3 Green -highlight! link RainbowLevel4 Aqua -highlight! link RainbowLevel5 Blue -highlight! link RainbowLevel6 Purple -highlight! link RainbowLevel7 Yellow -highlight! link RainbowLevel8 Green -" }}} -" luochen1990/rainbow {{{ -if !exists('g:rbpt_colorpairs') - let g:rbpt_colorpairs = [['blue', s:palette.blue[0]], ['magenta', s:palette.purple[0]], - \ ['red', s:palette.red[0]], ['166', s:palette.orange[0]]] -endif - -let g:rainbow_guifgs = [ s:palette.orange[0], s:palette.red[0], s:palette.purple[0], s:palette.blue[0] ] -let g:rainbow_ctermfgs = [ '166', 'red', 'magenta', 'blue' ] - -if !exists('g:rainbow_conf') - let g:rainbow_conf = {} -endif -if !has_key(g:rainbow_conf, 'guifgs') - let g:rainbow_conf['guifgs'] = g:rainbow_guifgs -endif -if !has_key(g:rainbow_conf, 'ctermfgs') - let g:rainbow_conf['ctermfgs'] = g:rainbow_ctermfgs -endif - -let g:niji_dark_colours = g:rbpt_colorpairs -let g:niji_light_colours = g:rbpt_colorpairs -" }}} -" kshenoy/vim-signature {{{ -highlight! link SignatureMarkText BlueSign -highlight! link SignatureMarkerText PurpleSign -" }}} -" ap/vim-buftabline {{{ -highlight! link BufTabLineCurrent TabLineSel -highlight! link BufTabLineActive TabLine -highlight! link BufTabLineHidden TabLineFill -highlight! link BufTabLineFill TabLineFill -" }}} -" liuchengxu/vim-which-key {{{ -highlight! link WhichKey Red -highlight! link WhichKeySeperator Green -highlight! link WhichKeyGroup Yellow -highlight! link WhichKeyDesc Blue -" }}} -" junegunn/limelight.vim {{{ -let g:limelight_conceal_ctermfg = s:palette.grey0[1] -let g:limelight_conceal_guifg = s:palette.grey0[0] -" }}} -" unblevable/quick-scope {{{ -call everforest#highlight('QuickScopePrimary', s:palette.aqua, s:palette.none, 'underline') -call everforest#highlight('QuickScopeSecondary', s:palette.blue, s:palette.none, 'underline') -" }}} -" APZelos/blamer.nvim {{{ -highlight! link Blamer Grey -" }}} -" cohama/agit.vim {{{ -highlight! link agitTree Grey -highlight! link agitDate Green -highlight! link agitRemote Red -highlight! link agitHead Orange -highlight! link agitRef Aqua -highlight! link agitTag Orange -highlight! link agitStatFile Blue -highlight! link agitStatRemoved Red -highlight! link agitStatAdded Green -highlight! link agitStatMessage Orange -highlight! link agitDiffRemove Red -highlight! link agitDiffAdd Green -highlight! link agitDiffHeader Purple -" }}} -" voldikss/vim-floaterm {{{ -highlight! link FloatermBorder Grey -" }}} -" MattesGroeger/vim-bookmarks {{{ -highlight! link BookmarkSign BlueSign -highlight! link BookmarkAnnotationSign GreenSign -highlight! link BookmarkLine DiffChange -highlight! link BookmarkAnnotationLine DiffAdd -" }}} if has('nvim') -" hrsh7th/nvim-cmp {{{ -call everforest#highlight('CmpItemAbbrMatch', s:palette.green, s:palette.none, 'bold') -call everforest#highlight('CmpItemAbbrMatchFuzzy', s:palette.green, s:palette.none, 'bold') -highlight! link CmpItemAbbr Fg -highlight! link CmpItemAbbrDeprecated Grey -highlight! link CmpItemMenu Fg -highlight! link CmpItemKind Yellow -for kind in g:everforest_lsp_kind_color - execute "highlight! link CmpItemKind" . kind[0] . " " . kind[1] -endfor -" }}} " Saghen/blink.cmp {{{ call everforest#highlight('BlinkCmpLabelMatch', s:palette.green, s:palette.none, 'bold') for kind in g:everforest_lsp_kind_color execute "highlight! link BlinkCmpKind" . kind[0] . " " . kind[1] endfor " }}} -" SmiteshP/nvim-navic {{{ -highlight! link NavicText Fg -highlight! link NavicSeparator Grey -for kind in g:everforest_lsp_kind_color - execute "highlight! link NavicIcons" . kind[0] . " " . kind[1] -endfor -" }}} " folke/trouble.nvim {{{ highlight! link TroubleText Fg highlight! link TroubleSource Grey @@ -1234,168 +751,6 @@ highlight! link TelescopeBorder Grey highlight! link TelescopePromptPrefix Orange highlight! link TelescopeSelection DiffAdd " }}} -" ibhagwan/fzf-lua {{{ -highlight! link FzfLuaBorder Grey -" }}} -" folke/snacks.nvim {{{ -highlight! link SnacksPicker Normal -highlight! link SnacksPickerBorder Grey -highlight! link SnacksPickerTitle Title -highlight! link SnacksPickerFooter SnacksPickerTitle -highlight! link SnacksPickerPrompt Orange -highlight! link SnacksPickerInputCursorLine Normal -highlight! link SnacksPickerListCursorLine DiffAdd -call everforest#highlight('SnacksPickerMatch', s:palette.green, s:palette.none, 'bold') -highlight! link SnacksPickerToggle CursorLine -highlight! link SnacksPickerDir Comment -highlight! link SnacksPickerBufFlags Grey -highlight! link SnacksPickerSelected Aqua -highlight! link SnacksPickerKeymapRhs Grey -" }}} -" lewis6991/gitsigns.nvim {{{ -highlight! link GitSignsAdd GreenSign -highlight! link GitSignsChange BlueSign -highlight! link GitSignsDelete RedSign -highlight! link GitSignsAddNr Green -highlight! link GitSignsChangeNr Blue -highlight! link GitSignsDeleteNr Red -highlight! link GitSignsAddLn DiffAdd -highlight! link GitSignsChangeLn DiffChange -highlight! link GitSignsDeleteLn DiffDelete -highlight! link GitSignsCurrentLineBlame Grey -" }}} -" phaazon/hop.nvim {{{ -call everforest#highlight('HopNextKey', s:palette.orange, s:palette.none, 'bold') -call everforest#highlight('HopNextKey1', s:palette.green, s:palette.none, 'bold') -highlight! link HopNextKey2 Green -highlight! link HopUnmatched Grey -" }}} -" lukas-reineke/indent-blankline.nvim {{{ -call everforest#highlight('IblScope', s:palette.grey1, s:palette.none, 'nocombine') -call everforest#highlight('IblIndent', s:palette.bg4, s:palette.none, 'nocombine') -call everforest#highlight('IndentBlanklineContextStart', s:palette.none, s:palette.bg2) -highlight! link IndentBlanklineContextChar IblScope -highlight! link IndentBlanklineChar IblIndent -highlight! link IndentBlanklineSpaceChar IndentBlanklineChar -highlight! link IndentBlanklineSpaceCharBlankline IndentBlanklineChar -" }}} -" HiPhish/rainbow-delimiters.nvim {{{ -highlight! link RainbowDelimiterRed Red -highlight! link RainbowDelimiterOrange Orange -highlight! link RainbowDelimiterYellow Yellow -highlight! link RainbowDelimiterGreen Green -highlight! link RainbowDelimiterCyan Aqua -highlight! link RainbowDelimiterBlue Blue -highlight! link RainbowDelimiterViolet Purple -" }}} -" romgrk/barbar.nvim {{{ -call everforest#highlight('BufferCurrent', s:palette.fg, s:palette.bg0) -call everforest#highlight('BufferCurrentIndex', s:palette.fg, s:palette.bg0) -call everforest#highlight('BufferCurrentMod', s:palette.blue, s:palette.bg0) -call everforest#highlight('BufferCurrentTarget', s:palette.red, s:palette.bg0, 'bold') -call everforest#highlight('BufferCurrentSign', s:palette.statusline1, s:palette.bg0) -call everforest#highlight('BufferCurrentADDED', s:palette.green, s:palette.bg0) -call everforest#highlight('BufferCurrentDELETED', s:palette.red, s:palette.bg0) -call everforest#highlight('BufferCurrentCHANGED', s:palette.blue, s:palette.bg0) -call everforest#highlight('BufferVisible', s:palette.fg, s:palette.bg_dim) -call everforest#highlight('BufferVisibleIndex', s:palette.fg, s:palette.bg_dim) -call everforest#highlight('BufferVisibleMod', s:palette.blue, s:palette.bg_dim) -call everforest#highlight('BufferVisibleSign', s:palette.statusline1, s:palette.bg_dim) -call everforest#highlight('BufferVisibleTarget', s:palette.yellow, s:palette.bg_dim, 'bold') -call everforest#highlight('BufferInactive', s:palette.grey1, s:palette.bg_dim) -call everforest#highlight('BufferInactiveIndex', s:palette.grey1, s:palette.bg_dim) -call everforest#highlight('BufferInactiveMod', s:palette.grey1, s:palette.bg_dim) -call everforest#highlight('BufferInactiveTarget', s:palette.yellow, s:palette.bg_dim, 'bold') -call everforest#highlight('BufferInactiveSign', s:palette.grey0, s:palette.bg_dim) -highlight! link BufferInactiveADDED BufferInactiveSign -highlight! link BufferInactiveDELETED BufferInactiveSign -highlight! link BufferInactiveCHANGED BufferInactiveSign -call everforest#highlight('BufferTabpages', s:palette.grey1, s:palette.bg_dim, 'bold') -call everforest#highlight('BufferTabpagesSep', s:palette.grey0, s:palette.bg_dim, 'bold') -call everforest#highlight('BufferTabpageFill', s:palette.bg_dim, s:palette.bg_dim) -" }}} -" rcarriga/nvim-notify {{{ -call everforest#highlight('NotifyBackground', s:palette.none, s:palette.bg0) -highlight! link NotifyERRORBorder Red -highlight! link NotifyWARNBorder Yellow -highlight! link NotifyINFOBorder Green -highlight! link NotifyDEBUGBorder Grey -highlight! link NotifyTRACEBorder Purple -highlight! link NotifyERRORIcon Red -highlight! link NotifyWARNIcon Yellow -highlight! link NotifyINFOIcon Green -highlight! link NotifyDEBUGIcon Grey -highlight! link NotifyTRACEIcon Purple -highlight! link NotifyERRORTitle Red -highlight! link NotifyWARNTitle Yellow -highlight! link NotifyINFOTitle Green -highlight! link NotifyDEBUGTitle Grey -highlight! link NotifyTRACETitle Purple -" }}} -" rcarriga/nvim-dap-ui {{{ -call everforest#highlight('DapUIModifiedValue', s:palette.blue, s:palette.none, 'bold') -call everforest#highlight('DapUIBreakpointsCurrentLine', s:palette.blue, s:palette.none, 'bold') -call everforest#highlight('DapUIPlayPause', s:palette.green, s:palette.bg2) -call everforest#highlight('DapUIRestart', s:palette.green, s:palette.bg2) -call everforest#highlight('DapUIStop', s:palette.red, s:palette.bg2) -call everforest#highlight('DapUIUnavailable', s:palette.grey1, s:palette.bg2) -call everforest#highlight('DapUIStepOver', s:palette.blue, s:palette.bg2) -call everforest#highlight('DapUIStepInto', s:palette.blue, s:palette.bg2) -call everforest#highlight('DapUIStepBack', s:palette.blue, s:palette.bg2) -call everforest#highlight('DapUIStepOut', s:palette.blue, s:palette.bg2) -highlight! link DapUIScope Blue -highlight! link DapUIType Purple -highlight! link DapUIDecoration Blue -highlight! link DapUIThread Green -highlight! link DapUIStoppedThread Blue -highlight! link DapUISource Purple -highlight! link DapUILineNumber Blue -highlight! link DapUIFloatBorder Blue -highlight! link DapUIWatchesEmpty Red -highlight! link DapUIWatchesValue Green -highlight! link DapUIWatchesError Red -highlight! link DapUIBreakpointsPath Blue -highlight! link DapUIBreakpointsInfo Green -" }}} -" glepnir/lspsaga.nvim {{{ -call everforest#highlight('LspFloatWinBorder', s:palette.bg0, s:palette.bg0) -call everforest#highlight('LspSagaDiagnosticHeader', s:palette.orange, s:palette.none, 'bold') -call everforest#highlight('LspSagaCodeActionTitle', s:palette.purple, s:palette.none, 'bold') -call everforest#highlight('DefinitionPreviewTitle', s:palette.blue, s:palette.none, 'bold') -highlight! link LspSagaDiagnosticError Red -highlight! link LspSagaDiagnosticWarn Yellow -highlight! link LspSagaDiagnosticInfo Blue -highlight! link LspSagaDiagnosticHint Green -highlight! link LspSagaErrorTrunCateLine LspSagaDiagnosticError -highlight! link LspSagaWarnTrunCateLine LspSagaDiagnosticWarn -highlight! link LspSagaInfoTrunCateLine LspSagaDiagnosticInfo -highlight! link LspSagaHintTrunCateLine LspSagaDiagnosticHint -highlight! link LspSagaDiagnosticSource Orange -highlight! link LspSagaDiagnosticBorder Orange -highlight! link LspSagaRenameBorder Purple -highlight! link LspSagaRenamePromptPrefix Blue -highlight! link LspSagaCodeActionBorder Purple -highlight! link LspSagaCodeActionTruncateLine Purple -highlight! link LspSagaCodeActionContent Green -highlight! link LspSagaHoverBorder Green -highlight! link LspSagaDocTruncateLine Green -highlight! link LspSagaSignatureHelpBorder Green -highlight! link LspSagaShTruncateLine Green -highlight! link LspSagaDefPreviewBorder Blue -highlight! link DefinitionIcon Blue -highlight! link LspLinesDiagBorder Yellow -highlight! link LineDiagTuncateLine Yellow -highlight! link LspSagaAutoPreview Green -highlight! link LspSagaFinderSelection Fg -highlight! link DiagnosticWarning DiagnosticWarn -highlight! link DiagnosticInformation DiagnosticInfo -highlight! link ReferencesCount Grey -highlight! link DefinitionCount Grey -highlight! link TargetFileName Grey -" }}} -" b0o/incline.nvim {{{ -call everforest#highlight('InclineNormalNC', s:palette.grey1, s:palette.bg2) -" }}} " echasnovski/mini.nvim {{{ call everforest#highlight('MiniAnimateCursor', s:palette.none, s:palette.none, 'reverse,nocombine') call everforest#highlight('MiniFilesFile', s:palette.fg, s:palette.none) @@ -1516,21 +871,6 @@ highlight! link MiniStatuslineInactive Grey highlight! link MiniSurround IncSearch highlight! link MiniTablineFill TabLineFill " }}} -" ggandor/lightspeed.nvim {{{ -call everforest#highlight('LightspeedLabel', s:palette.red, s:palette.none, 'bold,underline') -call everforest#highlight('LightspeedLabelDistant', s:palette.blue, s:palette.none, 'bold,underline') -call everforest#highlight('LightspeedShortcut', s:palette.bg0, s:palette.red, 'bold') -call everforest#highlight('LightspeedUnlabeledMatch', s:palette.fg, s:palette.none, 'bold') -call everforest#highlight('LightspeedPendingOpArea', s:palette.bg0, s:palette.green) -highlight! link LightspeedMaskedChar Purple -highlight! link LightspeedGreyWash Grey -" }}} -" nvim-neotest/neotest {{{ -highlight! link NeotestPassed GreenSign -highlight! link NeotestFailed RedSign -highlight! link NeotestRunning YellowSign -highlight! link NeotestSkipped BlueSign -" }}} endif " }}} " Extended File Types: {{{ @@ -1564,319 +904,6 @@ else finish endif endif -" syn_begin: vim-plug {{{ -" https://github.com/junegunn/vim-plug -call everforest#highlight('plug1', s:palette.orange, s:palette.none, 'bold') -call everforest#highlight('plugNumber', s:palette.yellow, s:palette.none, 'bold') -highlight! link plug2 Green -highlight! link plugBracket Grey -highlight! link plugName Aqua -highlight! link plugDash Orange -highlight! link plugError Red -highlight! link plugNotLoaded Grey -highlight! link plugRelDate Grey -highlight! link plugH2 Orange -highlight! link plugMessage Orange -highlight! link plugStar Red -highlight! link plugUpdate Blue -highlight! link plugDeleted Grey -highlight! link plugEdge Yellow -highlight! link plugSha Green -" syn_end }}} -" syn_begin: packer {{{ -" https://github.com/wbthomason/packer.nvim -highlight! link packerSuccess Aqua -highlight! link packerFail Red -highlight! link packerStatusSuccess Fg -highlight! link packerStatusFail Fg -highlight! link packerWorking Yellow -highlight! link packerString Yellow -highlight! link packerPackageNotLoaded Grey -highlight! link packerRelDate Grey -highlight! link packerPackageName Green -highlight! link packerOutput Orange -highlight! link packerHash Green -highlight! link packerTimeTrivial Blue -highlight! link packerTimeHigh Red -highlight! link packerTimeMedium Yellow -highlight! link packerTimeLow Green -" syn_end }}} -" syn_begin: coctree {{{ -" https://github.com/neoclide/coc.nvim -highlight! link CocTreeOpenClose Aqua -highlight! link CocTreeDescription Grey -for kind in g:everforest_lsp_kind_color - execute "highlight! link CocSymbol" . kind[0] . " " . kind[1] -endfor -" syn_end }}} -" syn_begin: coc-explorer {{{ -" https://github.com/weirongxu/coc-explorer -highlight! link CocExplorerBufferRoot Orange -highlight! link CocExplorerBufferExpandIcon Aqua -highlight! link CocExplorerBufferBufnr Purple -highlight! link CocExplorerBufferModified Yellow -highlight! link CocExplorerBufferReadonly Red -highlight! link CocExplorerBufferBufname Grey -highlight! link CocExplorerBufferFullpath Grey -highlight! link CocExplorerFileRoot Orange -highlight! link CocExplorerFileRootName Green -highlight! link CocExplorerFileExpandIcon Aqua -highlight! link CocExplorerFileFullpath Grey -highlight! link CocExplorerFileDirectory Green -highlight! link CocExplorerFileGitStaged Purple -highlight! link CocExplorerFileGitUnstaged Yellow -highlight! link CocExplorerFileGitRootStaged Purple -highlight! link CocExplorerFileGitRootUnstaged Yellow -highlight! link CocExplorerGitPathChange Fg -highlight! link CocExplorerGitContentChange Fg -highlight! link CocExplorerGitRenamed Purple -highlight! link CocExplorerGitCopied Fg -highlight! link CocExplorerGitAdded Green -highlight! link CocExplorerGitUntracked Blue -highlight! link CocExplorerGitUnmodified Fg -highlight! link CocExplorerGitUnmerged Orange -highlight! link CocExplorerGitMixed Aqua -highlight! link CocExplorerGitModified Yellow -highlight! link CocExplorerGitDeleted Red -highlight! link CocExplorerGitIgnored Grey -highlight! link CocExplorerFileSize Blue -highlight! link CocExplorerTimeAccessed Aqua -highlight! link CocExplorerTimeCreated Aqua -highlight! link CocExplorerTimeModified Aqua -highlight! link CocExplorerIndentLine Conceal -highlight! link CocExplorerHelpDescription Grey -highlight! link CocExplorerHelpHint Grey -highlight! link CocExplorerDiagnosticError Red -highlight! link CocExplorerDiagnosticWarning Yellow -highlight! link CocExplorerFileHidden Grey -" syn_end }}} -" syn_begin: tagbar {{{ -" https://github.com/majutsushi/tagbar -highlight! link TagbarFoldIcon Green -highlight! link TagbarSignature Green -highlight! link TagbarKind Red -highlight! link TagbarScope Orange -highlight! link TagbarNestedKind Aqua -highlight! link TagbarVisibilityPrivate Red -highlight! link TagbarVisibilityPublic Blue -" syn_end }}} -" syn_begin: vista/vista_kind/vista_markdown {{{ -" https://github.com/liuchengxu/vista.vim -highlight! link VistaBracket Grey -highlight! link VistaChildrenNr Orange -highlight! link VistaScope Red -highlight! link VistaTag Green -highlight! link VistaPrefix Grey -highlight! link VistaIcon Orange -highlight! link VistaScopeKind Yellow -highlight! link VistaColon Grey -highlight! link VistaLineNr Grey -highlight! link VistaHeadNr Fg -highlight! link VistaPublic Green -highlight! link VistaProtected Yellow -highlight! link VistaPrivate Red -" syn_end }}} -" syn_begin: Outline {{{ -" https://github.com/simrat39/symbols-outline.nvim -highlight! link FocusedSymbol NormalFloat -" syn_end }}} -" syn_begin: aerial {{{ -" https://github.com/stevearc/aerial.nvim -highlight! link AerialLine CursorLine -highlight! link AerialGuide LineNr -for kind in g:everforest_lsp_kind_color - execute "highlight! link Aerial" . kind[0] . "Icon " . kind[1] -endfor -" syn_end }}} -" syn_begin: nerdtree {{{ -" https://github.com/preservim/nerdtree -highlight! link NERDTreeDir Green -highlight! link NERDTreeDirSlash Aqua -highlight! link NERDTreeOpenable Orange -highlight! link NERDTreeClosable Orange -highlight! link NERDTreeFile Fg -highlight! link NERDTreeExecFile Yellow -highlight! link NERDTreeUp Grey -highlight! link NERDTreeCWD Aqua -highlight! link NERDTreeHelp LightGrey -highlight! link NERDTreeToggleOn Green -highlight! link NERDTreeToggleOff Red -highlight! link NERDTreeFlags Orange -highlight! link NERDTreeLinkFile Grey -highlight! link NERDTreeLinkTarget Green -" syn_end }}} -" syn_begin: dirvish {{{ -" https://github.com/justinmk/vim-dirvish -highlight! link DirvishPathTail Aqua -highlight! link DirvishArg Yellow -" syn_end }}} -" syn_begin: NvimTree {{{ -" https://github.com/kyazdani42/nvim-tree.lua -if !s:configuration.transparent_background - call everforest#highlight('NvimTreeNormal', s:palette.fg, s:palette.bg_dim) - call everforest#highlight('NvimTreeEndOfBuffer', s:palette.bg_dim, s:palette.bg_dim) - call everforest#highlight('NvimTreeVertSplit', s:palette.bg0, s:palette.bg0) - call everforest#highlight('NvimTreeCursorLine', s:palette.none, s:palette.bg0) -endif -highlight! link NvimTreeSymlink Fg -highlight! link NvimTreeFolderName Green -highlight! link NvimTreeRootFolder Grey -highlight! link NvimTreeFolderIcon Orange -highlight! link NvimTreeEmptyFolderName Green -highlight! link NvimTreeOpenedFolderName Green -highlight! link NvimTreeExecFile Fg -highlight! link NvimTreeOpenedFile Fg -highlight! link NvimTreeSpecialFile Fg -highlight! link NvimTreeImageFile Fg -highlight! link NvimTreeMarkdownFile Fg -highlight! link NvimTreeIndentMarker Grey -highlight! link NvimTreeGitDirty Yellow -highlight! link NvimTreeGitStaged Blue -highlight! link NvimTreeGitMerge Orange -highlight! link NvimTreeGitRenamed Purple -highlight! link NvimTreeGitNew Aqua -highlight! link NvimTreeGitDeleted Red -highlight! link NvimTreeLspDiagnosticsError RedSign -highlight! link NvimTreeLspDiagnosticsWarning YellowSign -highlight! link NvimTreeLspDiagnosticsInformation BlueSign -highlight! link NvimTreeLspDiagnosticsHint GreenSign -" syn_end }}} -" syn_begin: fern {{{ -" https://github.com/lambdalisue/fern.vim -highlight! link FernMarkedLine Purple -highlight! link FernMarkedText Purple -highlight! link FernRootSymbol FernRootText -highlight! link FernRootText Orange -highlight! link FernLeafSymbol FernLeafText -highlight! link FernLeafText Fg -highlight! link FernBranchSymbol FernBranchText -highlight! link FernBranchText Green -highlight! link FernWindowSelectIndicator TabLineSel -highlight! link FernWindowSelectStatusLine TabLine -" syn_end }}} -" syn_begin: neo-tree {{{ -" https://github.com/nvim-neo-tree/neo-tree.nvim -if !s:configuration.transparent_background - call everforest#highlight('NeoTreeNormal', s:palette.fg, s:palette.bg_dim) - call everforest#highlight('NeoTreeEndOfBuffer', s:palette.bg_dim, s:palette.bg_dim) - call everforest#highlight('NeoTreeVertSplit', s:palette.bg0, s:palette.bg0) -endif -highlight! link NeoTreeDirectoryIcon Orange -highlight! link NeoTreeGitAdded Green -highlight! link NeoTreeGitConflict Yellow -highlight! link NeoTreeGitDeleted Red -highlight! link NeoTreeGitIgnored Grey -highlight! link NeoTreeGitModified Blue -highlight! link NeoTreeGitUnstaged Purple -highlight! link NeoTreeGitUntracked Fg -highlight! link NeoTreeGitStaged Purple -highlight! link NeoTreeDimText Grey -highlight! link NeoTreeIndentMarker NonText -highlight! link NeoTreeNormalNC NeoTreeNormal -highlight! link NeoTreeSignColumn NeoTreeNormal -highlight! link NeoTreeRootName Title -if &background ==# 'light' - call everforest#highlight('NeoTreeCursorLine', s:palette.none, s:palette.bg0) -endif -" syn_end }}} -" syn_begin: octo {{{ -" https://github.com/pwntester/octo.nvim -call everforest#highlight('OctoViewer', s:palette.bg0, s:palette.blue) -call everforest#highlight('OctoGreenFloat', s:palette.green, s:palette.bg2) -call everforest#highlight('OctoRedFloat', s:palette.red, s:palette.bg2) -call everforest#highlight('OctoPurpleFloat', s:palette.purple, s:palette.bg2) -call everforest#highlight('OctoYellowFloat', s:palette.yellow, s:palette.bg2) -call everforest#highlight('OctoBlueFloat', s:palette.blue, s:palette.bg2) -call everforest#highlight('OctoGreyFloat', s:palette.grey1, s:palette.bg2) -call everforest#highlight('OctoBubbleGreen', s:palette.bg0, s:palette.green) -call everforest#highlight('OctoBubbleRed', s:palette.bg0, s:palette.red) -call everforest#highlight('OctoBubblePurple', s:palette.bg0, s:palette.purple) -call everforest#highlight('OctoBubbleYellow', s:palette.bg0, s:palette.yellow) -call everforest#highlight('OctoBubbleBlue', s:palette.bg0, s:palette.blue) -call everforest#highlight('OctoBubbleGrey', s:palette.bg0, s:palette.grey1) -highlight! link OctoGreen Green -highlight! link OctoRed Red -highlight! link OctoPurple Purple -highlight! link OctoYellow Yellow -highlight! link OctoBlue Blue -highlight! link OctoGrey Grey -highlight! link OctoBubbleDelimiterGreen Green -highlight! link OctoBubbleDelimiterRed Red -highlight! link OctoBubbleDelimiterPurple Purple -highlight! link OctoBubbleDelimiterYellow Yellow -highlight! link OctoBubbleDelimiterBlue Blue -highlight! link OctoBubbleDelimiterGrey Grey -" syn_end }}} -" syn_begin: netrw {{{ -" https://www.vim.org/scripts/script.php?script_id=1075 -highlight! link netrwDir Green -highlight! link netrwClassify Green -highlight! link netrwLink Grey -highlight! link netrwSymLink Fg -highlight! link netrwExe Yellow -highlight! link netrwComment Grey -highlight! link netrwList Aqua -highlight! link netrwHelpCmd Blue -highlight! link netrwCmdSep Grey -highlight! link netrwVersion Orange -" syn_end }}} -" syn_begin: startify/quickmenu {{{ -" https://github.com/mhinz/vim-startify -" https://github.com/skywind3000/quickmenu.vim -highlight! link StartifyBracket Grey -highlight! link StartifyFile Fg -highlight! link StartifyNumber Orange -highlight! link StartifyPath Green -highlight! link StartifySlash Green -highlight! link StartifySection Yellow -highlight! link StartifyHeader Aqua -highlight! link StartifySpecial Grey -highlight! link StartifyFooter Grey -" syn_end }}} -" syn_begin: quickmenu {{{ -" https://github.com/skywind3000/quickmenu.vim -highlight! link QuickmenuOption Green -highlight! link QuickmenuNumber Red -highlight! link QuickmenuBracket Grey -highlight! link QuickmenuHelp Green -highlight! link QuickmenuSpecial Purple -highlight! link QuickmenuHeader Orange -" syn_end }}} -" syn_begin: undotree {{{ -" https://github.com/mbbill/undotree -call everforest#highlight('UndotreeSavedBig', s:palette.purple, s:palette.none, 'bold') -highlight! link UndotreeNode Orange -highlight! link UndotreeNodeCurrent Red -highlight! link UndotreeSeq Green -highlight! link UndotreeNext Blue -highlight! link UndotreeTimeStamp Grey -highlight! link UndotreeHead Yellow -highlight! link UndotreeBranch Yellow -highlight! link UndotreeCurrent Aqua -highlight! link UndotreeSavedSmall Purple -" syn_end }}} -" syn_begin: NeogitStatus/NeogitCommitView {{{ -" https://github.com/TimUntersberger/neogit -highlight! link NeogitNotificationInfo Blue -highlight! link NeogitNotificationWarning Yellow -highlight! link NeogitNotificationError Red -highlight! link NeogitDiffAdd Green -highlight! link NeogitDiffDelete Red -highlight! link NeogitDiffContextHighlight CursorLine -highlight! link NeogitHunkHeaderHighlight TabLine -highlight! link NeogitHunkHeader TabLineFill -highlight! link NeogitCommandCodeNormal Green -highlight! link NeogitCommandCodeError Red -highlight! link NeogitCommitViewHeader diffIndexLine -highlight! link NeogitFilePath diffFile -" syn_end }}} -" syn_begin: dashboard {{{ -" https://github.com/glepnir/dashboard-nvim -highlight! link DashboardHeader Yellow -highlight! link DashboardCenter Green -highlight! link DashboardShortcut Red -highlight! link DashboardFooter Orange -" syn_end }}} " syn_begin: markdown {{{ " builtin: {{{ call everforest#highlight('markdownH1', s:palette.red, s:palette.none, 'bold') @@ -3202,19 +2229,6 @@ highlight! link NeotestMarked Orange highlight! link NeotestTarget Red endif " syn_end }}} -" syn_begin: mason {{{ -" https://github.com/williamboman/mason.nvim -call everforest#highlight('MasonHeader', s:palette.bg0, s:palette.green, 'bold') -call everforest#highlight('MasonHeaderSecondary', s:palette.bg0, s:palette.orange, 'bold') -highlight! link MasonHighlight Green -highlight! link MasonHighlightSecondary Yellow -call everforest#highlight('MasonHighlightBlock', s:palette.bg0, s:palette.aqua) -call everforest#highlight('MasonHighlightBlockBold', s:palette.bg0, s:palette.aqua, 'bold') -call everforest#highlight('MasonHighlightBlockSecondary', s:palette.bg0, s:palette.yellow) -call everforest#highlight('MasonHighlightBlockBoldSecondary', s:palette.bg0, s:palette.yellow, 'bold') -call everforest#highlight('MasonMuted', s:palette.grey0, s:palette.none) -call everforest#highlight('MasonMutedBlock', s:palette.bg0, s:palette.grey0) -" syn_end }}} " }}} " vim: set sw=2 ts=2 sts=2 et tw=80 ft=vim fdm=marker fmr={{{,}}}: diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 5054a5d..25a723e 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -1,64 +1,34 @@ --- Bootstrap lazy.nvim local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not (vim.uv or vim.loop).fs_stat(lazypath) then - local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", "https://github.com/folke/lazy.nvim.git", lazypath }) + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", "https://github.com/folke/lazy.nvim.git", lazypath }) end vim.opt.rtp:prepend(lazypath) -vim.g.mapleader = " " require("lazy").setup({ - spec = { - "neovim/nvim-lspconfig", - "nvim-treesitter/nvim-treesitter", - "cohama/lexima.vim", - "DarthMoomancer/Polydev", - "nvim-telescope/telescope.nvim", - "nvim-lua/plenary.nvim", - { "saghen/blink.cmp", version = "v1.*", opts = { - completion = { - ghost_text = { - enabled = true - } - } - } - }, - checker = { enabled = true }, - }, + spec = { + "cohama/lexima.vim", + { "echasnovski/mini.pick", version = '*' }, + { "saghen/blink.cmp", version = "v1.*", opts = {} }, + } }) -vim.opt.mouse = "" -vim.opt.completeopt = "noselect" -vim.opt.termguicolors = true -vim.opt.wrap = false -vim.opt.relativenumber = true -vim.opt.scrolloff = 8 -vim.opt.sidescrolloff = 8 -vim.opt.hlsearch = false -vim.opt.swapfile = false -vim.opt.clipboard = unnamedplus +require('mini.pick').setup() + +vim.g.mapleader = " " +vim.o.termguicolors = true +vim.o.number = true +vim.o.relativenumber = true +vim.o.wrap = false +vim.o.swapfile = false +vim.o.signcolumn = "yes" +vim.o.scrolloff = 8 +vim.o.sidescrolloff = 8 +vim.o.hlsearch = false +vim.o.completeopt = { "menuone", "noselect", "popup" } + +vim.lsp.enable({ "lua_ls", "clangd" }) +vim.cmd.colorscheme('everforest') vim.keymap.set("v", "J", ":m '>+1gv=gv") vim.keymap.set("v", "K", ":m '<-2gv=gv") -vim.keymap.set("x", "p", [["_dP]]) -vim.keymap.set("n", "ff", "gg=G") -vim.keymap.set('n', '', ":Telescope find_files", { desc = 'Telescope find files' }) -vim.keymap.set('n', 'xg', ":Telescope live_grep", { desc = 'Telescope live grep' }) -vim.keymap.set('n', 'xh', ":Telescope help_tags", { desc = 'Telescope help tags' }) -vim.keymap.set("n", "xc", "cclose") -vim.keymap.set("n", "xx", function() - vim.diagnostic.setqflist({ open = true }) -end, { desc = "Show diagnostics in quickfix" }) - -vim.cmd.colorscheme('everforest') -vim.lsp.enable({ "lua_ls", "clangd" }) - -vim.api.nvim_create_autocmd("FileType", { - pattern = "qf", - callback = function() - vim.api.nvim_buf_set_keymap(0, "n", "", ":cclose", { noremap = true, silent = true }) - end, -}) - -require("nvim-treesitter.configs").setup({ - highlight = { enable = true }, - indent = { enable = true } -}) +vim.keymap.set("n", "ff", "ggVG=") +vim.keymap.set('n', '', ":Pick files") diff --git a/.config/nvim/lsp/clangd.lua b/.config/nvim/lsp/clangd.lua new file mode 100644 index 0000000..8dac457 --- /dev/null +++ b/.config/nvim/lsp/clangd.lua @@ -0,0 +1,99 @@ +---@brief +--- +--- https://clangd.llvm.org/installation.html +--- +--- - **NOTE:** Clang >= 11 is recommended! See [#23](https://github.com/neovim/nvim-lspconfig/issues/23). +--- - If `compile_commands.json` lives in a build directory, you should +--- symlink it to the root of your source tree. +--- ``` +--- ln -s /path/to/myproject/build/compile_commands.json /path/to/myproject/ +--- ``` +--- - clangd relies on a [JSON compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html) +--- specified as compile_commands.json, see https://clangd.llvm.org/installation#compile_commandsjson + +-- https://clangd.llvm.org/extensions.html#switch-between-sourceheader +local function switch_source_header(bufnr) + local method_name = 'textDocument/switchSourceHeader' + local client = vim.lsp.get_clients({ bufnr = bufnr, name = 'clangd' })[1] + if not client then + return vim.notify(('method %s is not supported by any servers active on the current buffer'):format(method_name)) + end + local params = vim.lsp.util.make_text_document_params(bufnr) + client.request(method_name, params, function(err, result) + if err then + error(tostring(err)) + end + if not result then + vim.notify('corresponding file cannot be determined') + return + end + vim.cmd.edit(vim.uri_to_fname(result)) + end, bufnr) +end + +local function symbol_info() + local bufnr = vim.api.nvim_get_current_buf() + local clangd_client = vim.lsp.get_clients({ bufnr = bufnr, name = 'clangd' })[1] + if not clangd_client or not clangd_client.supports_method 'textDocument/symbolInfo' then + return vim.notify('Clangd client not found', vim.log.levels.ERROR) + end + local win = vim.api.nvim_get_current_win() + local params = vim.lsp.util.make_position_params(win, clangd_client.offset_encoding) + clangd_client.request('textDocument/symbolInfo', params, function(err, res) + if err or #res == 0 then + -- Clangd always returns an error, there is not reason to parse it + return + end + local container = string.format('container: %s', res[1].containerName) ---@type string + local name = string.format('name: %s', res[1].name) ---@type string + vim.lsp.util.open_floating_preview({ name, container }, '', { + height = 2, + width = math.max(string.len(name), string.len(container)), + focusable = false, + focus = false, + border = 'single', + title = 'Symbol Info', + }) + end, bufnr) +end + +---@class ClangdInitializeResult: lsp.InitializeResult +---@field offsetEncoding? string + +return { + cmd = { 'clangd' }, + filetypes = { 'c', 'cpp', 'objc', 'objcpp', 'cuda' }, + root_markers = { + '.clangd', + '.clang-tidy', + '.clang-format', + 'compile_commands.json', + 'compile_flags.txt', + 'configure.ac', -- AutoTools + '.git', + }, + capabilities = { + textDocument = { + completion = { + editsNearCursor = true, + }, + }, + offsetEncoding = { 'utf-8', 'utf-16' }, + }, + ---@param client vim.lsp.Client + ---@param init_result ClangdInitializeResult + on_init = function(client, init_result) + if init_result.offsetEncoding then + client.offset_encoding = init_result.offsetEncoding + end + end, + on_attach = function(_, bufnr) + vim.api.nvim_buf_create_user_command(bufnr, 'LspClangdSwitchSourceHeader', function() + switch_source_header(bufnr) + end, { desc = 'Switch between source/header' }) + + vim.api.nvim_buf_create_user_command(bufnr, 'LspClangdShowSymbolInfo', function() + symbol_info() + end, { desc = 'Show symbol info' }) + end, +} diff --git a/.config/nvim/lsp/lua_ls.lua b/.config/nvim/lsp/lua_ls.lua new file mode 100644 index 0000000..b8dc67c --- /dev/null +++ b/.config/nvim/lsp/lua_ls.lua @@ -0,0 +1,21 @@ +return { + cmd = { 'lua-language-server' }, + filetypes = { 'lua' }, + settings = { + Lua = { + diagnostics = { + globals = { "vim" } + } + } + }, + root_markers = { + '.luarc.json', + '.luarc.jsonc', + '.luacheckrc', + '.stylua.toml', + 'stylua.toml', + 'selene.toml', + 'selene.yml', + '.git', + }, +} diff --git a/.config/suckless/dmenu/Makefile b/.config/suckless/dmenu/Makefile index 458c524..2509063 100644 --- a/.config/suckless/dmenu/Makefile +++ b/.config/suckless/dmenu/Makefile @@ -1,58 +1,31 @@ -# dmenu - dynamic menu -# See LICENSE file for copyright and license details. - include config.mk -SRC = drw.c dmenu.c stest.c util.c +SRC = drw.c dmenu.c util.c OBJ = $(SRC:.c=.o) -all: dmenu stest +all: dmenu .c.o: $(CC) -c $(CFLAGS) $< -config.h: - cp config.def.h $@ - $(OBJ): arg.h config.h config.mk drw.h dmenu: dmenu.o drw.o util.o $(CC) -o $@ dmenu.o drw.o util.o $(LDFLAGS) -stest: stest.o - $(CC) -o $@ stest.o $(LDFLAGS) - clean: - rm -f dmenu stest $(OBJ) dmenu-$(VERSION).tar.gz - -dist: clean - mkdir -p dmenu-$(VERSION) - cp LICENSE Makefile README arg.h config.def.h config.mk dmenu.1\ - drw.h util.h dmenu_path dmenu_run stest.1 $(SRC)\ - dmenu-$(VERSION) - tar -cf dmenu-$(VERSION).tar dmenu-$(VERSION) - gzip dmenu-$(VERSION).tar - rm -rf dmenu-$(VERSION) + rm -f dmenu stest $(OBJ) install: all mkdir -p $(DESTDIR)$(PREFIX)/bin - cp -f dmenu dmenu_path dmenu_run stest $(DESTDIR)$(PREFIX)/bin + cp -f dmenu dmenu_path dmenu_run $(DESTDIR)$(PREFIX)/bin chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu_path chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu_run - chmod 755 $(DESTDIR)$(PREFIX)/bin/stest - mkdir -p $(DESTDIR)$(MANPREFIX)/man1 - sed "s/VERSION/$(VERSION)/g" < dmenu.1 > $(DESTDIR)$(MANPREFIX)/man1/dmenu.1 - sed "s/VERSION/$(VERSION)/g" < stest.1 > $(DESTDIR)$(MANPREFIX)/man1/stest.1 - chmod 644 $(DESTDIR)$(MANPREFIX)/man1/dmenu.1 - chmod 644 $(DESTDIR)$(MANPREFIX)/man1/stest.1 uninstall: rm -f $(DESTDIR)$(PREFIX)/bin/dmenu\ $(DESTDIR)$(PREFIX)/bin/dmenu_path\ $(DESTDIR)$(PREFIX)/bin/dmenu_run\ - $(DESTDIR)$(PREFIX)/bin/stest\ - $(DESTDIR)$(MANPREFIX)/man1/dmenu.1\ - $(DESTDIR)$(MANPREFIX)/man1/stest.1 -.PHONY: all clean dist install uninstall +.PHONY: all clean install uninstall diff --git a/.config/suckless/dmenu/config.def.h b/.config/suckless/dmenu/config.def.h deleted file mode 100644 index b0dcf68..0000000 --- a/.config/suckless/dmenu/config.def.h +++ /dev/null @@ -1,15 +0,0 @@ -#include "/home/andrew/.config/suckless/dwm/themes/everforest.h" -static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */ -static const char *fonts[] = { - "CaskaydiaCove NFM style:SemiBold:size=11" -}; -static const char *prompt = NULL; /* -p option; prompt to the left of input field */ -static const char *colors[SchemeLast][2] = { - [SchemeNorm] = { foreground, background }, - [SchemeSel] = { background, yellow }, - [SchemeOut] = { red, background }, -}; - -static unsigned int lines = 0; -static unsigned int columns = 0; -static const char worddelimiters[] = " "; diff --git a/.config/suckless/dmenu/config.h b/.config/suckless/dmenu/config.h index b0dcf68..8bb8e77 100644 --- a/.config/suckless/dmenu/config.h +++ b/.config/suckless/dmenu/config.h @@ -1,13 +1,12 @@ -#include "/home/andrew/.config/suckless/dwm/themes/everforest.h" static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */ static const char *fonts[] = { "CaskaydiaCove NFM style:SemiBold:size=11" }; static const char *prompt = NULL; /* -p option; prompt to the left of input field */ static const char *colors[SchemeLast][2] = { - [SchemeNorm] = { foreground, background }, - [SchemeSel] = { background, yellow }, - [SchemeOut] = { red, background }, + [SchemeNorm] = { "#D3C6AA", "#272E33" }, + [SchemeSel] = { "#272E33", "#DBBC7F" }, + [SchemeOut] = { "#E67E80", "#272E33" }, }; static unsigned int lines = 0; diff --git a/.config/suckless/dmenu/config.mk b/.config/suckless/dmenu/config.mk index 137f7c8..a6b7536 100644 --- a/.config/suckless/dmenu/config.mk +++ b/.config/suckless/dmenu/config.mk @@ -1,32 +1,18 @@ -# dmenu version VERSION = 5.3 -# paths PREFIX = /usr/local -MANPREFIX = $(PREFIX)/share/man X11INC = /usr/X11R6/include X11LIB = /usr/X11R6/lib -# Xinerama, comment if you don't want it -XINERAMALIBS = -lXinerama -XINERAMAFLAGS = -DXINERAMA - -# freetype FREETYPELIBS = -lfontconfig -lXft FREETYPEINC = /usr/include/freetype2 -# OpenBSD (uncomment) -#FREETYPEINC = $(X11INC)/freetype2 -#MANPREFIX = ${PREFIX}/man -# includes and libs INCS = -I$(X11INC) -I$(FREETYPEINC) -LIBS = -L$(X11LIB) -lX11 $(XINERAMALIBS) $(FREETYPELIBS) +LIBS = -L$(X11LIB) -lX11 $(FREETYPELIBS) -# flags -CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 -D_POSIX_C_SOURCE=200809L -DVERSION=\"$(VERSION)\" $(XINERAMAFLAGS) +CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 -D_POSIX_C_SOURCE=200809L -DVERSION=\"$(VERSION)\" CFLAGS = -std=c99 -pedantic -Wall -Os $(INCS) $(CPPFLAGS) LDFLAGS = $(LIBS) -# compiler and linker -CC = cc +CC = gcc diff --git a/.config/suckless/dmenu/dmenu b/.config/suckless/dmenu/dmenu deleted file mode 100755 index 072a8f356879574f0c5ef4de8ebb59b2529343b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42456 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 Ml^AYFU|@y+3(|_W+5i9m diff --git a/.config/suckless/dmenu/dmenu.1 b/.config/suckless/dmenu/dmenu.1 deleted file mode 100644 index d0a734a..0000000 --- a/.config/suckless/dmenu/dmenu.1 +++ /dev/null @@ -1,199 +0,0 @@ -.TH DMENU 1 dmenu\-VERSION -.SH NAME -dmenu \- dynamic menu -.SH SYNOPSIS -.B dmenu -.RB [ \-bfiv ] -.RB [ \-g -.IR columns ] -.RB [ \-l -.IR lines ] -.RB [ \-m -.IR monitor ] -.RB [ \-p -.IR prompt ] -.RB [ \-fn -.IR font ] -.RB [ \-nb -.IR color ] -.RB [ \-nf -.IR color ] -.RB [ \-sb -.IR color ] -.RB [ \-sf -.IR color ] -.RB [ \-w -.IR windowid ] -.P -.BR dmenu_run " ..." -.SH DESCRIPTION -.B dmenu -is a dynamic menu for X, which reads a list of newline\-separated items from -stdin. When the user selects an item and presses Return, their choice is printed -to stdout and dmenu terminates. Entering text will narrow the items to those -matching the tokens in the input. -.P -.B dmenu_run -is a script used by -.IR dwm (1) -which lists programs in the user's $PATH and runs the result in their $SHELL. -.SH OPTIONS -.TP -.B \-b -dmenu appears at the bottom of the screen. -.TP -.B \-f -dmenu grabs the keyboard before reading stdin if not reading from a tty. This -is faster, but will lock up X until stdin reaches end\-of\-file. -.TP -.B \-i -dmenu matches menu items case insensitively. -.TP -.BI \-g " columns" -dmenu lists items in a grid with the given number of columns. -.TP -.BI \-l " lines" -dmenu lists items in a grid with the given number of lines. -.TP -.BI \-m " monitor" -dmenu is displayed on the monitor number supplied. Monitor numbers are starting -from 0. -.TP -.BI \-p " prompt" -defines the prompt to be displayed to the left of the input field. -.TP -.BI \-fn " font" -defines the font or font set used. -.TP -.BI \-nb " color" -defines the normal background color. -.IR #RGB , -.IR #RRGGBB , -and X color names are supported. -.TP -.BI \-nf " color" -defines the normal foreground color. -.TP -.BI \-sb " color" -defines the selected background color. -.TP -.BI \-sf " color" -defines the selected foreground color. -.TP -.B \-v -prints version information to stdout, then exits. -.TP -.BI \-w " windowid" -embed into windowid. -.SH USAGE -dmenu is completely controlled by the keyboard. Items are selected using the -arrow keys, page up, page down, home, and end. -.TP -.B Tab -Copy the selected item to the input field. -.TP -.B Return -Confirm selection. Prints the selected item to stdout and exits, returning -success. -.TP -.B Ctrl-Return -Confirm selection. Prints the selected item to stdout and continues. -.TP -.B Shift\-Return -Confirm input. Prints the input text to stdout and exits, returning success. -.TP -.B Escape -Exit without selecting an item, returning failure. -.TP -.B Ctrl-Left -Move cursor to the start of the current word -.TP -.B Ctrl-Right -Move cursor to the end of the current word -.TP -.B C\-a -Home -.TP -.B C\-b -Left -.TP -.B C\-c -Escape -.TP -.B C\-d -Delete -.TP -.B C\-e -End -.TP -.B C\-f -Right -.TP -.B C\-g -Escape -.TP -.B C\-h -Backspace -.TP -.B C\-i -Tab -.TP -.B C\-j -Return -.TP -.B C\-J -Shift-Return -.TP -.B C\-k -Delete line right -.TP -.B C\-m -Return -.TP -.B C\-M -Shift-Return -.TP -.B C\-n -Down -.TP -.B C\-p -Up -.TP -.B C\-u -Delete line left -.TP -.B C\-w -Delete word left -.TP -.B C\-y -Paste from primary X selection -.TP -.B C\-Y -Paste from X clipboard -.TP -.B M\-b -Move cursor to the start of the current word -.TP -.B M\-f -Move cursor to the end of the current word -.TP -.B M\-g -Home -.TP -.B M\-G -End -.TP -.B M\-h -Up -.TP -.B M\-j -Page down -.TP -.B M\-k -Page up -.TP -.B M\-l -Down -.SH SEE ALSO -.IR dwm (1), -.IR stest (1) diff --git a/.config/suckless/dmenu/dmenu.c b/.config/suckless/dmenu/dmenu.c index abf3c63..3bb03e8 100644 --- a/.config/suckless/dmenu/dmenu.c +++ b/.config/suckless/dmenu/dmenu.c @@ -1,4 +1,3 @@ -/* See LICENSE file for copyright and license details. */ #include #include #include @@ -11,9 +10,6 @@ #include #include #include -#ifdef XINERAMA -#include -#endif #include #include "drw.h" @@ -670,11 +666,6 @@ setup(void) Window w, dw, *dws; XWindowAttributes wa; XClassHint ch = {"dmenu", "dmenu"}; -#ifdef XINERAMA - XineramaScreenInfo *info; - Window pw; - int a, di, n, area = 0; -#endif /* init appearance */ for (j = 0; j < SchemeLast; j++) scheme[j] = drw_scm_create(drw, colors[j], 2); @@ -686,38 +677,6 @@ setup(void) bh = drw->fonts->h + 2; lines = MAX(lines, 0); mh = (lines + 1) * bh; -#ifdef XINERAMA - i = 0; - if (parentwin == root && (info = XineramaQueryScreens(dpy, &n))) { - XGetInputFocus(dpy, &w, &di); - if (mon >= 0 && mon < n) - i = mon; - else if (w != root && w != PointerRoot && w != None) { - /* find top-level window containing current input focus */ - do { - if (XQueryTree(dpy, (pw = w), &dw, &w, &dws, &du) && dws) - XFree(dws); - } while (w != root && w != pw); - /* find xinerama screen with which the window intersects most */ - if (XGetWindowAttributes(dpy, pw, &wa)) - for (j = 0; j < n; j++) - if ((a = INTERSECT(wa.x, wa.y, wa.width, wa.height, info[j])) > area) { - area = a; - i = j; - } - } - /* no focused window is on screen, so use pointer location instead */ - if (mon < 0 && !area && XQueryPointer(dpy, root, &dw, &dw, &x, &y, &di, &di, &du)) - for (i = 0; i < n; i++) - if (INTERSECT(x, y, 1, 1, info[i]) != 0) - break; - - x = info[i].x_org; - y = info[i].y_org + (topbar ? 0 : info[i].height - mh); - mw = info[i].width; - XFree(info); - } else -#endif { if (!XGetWindowAttributes(dpy, parentwin, &wa)) die("could not get embedding window attributes: 0x%lx", @@ -830,11 +789,6 @@ main(int argc, char *argv[]) die("no fonts could be loaded."); lrpad = drw->fonts->h; -#ifdef __OpenBSD__ - if (pledge("stdio rpath", NULL) == -1) - die("pledge"); -#endif - if (fast && !isatty(0)) { grabkeyboard(); readstdin(); diff --git a/.config/suckless/dmenu/dmenu.o b/.config/suckless/dmenu/dmenu.o deleted file mode 100644 index 4ca0b32183ad6c0a907e2390a9c94c6425955ef2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33408 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 diff --git a/.config/suckless/dmenu/dmenu_path b/.config/suckless/dmenu/dmenu_path index 3a7cda7..b17bf21 100755 --- a/.config/suckless/dmenu/dmenu_path +++ b/.config/suckless/dmenu/dmenu_path @@ -6,8 +6,4 @@ cache="$cachedir/dmenu_run" [ ! -e "$cachedir" ] && mkdir -p "$cachedir" IFS=: -if stest -dqr -n "$cache" $PATH; then - stest -flx $PATH | sort -u | tee "$cache" -else - cat "$cache" -fi +cat "$cache" diff --git a/.config/suckless/dmenu/drw.o b/.config/suckless/dmenu/drw.o deleted file mode 100644 index 69dbfa9f910b2da334855d573d810016a6cee0e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11464 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 TbCK}Az4Z=B(Roci-Q)ikvLk1R diff --git a/.config/suckless/dmenu/patches/dmenu-grid-4.9.diff b/.config/suckless/dmenu/patches/dmenu-grid-4.9.diff deleted file mode 100644 index 5f7c02b..0000000 --- a/.config/suckless/dmenu/patches/dmenu-grid-4.9.diff +++ /dev/null @@ -1,108 +0,0 @@ -From 39ab9676914bd0d8105d0f96bbd7611a53077438 Mon Sep 17 00:00:00 2001 -From: Miles Alan -Date: Sat, 4 Jul 2020 11:19:04 -0500 -Subject: [PATCH] Add -g option to display entries in the given number of grid - columns - -This option can be used in conjunction with -l to format dmenu's options in -arbitrary size grids. For example, to create a 4 column by 6 line grid, you -could use: dmenu -g 4 -l 6 ---- - config.def.h | 3 ++- - dmenu.1 | 7 ++++++- - dmenu.c | 22 ++++++++++++++++------ - 3 files changed, 24 insertions(+), 8 deletions(-) - -diff --git a/config.def.h b/config.def.h -index 1edb647..96cf3c9 100644 ---- a/config.def.h -+++ b/config.def.h -@@ -13,8 +13,9 @@ static const char *colors[SchemeLast][2] = { - [SchemeSel] = { "#eeeeee", "#005577" }, - [SchemeOut] = { "#000000", "#00ffff" }, - }; --/* -l option; if nonzero, dmenu uses vertical list with given number of lines */ -+/* -l and -g options; controls number of lines and columns in grid if > 0 */ - static unsigned int lines = 0; -+static unsigned int columns = 0; - - /* - * Characters not considered part of a word while deleting words -diff --git a/dmenu.1 b/dmenu.1 -index 323f93c..d0a734a 100644 ---- a/dmenu.1 -+++ b/dmenu.1 -@@ -4,6 +4,8 @@ dmenu \- dynamic menu - .SH SYNOPSIS - .B dmenu - .RB [ \-bfiv ] -+.RB [ \-g -+.IR columns ] - .RB [ \-l - .IR lines ] - .RB [ \-m -@@ -47,8 +49,11 @@ is faster, but will lock up X until stdin reaches end\-of\-file. - .B \-i - dmenu matches menu items case insensitively. - .TP -+.BI \-g " columns" -+dmenu lists items in a grid with the given number of columns. -+.TP - .BI \-l " lines" --dmenu lists items vertically, with the given number of lines. -+dmenu lists items in a grid with the given number of lines. - .TP - .BI \-m " monitor" - dmenu is displayed on the monitor number supplied. Monitor numbers are starting -diff --git a/dmenu.c b/dmenu.c -index 6b8f51b..d79b6bb 100644 ---- a/dmenu.c -+++ b/dmenu.c -@@ -77,7 +77,7 @@ calcoffsets(void) - int i, n; - - if (lines > 0) -- n = lines * bh; -+ n = lines * columns * bh; - else - n = mw - (promptw + inputw + TEXTW("<") + TEXTW(">")); - /* calculate which items will begin the next page and previous page */ -@@ -152,9 +152,15 @@ drawmenu(void) - } - - if (lines > 0) { -- /* draw vertical list */ -- for (item = curr; item != next; item = item->right) -- drawitem(item, x, y += bh, mw - x); -+ /* draw grid */ -+ int i = 0; -+ for (item = curr; item != next; item = item->right, i++) -+ drawitem( -+ item, -+ x + ((i / lines) * ((mw - x) / columns)), -+ y + (((i % lines) + 1) * bh), -+ (mw - x) / columns -+ ); - } else if (matches) { - /* draw horizontal list */ - x += inputw; -@@ -708,9 +714,13 @@ main(int argc, char *argv[]) - } else if (i + 1 == argc) - usage(); - /* these options take one argument */ -- else if (!strcmp(argv[i], "-l")) /* number of lines in vertical list */ -+ else if (!strcmp(argv[i], "-g")) { /* number of columns in grid */ -+ columns = atoi(argv[++i]); -+ if (lines == 0) lines = 1; -+ } else if (!strcmp(argv[i], "-l")) { /* number of lines in grid */ - lines = atoi(argv[++i]); -- else if (!strcmp(argv[i], "-m")) -+ if (columns == 0) columns = 1; -+ } else if (!strcmp(argv[i], "-m")) - mon = atoi(argv[++i]); - else if (!strcmp(argv[i], "-p")) /* adds prompt to left of input field */ - prompt = argv[++i]; --- -2.23.1 - - diff --git a/.config/suckless/dmenu/patches/dmenu-gridnav-5.2.diff b/.config/suckless/dmenu/patches/dmenu-gridnav-5.2.diff deleted file mode 100644 index 7adc36f..0000000 --- a/.config/suckless/dmenu/patches/dmenu-gridnav-5.2.diff +++ /dev/null @@ -1,69 +0,0 @@ -diff --git a/dmenu.c b/dmenu.c -index 027dddb..0b92f1f 100644 ---- a/dmenu.c -+++ b/dmenu.c -@@ -334,6 +334,8 @@ keypress(XKeyEvent *ev) - int len; - KeySym ksym = NoSymbol; - Status status; -+ int i, offscreen = 0; -+ struct item *tmpsel; - - len = XmbLookupString(xic, ev, buf, sizeof buf, &ksym, &status); - switch (status) { -@@ -465,6 +467,27 @@ insert: - calcoffsets(); - break; - case XK_Left: -+ if (columns > 1) { -+ if (!sel) -+ return; -+ tmpsel = sel; -+ for (i = 0; i < lines; i++) { -+ if (!tmpsel->left || tmpsel->left->right != tmpsel) { -+ if (offscreen) -+ break; -+ return; -+ } -+ if (tmpsel == curr) -+ offscreen = 1; -+ tmpsel = tmpsel->left; -+ } -+ sel = tmpsel; -+ if (offscreen) { -+ curr = prev; -+ calcoffsets(); -+ } -+ break; -+ } - case XK_KP_Left: - if (cursor > 0 && (!sel || !sel->left || lines > 0)) { - cursor = nextrune(-1); -@@ -505,6 +528,27 @@ insert: - sel->out = 1; - break; - case XK_Right: -+ if (columns > 1) { -+ if (!sel) -+ return; -+ tmpsel = sel; -+ for (i = 0; i < lines; i++) { -+ if (!tmpsel->right || tmpsel->right->left != tmpsel) { -+ if (offscreen) -+ break; -+ return; -+ } -+ tmpsel = tmpsel->right; -+ if (tmpsel == next) -+ offscreen = 1; -+ } -+ sel = tmpsel; -+ if (offscreen) { -+ curr = next; -+ calcoffsets(); -+ } -+ break; -+ } - case XK_KP_Right: - if (text[cursor] != '\0') { - cursor = nextrune(+1); diff --git a/.config/suckless/dmenu/stest b/.config/suckless/dmenu/stest deleted file mode 100755 index 047c1868df1c12f564c5dd07ad934b0cffe3cac9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16288 zcmeHOeQ+Dcbzgv@i0T7?Wyz+$WLPCr$`&C~q+H4|B7g$Lqlc1NeZ+Pw8G=ZVKurP+ zaImPvs%eAt7^dMWj*~c(ekd7dl4jbD)4Ca@ovKu=P)#S3*dC|#v=dj8aU39YB-)Nu z*-3T%y}fEG#eI0UCU@i9T%iM1vYR03a@ z%76q#mspM8_2MS69Q-ngnew1XAT`tL&c)QF@H$YkYoyE)^hOgFOu2?c$*x)|{+20W zD!e97cJ-81yqyMA#h9|ZT%M1Nk$m#EOf}U$rdB(OjjPqvcLi)zwYx=D3NlqMaz}QJ z%C1q_F>O=jG39ttOz3+37W^zh2TWKnwcE99Fcs|7r|g(=?DzgeANt>vH=yheD2H|$ zR^>6}@_r9?6qo;L;@iAOl~?UPTvG95O81-6=F!CA+dDUp4z-RZlG%yYiLTpQZ}0SH zQvNMcPPdPS2VwK4i}|YV&5Md-XHaDdv}Jru_>_pK8gGq3(wh`knu5N zp?i>DN?)&nQ~i9n>?s9cDLFeF?Ta2BjfqHPWGt18Wb|lSk3>w>B^5`ZqKk|^lt_y4tez3$v2;3>h64x&AB+sf zAB+q~6Qg1{9gB(BL_!yXqp3`6D3KN;F&$l=3L73zCzARwX@kRn7*s`%Md26T;S_?w ziD+avk&KQeJ{1F+9*n0&Iu;!wXQ}a6k|+vJTD(OE2VkHdaE=klp0MC*$skRRTksX^1oSxzzS4r9u;8mK_}48sIzTzSV8PvG zREU!n++)FKEjaf%691D0zsjQjvIW1|g4eRO2-G4_i$E;`wFp=v@SbP=hg$A!mo`)X z-OWO1)3dtMcv;JxalItfjIFl1Fkbaybr5_uHF??L|^x!VNTH$HIQToRU zPY>|YUsZT|aF@PP;b~D&dZxnD1HANDg{Q?qDP7^|L0&ps;pqWh+Ed}_!CmUE@bthg zZK?3|pe}8w@brK#t*P+zU@ke!ywN=87h>3Rb6Cjs8_gfF@#}5;H8$RDIA%`ETFhnrklA?c!wH(VGow0wOD&b66i=xc^& z%89-+xxLjh{Q+#B>~&1ddZx}JduMBQ&Ez9akzJ+bzT*lR-z&XN&W*Eu`3rEJKPH~M zcIs8n=T7Gq98;$~Q-29*-?j^$>8~Oa_MCb*RM`1U?vmrk;N&9?k#+aYL|oeRzh_q# zUqbKH3K7SA1HAU-&Z2%>>3&Uqn9MdH|NB(E{C|XU=cC2*mkndr;Kk`#&$F|hZ_Vz= zhyO-o8%|PxpKpUw@$aE9e<7T|s1*Y5p<5O21VDr6IkIn`h4GHFFd~b-8IM*t>gdaF zF9p%JsPsb0ReFak3J03J{RO?Lv1j_tY(|?|H?@gs`7olFf1}tyDl^1P&;G%US|QwE zOm?lv*3Cgj!uiX^>(Q+Fx#Cm*Wf-L=P#Q(J_%yh_{CB8AiT?Zr$%Dz>NX%&nRdDtD za)BSA-9qo4pVJEWUOn(_y3hUj|J>U@vrGIfRsWPk3ia#J%=X#hXJP$``vQhXh$GLV zlF%)F9(wa%koOifdV;t=X`jsnsCx;7P@8#H_KhL!wzaae==H@Ls1}c&X+d%K9}FD` z9Sl7XioAruFa;ZPytV(lFaOE|TK>mc?#+dPedu)U-$lHmur$_n+$O{?hW)G$d>at0 zP``!9woCd=nA$GhiadgFm2qykqD%AHOEw<%ACPik>$^lYUe@vp+UfJ#wbPgCG{>Cw z%4PjVIQ$Fc&}(yeg+H1fCj&o%y2y5Dxxl9>w_nTuL|>)N1Re)h{NgVSqZme84$jrT z2*6>jlQqxtZ|NQ=58SI2)^)GIeW9B(0B4_sEseU>PmtHW@cIul5f>B4Vd&<6iP75y zWen9#YN-BsQwsns|GtL4=PDY|M3frZXG?RybAdlb3`KVNI+K0q$izW_N#Af{G)B1;=Lqoo{RdZw zD=b8FW^;1}QE=Q)_t79Iy}qBhU>Nj2$}KOF30EgB4duzjjoZ7^ z-FTO0*dm^6DNZCOf0W1< zHKCSj5vWC=7J*s>Y7wYKpca8z1ZolZO^X2Uv*LYKybk`kY6$c6Zz@X6uTUB0Z?f^U zSBw(=X<{bzvawpRZS-P+be&1c`@e2rUeW6n<$YlE?n8-J{O?~jQp9(u1wO6&DIHfC z`j;xDxRS3hS@EE%-%7=+>MYv3MIwH0(A54SUiZh9J-s(k;=Nq6=eLl%5c5; z9gFv1arx_&J?r5MzHA?glMp^^OTJC{!zX-}OG~_7N&Z)=;rNU#d2WYt|NlmKf41FW zo4VgYMF$i;r0BS!lZqZ!^n{`>C_1a?%Zi>;bU{&UGL^||-3(^0%&*~HK~vbfW5*r7 zmfl!WPo;eAo&FAgn{T{pqsmryK;2-Oc*n47(0z5{w7|F3WP9VzsR13uO==^Y>r zajoEf&(Z;jUnA`Io&KNg6X?Z3)->sI;A;?v6KbHyZx#^Uhs(NulC9|biH{izeGK`f z^gmk#f1YrsTkt%?uD*ecj~NS{L;fndJ4(oL`yue9%6$vCQbo>^9Q3{5$~deBzLcL^ zfN!vvbN0?E`UAk1+E;y;aA%|N2HAs2lM3g4&eBgSKZle)&o_?(U#gzZ0{2pXQ~K=Z zL>2wNtAhVP`DyEB4<>!Bihc<=wKu5B<$C_AivG3ErR#rd75t-B@ZG@aKHB5Czl#2C zRq(XLR|}sCs{HnaCKFxb#4N${7>5I!-!r;@(EK38hyF>kvyLax~+p{mSFVx-NgT3YbVkaLUC?gcR2#x`ij~FbHn8yefL5mLyltr{>-#j=_hRC%%>rh5I zI@DQ*GGZ1_(L^)p)PUs>Ls6C1MKNgP+oU*lU8aX*spi=~YyA~0*B8__w&(RX(*>o-<=fjo2sznz zD?MJ%Gv)O^+0&ZeZa)T$>ZO+9m3dyx_xzp%6`6Rw!F(JUtG!RzF_l7A236uRmH&qV z&gJ{m`j{!}vkT^#J`91i{5ECJbb$>OWjm(RHhX^lF?DmrZ1(JS#%9m!IHvp_$@=#A zeMZ^y{TDu^spuyZ%fxQ~MF^<HU@KE)CVsbDd`9n9Vtt%epjOEM>p$cTJ53n}LlL{|zhmCr1DP diff --git a/.config/suckless/dmenu/stest.1 b/.config/suckless/dmenu/stest.1 deleted file mode 100644 index 2667d8a..0000000 --- a/.config/suckless/dmenu/stest.1 +++ /dev/null @@ -1,90 +0,0 @@ -.TH STEST 1 dmenu\-VERSION -.SH NAME -stest \- filter a list of files by properties -.SH SYNOPSIS -.B stest -.RB [ -abcdefghlpqrsuwx ] -.RB [ -n -.IR file ] -.RB [ -o -.IR file ] -.RI [ file ...] -.SH DESCRIPTION -.B stest -takes a list of files and filters by the files' properties, analogous to -.IR test (1). -Files which pass all tests are printed to stdout. If no files are given, stest -reads files from stdin. -.SH OPTIONS -.TP -.B \-a -Test hidden files. -.TP -.B \-b -Test that files are block specials. -.TP -.B \-c -Test that files are character specials. -.TP -.B \-d -Test that files are directories. -.TP -.B \-e -Test that files exist. -.TP -.B \-f -Test that files are regular files. -.TP -.B \-g -Test that files have their set-group-ID flag set. -.TP -.B \-h -Test that files are symbolic links. -.TP -.B \-l -Test the contents of a directory given as an argument. -.TP -.BI \-n " file" -Test that files are newer than -.IR file . -.TP -.BI \-o " file" -Test that files are older than -.IR file . -.TP -.B \-p -Test that files are named pipes. -.TP -.B \-q -No files are printed, only the exit status is returned. -.TP -.B \-r -Test that files are readable. -.TP -.B \-s -Test that files are not empty. -.TP -.B \-u -Test that files have their set-user-ID flag set. -.TP -.B \-v -Invert the sense of tests, only failing files pass. -.TP -.B \-w -Test that files are writable. -.TP -.B \-x -Test that files are executable. -.SH EXIT STATUS -.TP -.B 0 -At least one file passed all tests. -.TP -.B 1 -No files passed all tests. -.TP -.B 2 -An error occurred. -.SH SEE ALSO -.IR dmenu (1), -.IR test (1) diff --git a/.config/suckless/dmenu/stest.c b/.config/suckless/dmenu/stest.c deleted file mode 100644 index e27d3a5..0000000 --- a/.config/suckless/dmenu/stest.c +++ /dev/null @@ -1,109 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include - -#include -#include -#include -#include -#include -#include - -#include "arg.h" -char *argv0; - -#define FLAG(x) (flag[(x)-'a']) - -static void test(const char *, const char *); -static void usage(void); - -static int match = 0; -static int flag[26]; -static struct stat old, new; - -static void -test(const char *path, const char *name) -{ - struct stat st, ln; - - if ((!stat(path, &st) && (FLAG('a') || name[0] != '.') /* hidden files */ - && (!FLAG('b') || S_ISBLK(st.st_mode)) /* block special */ - && (!FLAG('c') || S_ISCHR(st.st_mode)) /* character special */ - && (!FLAG('d') || S_ISDIR(st.st_mode)) /* directory */ - && (!FLAG('e') || access(path, F_OK) == 0) /* exists */ - && (!FLAG('f') || S_ISREG(st.st_mode)) /* regular file */ - && (!FLAG('g') || st.st_mode & S_ISGID) /* set-group-id flag */ - && (!FLAG('h') || (!lstat(path, &ln) && S_ISLNK(ln.st_mode))) /* symbolic link */ - && (!FLAG('n') || st.st_mtime > new.st_mtime) /* newer than file */ - && (!FLAG('o') || st.st_mtime < old.st_mtime) /* older than file */ - && (!FLAG('p') || S_ISFIFO(st.st_mode)) /* named pipe */ - && (!FLAG('r') || access(path, R_OK) == 0) /* readable */ - && (!FLAG('s') || st.st_size > 0) /* not empty */ - && (!FLAG('u') || st.st_mode & S_ISUID) /* set-user-id flag */ - && (!FLAG('w') || access(path, W_OK) == 0) /* writable */ - && (!FLAG('x') || access(path, X_OK) == 0)) != FLAG('v')) { /* executable */ - if (FLAG('q')) - exit(0); - match = 1; - puts(name); - } -} - -static void -usage(void) -{ - fprintf(stderr, "usage: %s [-abcdefghlpqrsuvwx] " - "[-n file] [-o file] [file...]\n", argv0); - exit(2); /* like test(1) return > 1 on error */ -} - -int -main(int argc, char *argv[]) -{ - struct dirent *d; - char path[PATH_MAX], *line = NULL, *file; - size_t linesiz = 0; - ssize_t n; - DIR *dir; - int r; - - ARGBEGIN { - case 'n': /* newer than file */ - case 'o': /* older than file */ - file = EARGF(usage()); - if (!(FLAG(ARGC()) = !stat(file, (ARGC() == 'n' ? &new : &old)))) - perror(file); - break; - default: - /* miscellaneous operators */ - if (strchr("abcdefghlpqrsuvwx", ARGC())) - FLAG(ARGC()) = 1; - else - usage(); /* unknown flag */ - } ARGEND; - - if (!argc) { - /* read list from stdin */ - while ((n = getline(&line, &linesiz, stdin)) > 0) { - if (line[n - 1] == '\n') - line[n - 1] = '\0'; - test(line, line); - } - free(line); - } else { - for (; argc; argc--, argv++) { - if (FLAG('l') && (dir = opendir(*argv))) { - /* test directory contents */ - while ((d = readdir(dir))) { - r = snprintf(path, sizeof path, "%s/%s", - *argv, d->d_name); - if (r >= 0 && (size_t)r < sizeof path) - test(path, d->d_name); - } - closedir(dir); - } else { - test(*argv, *argv); - } - } - } - return match ? 0 : 1; -} diff --git a/.config/suckless/dmenu/stest.o b/.config/suckless/dmenu/stest.o deleted file mode 100644 index 3d5045edfe970f5f039baa0aea26733dec1da66e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5344 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 diff --git a/.config/suckless/dwm/Makefile b/.config/suckless/dwm/Makefile index ea12a06..f3d514e 100644 --- a/.config/suckless/dwm/Makefile +++ b/.config/suckless/dwm/Makefile @@ -1,6 +1,3 @@ -# dwm - dynamic window manager -# See LICENSE file for copyright and license details. - include config.mk SRC = drw.c dwm.c util.c @@ -13,22 +10,11 @@ all: dwm ${OBJ}: config.h config.mk -config.h: - cp config.def.h $@ - dwm: ${OBJ} ${CC} -o $@ ${OBJ} ${LDFLAGS} clean: - rm -f dwm ${OBJ} dwm-${VERSION}.tar.gz - -dist: clean - mkdir -p dwm-${VERSION} - cp -R LICENSE Makefile README config.def.h config.mk\ - dwm.1 drw.h util.h ${SRC} dwm.png transient.c dwm-${VERSION} - tar -cf dwm-${VERSION}.tar dwm-${VERSION} - gzip dwm-${VERSION}.tar - rm -rf dwm-${VERSION} + rm -f dwm ${OBJ} install: all mkdir -p ${DESTDIR}${PREFIX}/bin @@ -37,6 +23,5 @@ install: all uninstall: rm -f ${DESTDIR}${PREFIX}/bin/dwm\ - ${DESTDIR}${MANPREFIX}/man1/dwm.1 -.PHONY: all clean dist install uninstall +.PHONY: all install clean uninstall diff --git a/.config/suckless/dwm/config.h b/.config/suckless/dwm/config.h index fd422e5..236857a 100644 --- a/.config/suckless/dwm/config.h +++ b/.config/suckless/dwm/config.h @@ -13,11 +13,10 @@ static const char *colors[][3] = { static const char *tags[] = { "1", "2", "3", "4" }; static const Rule rules[] = { - /* class instance title tags mask isfloating monitor */ - { "PrismLauncher", "prismlauncher", NULL, 1 << 2, 0, -1 }, - { "mercury-default", "Navigator", NULL, 1 << 1, 0, -1 }, - { "steam", "steamwebhelper", NULL, 1 << 2, 0, -1 }, - { "st-256color", "st-256color", NULL, 1, 0, -1 }, + { "PrismLauncher", "prismlauncher", NULL, 1 << 2, 0, -1 }, + { "librewolf", "Navigator", NULL, 1 << 1, 0, -1 }, + { "steam", "steamwebhelper", NULL, 1 << 2, 0, -1 }, + { "st-256color", "st-256color", NULL, 1, 0, -1 }, }; static const float mfact = 0.55; @@ -25,7 +24,10 @@ static const int nmaster = 1; static const int resizehints = 1; static const int lockfullscreen = 1; -static const Layout layouts[] = { { "[]=", tile } }; +static const Layout layouts[] = { + { "[]=", tile }, + { "><>", NULL }, /* no layout function means floating behavior */ +}; #define MODKEY Mod1Mask #define TAGKEYS(KEY,TAG) \ @@ -39,12 +41,13 @@ static const Layout layouts[] = { { "[]=", tile } }; static char dmenumon[2] = "0"; static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, NULL }; static const char *termcmd[] = { "st", NULL }; +static const char *browsercmd[] = { "librewolf", NULL }; #include "X11/XF86keysym.h" static const Key keys[] = { { MODKEY, XK_Return, spawn, {.v = termcmd } }, { MODKEY, XK_space, spawn, {.v = dmenucmd } }, - { MODKEY, XK_f, spawn, SHCMD("cd /home/andrew/mercury-browser/ && ./MERCURY_PORTABLE") }, + { MODKEY, XK_f, spawn, {.v = browsercmd } }, { MODKEY, XK_h, focusstack, {.i = +1 } }, { MODKEY, XK_l, focusstack, {.i = -1 } }, { MODKEY, XK_j, setmfact, {.f = -0.05} }, @@ -64,9 +67,9 @@ static const Key keys[] = { { 0, XF86XK_AudioMute, spawn, SHCMD("pactl set-sink-mute @DEFAULT_SINK@ toggle") }, TAGKEYS( XK_1, 0 ) - TAGKEYS( XK_2, 1 ) - TAGKEYS( XK_3, 2 ) - TAGKEYS( XK_4, 3 ) + TAGKEYS( XK_2, 1 ) + TAGKEYS( XK_3, 2 ) + TAGKEYS( XK_4, 3 ) }; static const Button buttons[] = { diff --git a/.config/suckless/dwm/config.mk b/.config/suckless/dwm/config.mk index 32f666a..bda5dc7 100644 --- a/.config/suckless/dwm/config.mk +++ b/.config/suckless/dwm/config.mk @@ -1,14 +1,13 @@ VERSION = 6.5 -# paths PREFIX = /usr/local X11INC = /usr/X11R6/include X11LIB = /usr/X11R6/lib # Xinerama, comment if you don't want it -XINERAMALIBS = -lXinerama -XINERAMAFLAGS = -DXINERAMA +# XINERAMALIBS = -lXinerama +# XINERAMAFLAGS = -DXINERAMA # freetype FREETYPELIBS = -lfontconfig -lXft @@ -16,14 +15,13 @@ FREETYPEINC = /usr/include/freetype2 # includes and libs INCS = -I${X11INC} -I${FREETYPEINC} -LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS} +LIBS = -L${X11LIB} -lX11 ${FREETYPELIBS} # flags -CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700L -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS} +CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700L -DVERSION=\"${VERSION}\" #CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS} CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os ${INCS} ${CPPFLAGS} LDFLAGS = ${LIBS} -# compiler and linker CC = gcc diff --git a/.config/suckless/dwm/dwm.c b/.config/suckless/dwm/dwm.c index b8accb0..58e9bff 100644 --- a/.config/suckless/dwm/dwm.c +++ b/.config/suckless/dwm/dwm.c @@ -14,9 +14,6 @@ #include #include #include -#ifdef XINERAMA -#include -#endif /* XINERAMA */ #include #include "drw.h" @@ -128,7 +125,6 @@ static void arrangemon(Monitor *m); static void attach(Client *c); static void attachstack(Client *c); static void buttonpress(XEvent *e); -static void checkotherwm(void); static void cleanup(void); static void cleanupmon(Monitor *mon); static void clientmessage(XEvent *e); @@ -206,7 +202,6 @@ static Client *wintoclient(Window w); static Monitor *wintomon(Window w); static int xerror(Display *dpy, XErrorEvent *ee); static int xerrordummy(Display *dpy, XErrorEvent *ee); -static int xerrorstart(Display *dpy, XErrorEvent *ee); static void zoom(const Arg *arg); /* variables */ @@ -432,17 +427,6 @@ buttonpress(XEvent *e) buttons[i].func(click == ClkTagBar && buttons[i].arg.i == 0 ? &arg : &buttons[i].arg); } -void -checkotherwm(void) -{ - xerrorxlib = XSetErrorHandler(xerrorstart); - /* this causes an error if some other window manager is running */ - XSelectInput(dpy, DefaultRootWindow(dpy), SubstructureRedirectMask); - XSync(dpy, False); - XSetErrorHandler(xerror); - XSync(dpy, False); -} - void cleanup(void) { @@ -992,18 +976,6 @@ incnmaster(const Arg *arg) arrange(selmon); } -#ifdef XINERAMA -static int -isuniquegeom(XineramaScreenInfo *unique, size_t n, XineramaScreenInfo *info) -{ - while (n--) - if (unique[n].x_org == info->x_org && unique[n].y_org == info->y_org - && unique[n].width == info->width && unique[n].height == info->height) - return 0; - return 1; -} -#endif /* XINERAMA */ - void keypress(XEvent *e) { @@ -1855,62 +1827,6 @@ updategeom(void) { int dirty = 0; -#ifdef XINERAMA - if (XineramaIsActive(dpy)) { - int i, j, n, nn; - Client *c; - Monitor *m; - XineramaScreenInfo *info = XineramaQueryScreens(dpy, &nn); - XineramaScreenInfo *unique = NULL; - - for (n = 0, m = mons; m; m = m->next, n++); - /* only consider unique geometries as separate screens */ - unique = ecalloc(nn, sizeof(XineramaScreenInfo)); - for (i = 0, j = 0; i < nn; i++) - if (isuniquegeom(unique, j, &info[i])) - memcpy(&unique[j++], &info[i], sizeof(XineramaScreenInfo)); - XFree(info); - nn = j; - - /* new monitors if nn > n */ - for (i = n; i < nn; i++) { - for (m = mons; m && m->next; m = m->next); - if (m) - m->next = createmon(); - else - mons = createmon(); - } - for (i = 0, m = mons; i < nn && m; m = m->next, i++) - if (i >= n - || unique[i].x_org != m->mx || unique[i].y_org != m->my - || unique[i].width != m->mw || unique[i].height != m->mh) - { - dirty = 1; - m->num = i; - m->mx = m->wx = unique[i].x_org; - m->my = m->wy = unique[i].y_org; - m->mw = m->ww = unique[i].width; - m->mh = m->wh = unique[i].height; - updatebarpos(m); - } - /* removed monitors if n > nn */ - for (i = nn; i < n; i++) { - for (m = mons; m && m->next; m = m->next); - while ((c = m->clients)) { - dirty = 1; - m->clients = c->next; - detachstack(c); - c->mon = mons; - attach(c); - attachstack(c); - } - if (m == selmon) - selmon = mons; - cleanupmon(m); - } - free(unique); - } else -#endif /* XINERAMA */ { /* default monitor setup */ if (!mons) mons = createmon(); @@ -2105,15 +2021,6 @@ xerrordummy(Display *dpy, XErrorEvent *ee) return 0; } -/* Startup Error handler to check if another window manager - * is already running. */ -int -xerrorstart(Display *dpy, XErrorEvent *ee) -{ - die("dwm: another window manager is already running"); - return -1; -} - void zoom(const Arg *arg) { @@ -2129,15 +2036,8 @@ zoom(const Arg *arg) int main(int argc, char *argv[]) { - if (argc == 2 && !strcmp("-v", argv[1])) - die("dwm-"VERSION); - if (argc != 1) - die("usage: dwm [-v]"); - if (!setlocale(LC_CTYPE, "") || !XSupportsLocale()) - fputs("warning: no locale support\n", stderr); if (!(dpy = XOpenDisplay(NULL))) die("dwm: cannot open display"); - checkotherwm(); setup(); scan(); run(); diff --git a/.config/suckless/dwm/transient.c b/.config/suckless/dwm/transient.c deleted file mode 100644 index 040adb5..0000000 --- a/.config/suckless/dwm/transient.c +++ /dev/null @@ -1,42 +0,0 @@ -/* cc transient.c -o transient -lX11 */ - -#include -#include -#include -#include - -int main(void) { - Display *d; - Window r, f, t = None; - XSizeHints h; - XEvent e; - - d = XOpenDisplay(NULL); - if (!d) - exit(1); - r = DefaultRootWindow(d); - - f = XCreateSimpleWindow(d, r, 100, 100, 400, 400, 0, 0, 0); - h.min_width = h.max_width = h.min_height = h.max_height = 400; - h.flags = PMinSize | PMaxSize; - XSetWMNormalHints(d, f, &h); - XStoreName(d, f, "floating"); - XMapWindow(d, f); - - XSelectInput(d, f, ExposureMask); - while (1) { - XNextEvent(d, &e); - - if (t == None) { - sleep(5); - t = XCreateSimpleWindow(d, r, 50, 50, 100, 100, 0, 0, 0); - XSetTransientForHint(d, t, f); - XStoreName(d, t, "transient"); - XMapWindow(d, t); - XSelectInput(d, t, ExposureMask); - } - } - - XCloseDisplay(d); - exit(0); -} diff --git a/.config/suckless/dwm/util.c b/.config/suckless/dwm/util.c index 96b82c9..8e57190 100644 --- a/.config/suckless/dwm/util.c +++ b/.config/suckless/dwm/util.c @@ -1,4 +1,3 @@ -/* See LICENSE file for copyright and license details. */ #include #include #include diff --git a/.config/suckless/dwm/util.h b/.config/suckless/dwm/util.h index f633b51..62b49cb 100644 --- a/.config/suckless/dwm/util.h +++ b/.config/suckless/dwm/util.h @@ -1,5 +1,3 @@ -/* See LICENSE file for copyright and license details. */ - #define MAX(A, B) ((A) > (B) ? (A) : (B)) #define MIN(A, B) ((A) < (B) ? (A) : (B)) #define BETWEEN(X, A, B) ((A) <= (X) && (X) <= (B)) diff --git a/.config/suckless/slstatus/Makefile b/.config/suckless/slstatus/Makefile index 13472f1..0a9fb0e 100644 --- a/.config/suckless/slstatus/Makefile +++ b/.config/suckless/slstatus/Makefile @@ -3,7 +3,7 @@ include config.mk REQ = util -COM = components/run_command +COM = run_command all: slstatus @@ -13,24 +13,11 @@ slstatus.o: slstatus.c slstatus.h arg.h config.h config.mk $(REQ:=.h) .c.o: $(CC) -o $@ -c $(CPPFLAGS) $(CFLAGS) $< -config.h: - cp config.def.h $@ - slstatus: slstatus.o $(COM:=.o) $(REQ:=.o) $(CC) -o $@ $(LDFLAGS) $(COM:=.o) $(REQ:=.o) slstatus.o $(LDLIBS) clean: - rm -f slstatus slstatus.o $(COM:=.o) $(REQ:=.o) slstatus-${VERSION}.tar.gz - -dist: - rm -rf "slstatus-$(VERSION)" - mkdir -p "slstatus-$(VERSION)/components" - cp -R LICENSE Makefile README config.mk config.def.h \ - arg.h slstatus.h slstatus.c $(REQ:=.c) $(REQ:=.h) \ - slstatus.1 "slstatus-$(VERSION)" - cp -R $(COM:=.c) "slstatus-$(VERSION)/components" - tar -cf - "slstatus-$(VERSION)" | gzip -c > "slstatus-$(VERSION).tar.gz" - rm -rf "slstatus-$(VERSION)" + rm -f slstatus slstatus.o $(COM:=.o) $(REQ:=.o) install: all mkdir -p "$(DESTDIR)$(PREFIX)/bin" diff --git a/.config/suckless/slstatus/components/run_command.c b/.config/suckless/slstatus/run_command.c similarity index 90% rename from .config/suckless/slstatus/components/run_command.c rename to .config/suckless/slstatus/run_command.c index 93bf6da..a69bac5 100644 --- a/.config/suckless/slstatus/components/run_command.c +++ b/.config/suckless/slstatus/run_command.c @@ -2,8 +2,8 @@ #include #include -#include "../slstatus.h" -#include "../util.h" +#include "slstatus.h" +#include "util.h" const char * run_command(const char *cmd) diff --git a/.config/suckless/st/config.h b/.config/suckless/st/config.h index 2a95352..30cb3d8 100644 --- a/.config/suckless/st/config.h +++ b/.config/suckless/st/config.h @@ -67,7 +67,7 @@ static unsigned int cursorthickness = 2; static int bellvolume = 0; // char *termname = "st-256color"; -char *termname = "st"; +char *termname = "st-256color"; unsigned int tabspaces = 8; static const char *colorname[] = {