From ea687c769521b3139c8547a2d4a839842fa7b0fe Mon Sep 17 00:00:00 2001 From: ben Date: Sat, 3 May 2025 14:41:13 -0700 Subject: added scripts --- .gitignore | 1 + config/nvim-archive/colors/PaperColor.vim | 2367 -------------------- config/nvim-archive/external_settings/mappings.vim | 97 - config/nvim-archive/external_settings/plugins.vim | 536 ----- .../nvim-archive/external_settings/status-line.vim | 31 - .../external_settings/syntax-highlighting.vim | 66 - config/nvim-archive/init.vim | 99 - config/nvim-archive/plugin/Tabline.vim | 32 - config/nvim-archive/syntax/curses.vim | 2 - config/nvim-archive/syntax/libpng.vim | 42 - config/nvim-archive/syntax/types.vim | 15 - config/x11/xinitrc | 27 + scripts/stat/internet | 7 + scripts/stat/news | 3 + scripts/stat/ram.sh | 2 + scripts/stat/vol-stat | 12 + scripts/util/afk.sh | 21 + scripts/util/arcc | 11 + scripts/util/arco | 11 + scripts/util/bday.sh | 47 + scripts/util/bmark.sh | 3 + scripts/util/croc.sh | 7 + scripts/util/dic | 5 + scripts/util/dupt.sh | 5 + scripts/util/fmail.sh | 3 + scripts/util/git-repo-add.sh | 57 + scripts/util/gtab_init.sh | 25 + scripts/util/hist.sh | 3 + scripts/util/killpid.sh | 3 + scripts/util/manfzf.sh | 13 + scripts/util/netsel.sh | 6 + scripts/util/open_1 | 5 + scripts/util/pgen.sh | 34 + scripts/util/sc.sh | 3 + scripts/util/sp.sh | 11 + scripts/util/update-web.sh | 5 + scripts/util/vol | 19 + scripts/util/vol+ | 17 + scripts/util/vol- | 22 + xinitrc | 27 - 40 files changed, 388 insertions(+), 3314 deletions(-) delete mode 100644 config/nvim-archive/colors/PaperColor.vim delete mode 100644 config/nvim-archive/external_settings/mappings.vim delete mode 100644 config/nvim-archive/external_settings/plugins.vim delete mode 100644 config/nvim-archive/external_settings/status-line.vim delete mode 100644 config/nvim-archive/external_settings/syntax-highlighting.vim delete mode 100644 config/nvim-archive/init.vim delete mode 100644 config/nvim-archive/plugin/Tabline.vim delete mode 100644 config/nvim-archive/syntax/curses.vim delete mode 100644 config/nvim-archive/syntax/libpng.vim delete mode 100644 config/nvim-archive/syntax/types.vim create mode 100644 config/x11/xinitrc create mode 100755 scripts/stat/internet create mode 100755 scripts/stat/news create mode 100755 scripts/stat/ram.sh create mode 100755 scripts/stat/vol-stat create mode 100755 scripts/util/afk.sh create mode 100755 scripts/util/arcc create mode 100755 scripts/util/arco create mode 100755 scripts/util/bday.sh create mode 100755 scripts/util/bmark.sh create mode 100755 scripts/util/croc.sh create mode 100755 scripts/util/dic create mode 100755 scripts/util/dupt.sh create mode 100755 scripts/util/fmail.sh create mode 100755 scripts/util/git-repo-add.sh create mode 100755 scripts/util/gtab_init.sh create mode 100755 scripts/util/hist.sh create mode 100755 scripts/util/killpid.sh create mode 100755 scripts/util/manfzf.sh create mode 100755 scripts/util/netsel.sh create mode 100755 scripts/util/open_1 create mode 100755 scripts/util/pgen.sh create mode 100755 scripts/util/sc.sh create mode 100755 scripts/util/sp.sh create mode 100755 scripts/util/update-web.sh create mode 100755 scripts/util/vol create mode 100755 scripts/util/vol+ create mode 100755 scripts/util/vol- delete mode 100644 xinitrc diff --git a/.gitignore b/.gitignore index e69de29..3d68a5b 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/home/black/Dev/dotfiles/config/nvim/lazy-lock.json diff --git a/config/nvim-archive/colors/PaperColor.vim b/config/nvim-archive/colors/PaperColor.vim deleted file mode 100644 index a5593b1..0000000 --- a/config/nvim-archive/colors/PaperColor.vim +++ /dev/null @@ -1,2367 +0,0 @@ -" Theme: PaperColor -" Author: Nikyle Nguyen -" License: MIT -" Source: http://github.com/NLKNguyen/papercolor-theme - -let s:version = '0.9.x' - -" Note on navigating this source code: -" - Use folding feature to collapse/uncollapse blocks of marked code -" zM to fold all markers in this file to see the structure of the source code -" zR to unfold all recursively -" za to toggle a fold -" See: http://vim.wikia.com/wiki/Folding -" - The main section is at the end where the functions are called in order. - -" Theme Repository: {{{ - -let s:themes = {} - -" }}} - -fun! s:register_default_theme() - " Theme name should be lowercase - let s:themes['default'] = { - \ 'maintainer' : 'Nikyle Nguyen ', - \ 'source' : 'http://github.com/NLKNguyen/papercolor-theme', - \ 'description' : 'The original PaperColor Theme, inspired by Google Material Design', - \ 'options' : { - \ 'allow_bold': 1 - \ } - \ } - - " Theme can have 'light' and/or 'dark' color palette. - " Color values can be HEX and/or 256-color. Use empty string '' if not provided. - " Only color00 -> color15 are required. The rest are optional. - let s:themes['default'].light = { - \ 'NO_CONVERSION': 1, - \ 'TEST_256_COLOR_CONSISTENCY' : 1, - \ 'palette' : { - \ 'color00' : ['#eeeeee', '255'], - \ 'color01' : ['#af0000', '124'], - \ 'color02' : ['#008700', '28'], - \ 'color03' : ['#5f8700', '64'], - \ 'color04' : ['#0087af', '31'], - \ 'color05' : ['#878787', '102'], - \ 'color06' : ['#005f87', '24'], - \ 'color07' : ['#444444', '238'], - \ 'color08' : ['#bcbcbc', '250'], - \ 'color09' : ['#d70000', '160'], - \ 'color10' : ['#d70087', '162'], - \ 'color11' : ['#8700af', '91'], - \ 'color12' : ['#d75f00', '166'], - \ 'color13' : ['#d75f00', '166'], - \ 'color14' : ['#005faf', '25'], - \ 'color15' : ['#005f87', '24'], - \ 'color16' : ['#0087af', '31'], - \ 'color17' : ['#008700', '28'], - \ 'cursor_fg' : ['#eeeeee', '255'], - \ 'cursor_bg' : ['#005f87', '24'], - \ 'cursorline' : ['#e4e4e4', '254'], - \ 'cursorcolumn' : ['#e4e4e4', '254'], - \ 'cursorlinenr_fg' : ['#af5f00', '130'], - \ 'cursorlinenr_bg' : ['#eeeeee', '255'], - \ 'popupmenu_fg' : ['#444444', '238'], - \ 'popupmenu_bg' : ['#d0d0d0', '252'], - \ 'search_fg' : ['#444444', '238'], - \ 'search_bg' : ['#ffff5f', '227'], - \ 'incsearch_fg' : ['#ffff5f', '227'], - \ 'incsearch_bg' : ['#444444', '238'], - \ 'linenumber_fg' : ['#b2b2b2', '249'], - \ 'linenumber_bg' : ['#eeeeee', '255'], - \ 'vertsplit_fg' : ['#005f87', '24'], - \ 'vertsplit_bg' : ['#eeeeee', '255'], - \ 'statusline_active_fg' : ['#e4e4e4', '254'], - \ 'statusline_active_bg' : ['#005f87', '24'], - \ 'statusline_inactive_fg' : ['#444444', '238'], - \ 'statusline_inactive_bg' : ['#d0d0d0', '252'], - \ 'todo_fg' : ['#00af5f', '35'], - \ 'todo_bg' : ['#eeeeee', '255'], - \ 'error_fg' : ['#af0000', '124'], - \ 'error_bg' : ['#ffd7ff', '225'], - \ 'matchparen_bg' : ['#c6c6c6', '251'], - \ 'matchparen_fg' : ['#005f87', '24'], - \ 'visual_fg' : ['#eeeeee', '255'], - \ 'visual_bg' : ['#0087af', '31'], - \ 'folded_fg' : ['#0087af', '31'], - \ 'folded_bg' : ['#afd7ff', '153'], - \ 'wildmenu_fg': ['#444444', '238'], - \ 'wildmenu_bg': ['#ffff00', '226'], - \ 'spellbad': ['#ffafd7', '218'], - \ 'spellcap': ['#ffffaf', '229'], - \ 'spellrare': ['#afff87', '156'], - \ 'spelllocal': ['#d7d7ff', '189'], - \ 'diffadd_fg': ['#008700', '28'], - \ 'diffadd_bg': ['#afffaf', '157'], - \ 'diffdelete_fg': ['#af0000', '124'], - \ 'diffdelete_bg': ['#ffd7ff', '225'], - \ 'difftext_fg': ['#0087af', '31'], - \ 'difftext_bg': ['#ffffd7', '230'], - \ 'diffchange_fg': ['#444444', '238'], - \ 'diffchange_bg': ['#ffd787', '222'], - \ 'tabline_bg': ['#005f87', '24'], - \ 'tabline_active_fg': ['#444444', '238'], - \ 'tabline_active_bg': ['#e4e4e4', '254'], - \ 'tabline_inactive_fg': ['#eeeeee', '255'], - \ 'tabline_inactive_bg': ['#0087af', '31'], - \ 'buftabline_bg': ['#005f87', '24'], - \ 'buftabline_current_fg': ['#444444', '238'], - \ 'buftabline_current_bg': ['#e4e4e4', '254'], - \ 'buftabline_active_fg': ['#eeeeee', '255'], - \ 'buftabline_active_bg': ['#005faf', '25'], - \ 'buftabline_inactive_fg': ['#eeeeee', '255'], - \ 'buftabline_inactive_bg': ['#0087af', '31'] - \ } - \ } - - " TODO: idea for subtheme options - " let s:themes['default'].light.subtheme = { - " \ 'alternative' : { - " \ 'options' : { - " \ 'transparent_background': 1 - " \ }, - " \ 'palette' : { - " \ } - " \ } - " \ } - - let s:themes['default'].dark = { - \ 'NO_CONVERSION': 1, - \ 'TEST_256_COLOR_CONSISTENCY' : 1, - \ 'palette' : { - \ 'color00' : ['#1c1c1c', '234'], - \ 'color01' : ['#af005f', '125'], - \ 'color02' : ['#5faf00', '70'], - \ 'color03' : ['#d7af5f', '179'], - \ 'color04' : ['#5fafd7', '74'], - \ 'color05' : ['#808080', '244'], - \ 'color06' : ['#d7875f', '173'], - \ 'color07' : ['#d0d0d0', '252'], - \ 'color08' : ['#585858', '240'], - \ 'color09' : ['#5faf5f', '71'], - \ 'color10' : ['#afd700', '148'], - \ 'color11' : ['#af87d7', '140'], - \ 'color12' : ['#ffaf00', '214'], - \ 'color13' : ['#ff5faf', '205'], - \ 'color14' : ['#00afaf', '37'], - \ 'color15' : ['#5f8787', '66'], - \ 'color16' : ['#5fafd7', '74'], - \ 'color17' : ['#d7af00', '178'], - \ 'cursor_fg' : ['#1c1c1c', '234'], - \ 'cursor_bg' : ['#c6c6c6', '251'], - \ 'cursorline' : ['#303030', '236'], - \ 'cursorcolumn' : ['#303030', '236'], - \ 'cursorlinenr_fg' : ['#ffff00', '226'], - \ 'cursorlinenr_bg' : ['#1c1c1c', '234'], - \ 'popupmenu_fg' : ['#c6c6c6', '251'], - \ 'popupmenu_bg' : ['#303030', '236'], - \ 'search_fg' : ['#000000', '16'], - \ 'search_bg' : ['#00875f', '29'], - \ 'incsearch_fg' : ['#00875f', '29'], - \ 'incsearch_bg' : ['#000000', '16'], - \ 'linenumber_fg' : ['#585858', '240'], - \ 'linenumber_bg' : ['#1c1c1c', '234'], - \ 'vertsplit_fg' : ['#5f8787', '66'], - \ 'vertsplit_bg' : ['#1c1c1c', '234'], - \ 'statusline_active_fg' : ['#1c1c1c', '234'], - \ 'statusline_active_bg' : ['#5f8787', '66'], - \ 'statusline_inactive_fg' : ['#bcbcbc', '250'], - \ 'statusline_inactive_bg' : ['#3a3a3a', '237'], - \ 'todo_fg' : ['#ff8700', '208'], - \ 'todo_bg' : ['#1c1c1c', '234'], - \ 'error_fg' : ['#af005f', '125'], - \ 'error_bg' : ['#5f0000', '52'], - \ 'matchparen_bg' : ['#4e4e4e', '239'], - \ 'matchparen_fg' : ['#c6c6c6', '251'], - \ 'visual_fg' : ['#000000', '16'], - \ 'visual_bg' : ['#8787af', '103'], - \ 'folded_fg' : ['#d787ff', '177'], - \ 'folded_bg' : ['#5f005f', '53'], - \ 'wildmenu_fg': ['#1c1c1c', '234'], - \ 'wildmenu_bg': ['#afd700', '148'], - \ 'spellbad': ['#5f0000', '52'], - \ 'spellcap': ['#5f005f', '53'], - \ 'spellrare': ['#005f00', '22'], - \ 'spelllocal': ['#00005f', '17'], - \ 'diffadd_fg': ['#87d700', '112'], - \ 'diffadd_bg': ['#005f00', '22'], - \ 'diffdelete_fg': ['#af005f', '125'], - \ 'diffdelete_bg': ['#5f0000', '52'], - \ 'difftext_fg': ['#5fffff', '87'], - \ 'difftext_bg': ['#008787', '30'], - \ 'diffchange_fg': ['#d0d0d0', '252'], - \ 'diffchange_bg': ['#005f5f', '23'], - \ 'tabline_bg': ['#262626', '235'], - \ 'tabline_active_fg': ['#121212', '233'], - \ 'tabline_active_bg': ['#00afaf', '37'], - \ 'tabline_inactive_fg': ['#bcbcbc', '250'], - \ 'tabline_inactive_bg': ['#585858', '240'], - \ 'buftabline_bg': ['#262626', '235'], - \ 'buftabline_current_fg': ['#121212', '233'], - \ 'buftabline_current_bg': ['#00afaf', '37'], - \ 'buftabline_active_fg': ['#00afaf', '37'], - \ 'buftabline_active_bg': ['#585858', '240'], - \ 'buftabline_inactive_fg': ['#bcbcbc', '250'], - \ 'buftabline_inactive_bg': ['#585858', '240'] - \ } - \ } -endfun - -" ============================ THEME REGISTER ================================= - -" Acquire Theme Data: {{{ - -" Brief: -" Function to get theme information and store in variables for other -" functions to use -" -" Require: -" s:themes collection of all theme palettes -" -" Require Optionally: -" {g:PaperColor_Theme_[s:theme_name]} user custom theme palette -" g:PaperColor_Theme_Options user options -" -" Expose: -" s:theme_name the name of the selected theme -" s:selected_theme the selected theme object (contains palette, etc.) -" s:selected_variant 'light' or 'dark' -" s:palette the palette of selected theme -" s:options user options -fun! s:acquire_theme_data() - - " Get theme name: {{{ - let s:theme_name = 'default' - - if exists("g:PaperColor_Theme") " Users expressed theme preference - let lowercase_theme_name = tolower(g:PaperColor_Theme) - - if lowercase_theme_name !=? 'default' - let theme_identifier = 'PaperColor_' . lowercase_theme_name - let autoload_function = theme_identifier . '#register' - - call {autoload_function}() - - let theme_variable = 'g:' . theme_identifier - - if exists(theme_variable) - let s:theme_name = lowercase_theme_name - let s:themes[s:theme_name] = {theme_variable} - endif - - endif - - endif - " }}} - - if s:theme_name ==? 'default' - " Either no other theme is specified or they failed to load - " Defer loading default theme until now - call s:register_default_theme() - endif - - let s:selected_theme = s:themes[s:theme_name] - - " Get Theme Variant: either dark or light {{{ - let s:selected_variant = 'dark' - - let s:is_dark=(&background == 'dark') - - if s:is_dark - if has_key(s:selected_theme, 'dark') - let s:selected_variant = 'dark' - else " in case the theme only provides the other variant - let s:selected_variant = 'light' - endif - - else " is light background - if has_key(s:selected_theme, 'light') - let s:selected_variant = 'light' - else " in case the theme only provides the other variant - let s:selected_variant = 'dark' - endif - endif - - let s:palette = s:selected_theme[s:selected_variant].palette - - " Systematic User-Config Options: {{{ - " Example config in .vimrc - " let g:PaperColor_Theme_Options = { - " \ 'theme': { - " \ 'default': { - " \ 'allow_bold': 1, - " \ 'allow_italic': 0, - " \ 'transparent_background': 1 - " \ } - " \ }, - " \ 'language': { - " \ 'python': { - " \ 'highlight_builtins' : 1 - " \ }, - " \ 'c': { - " \ 'highlight_builtins' : 1 - " \ }, - " \ 'cpp': { - " \ 'highlight_standard_library': 1 - " \ } - " \ } - " \ } - " - let s:options = {} - - - if exists("g:PaperColor_Theme_Options") - let s:options = g:PaperColor_Theme_Options - endif - " }}} - - " }}} -endfun - - -" }}} - -" Identify Color Mode: {{{ - -fun! s:identify_color_mode() - let s:MODE_16_COLOR = 0 - let s:MODE_256_COLOR = 1 - let s:MODE_GUI_COLOR = 2 - - if has("gui_running") || has('termguicolors') && &termguicolors || has('nvim') && $NVIM_TUI_ENABLE_TRUE_COLOR - let s:mode = s:MODE_GUI_COLOR - elseif (&t_Co >= 256) - let s:mode = s:MODE_256_COLOR - else - let s:mode = s:MODE_16_COLOR - endif -endfun - -" }}} - -" ============================ OPTION HANDLER ================================= - -" Generate Them Option Variables: {{{ - - -fun! s:generate_theme_option_variables() - " 0. All possible theme option names must be registered here - let l:available_theme_options = [ - \ 'allow_bold', - \ 'allow_italic', - \ 'transparent_background', - \ ] - - " 1. Generate variables and set to default value - for l:option in l:available_theme_options - let s:{'themeOpt_' . l:option} = 0 - endfor - - let s:themeOpt_override = {} " special case, this has to be a dictionary - - " 2. Reassign value to the above variables based on theme settings - - " 2.1 In case the theme has top-level options - if has_key(s:selected_theme, 'options') - let l:theme_options = s:selected_theme['options'] - for l:opt_name in keys(l:theme_options) - let s:{'themeOpt_' . l:opt_name} = l:theme_options[l:opt_name] - " echo 's:themeOpt_' . l:opt_name . ' = ' . s:{'themeOpt_' . l:opt_name} - endfor - endif - - " 2.2 In case the theme has specific variant options - if has_key(s:selected_theme[s:selected_variant], 'options') - let l:theme_options = s:selected_theme[s:selected_variant]['options'] - for l:opt_name in keys(l:theme_options) - let s:{'themeOpt_' . l:opt_name} = l:theme_options[l:opt_name] - " echo 's:themeOpt_' . l:opt_name . ' = ' . s:{'themeOpt_' . l:opt_name} - endfor - endif - - - " 3. Reassign value to the above variables which the user customizes - " Part of user-config options - let s:theme_options = {} - if has_key(s:options, 'theme') - let s:theme_options = s:options['theme'] - endif - - " 3.1 In case user sets for a theme without specifying which variant - if has_key(s:theme_options, s:theme_name) - let l:theme_options = s:theme_options[s:theme_name] - for l:opt_name in keys(l:theme_options) - let s:{'themeOpt_' . l:opt_name} = l:theme_options[l:opt_name] - " echo 's:themeOpt_' . l:opt_name . ' = ' . s:{'themeOpt_' . l:opt_name} - endfor - endif - - - " 3.2 In case user sets for a specific variant of a theme - - " Create the string that the user might have set for this theme variant - " for example, 'default.dark' - let l:specific_theme_variant = s:theme_name . '.' . s:selected_variant - - if has_key(s:theme_options, l:specific_theme_variant) - let l:theme_options = s:theme_options[l:specific_theme_variant] - for l:opt_name in keys(l:theme_options) - let s:{'themeOpt_' . l:opt_name} = l:theme_options[l:opt_name] - " echo 's:themeOpt_' . l:opt_name . ' = ' . s:{'themeOpt_' . l:opt_name} - endfor - endif - -endfun -" }}} - -" Check If Theme Has Hint: {{{ -" -" Brief: -" Function to Check if the selected theme and variant has a hint -" -" Details: -" A hint is a known key that has value 1 -" It is not part of theme design but is used for technical purposes -" -" Example: -" If a theme has hint 'NO_CONVERSION', then we can assume that every -" color value is a complete pair, so we don't have to check. - -fun! s:theme_has_hint(hint) - return has_key(s:selected_theme[s:selected_variant], a:hint) && - \ s:selected_theme[s:selected_variant][a:hint] == 1 -endfun -" }}} - -" Set Overriding Colors: {{{ - -fun! s:set_overriding_colors() - - if s:theme_has_hint('NO_CONVERSION') - " s:convert_colors will not do anything, so we take care of conversion - " for the overriding colors that need to be converted - - if s:mode == s:MODE_GUI_COLOR - " if GUI color is not provided, convert from 256 color that must be available - if !empty(s:themeOpt_override) - call s:load_256_to_GUI_converter() - endif - - for l:color in keys(s:themeOpt_override) - let l:value = s:themeOpt_override[l:color] - if l:value[0] == '' - let l:value[0] = s:to_HEX[l:value[1]] - endif - let s:palette[l:color] = l:value - endfor - - elseif s:mode == s:MODE_256_COLOR - " if 256 color is not provided, convert from GUI color that must be available - if !empty(s:themeOpt_override) - call s:load_GUI_to_256_converter() - endif - - for l:color in keys(s:themeOpt_override) - let l:value = s:themeOpt_override[l:color] - if l:value[1] == '' - let l:value[1] = s:to_256(l:value[0]) - endif - let s:palette[l:color] = l:value - endfor - endif - - else " simply set the colors and let s:convert_colors() take care of conversion - - for l:color in keys(s:themeOpt_override) - let s:palette[l:color] = s:themeOpt_override[l:color] - endfor - endif - -endfun -" }}} - -" Generate Language Option Variables: {{{ - -" Brief: -" Function to generate language option variables so that there is no need to -" look up from the dictionary every time the option value is checked in the -" function s:apply_syntax_highlightings() -" -" Require: -" s:options user options -" -" Require Optionally: -" g:PaperColor_Theme_Options user option config in .vimrc -" -" Expose: -" s:langOpt_[LANGUAGE]__[OPTION] variables for language options -" -" Example: -" g:PaperColor_Theme_Options has something like this: -" 'language': { -" \ 'python': { -" \ 'highlight_builtins': 1 -" \ } -" } -" The following variable will be generated: -" s:langOpt_python__highlight_builtins = 1 - -fun! s:generate_language_option_variables() - " 0. All possible theme option names must be registered here - let l:available_language_options = [ - \ 'c__highlight_builtins', - \ 'cpp__highlight_standard_library', - \ 'python__highlight_builtins', - \ 'haskell__no_bold_types' - \ ] - - " 1. Generate variables and set to default value - for l:option in l:available_language_options - let s:{'langOpt_' . l:option} = 0 - endfor - - " Part of user-config options - if has_key(s:options, 'language') - let l:language_options = s:options['language'] - " echo l:language_options - for l:lang in keys(l:language_options) - let l:options = l:language_options[l:lang] - " echo l:lang - " echo l:options - for l:option in keys(l:options) - let s:{'langOpt_' . l:lang . '__' . l:option} = l:options[l:option] - " echo 's:langOpt_' . l:lang . '__' . l:option . ' = ' . l:options[l:option] - endfor - endfor - - endif - -endfun -" }}} - -" =========================== COLOR CONVERTER ================================= - -fun! s:load_GUI_to_256_converter() - " GUI-color To 256-color: {{{ - " Returns an approximate grey index for the given grey level - fun! s:grey_number(x) - if &t_Co == 88 - if a:x < 23 - return 0 - elseif a:x < 69 - return 1 - elseif a:x < 103 - return 2 - elseif a:x < 127 - return 3 - elseif a:x < 150 - return 4 - elseif a:x < 173 - return 5 - elseif a:x < 196 - return 6 - elseif a:x < 219 - return 7 - elseif a:x < 243 - return 8 - else - return 9 - endif - else - if a:x < 14 - return 0 - else - let l:n = (a:x - 8) / 10 - let l:m = (a:x - 8) % 10 - if l:m < 5 - return l:n - else - return l:n + 1 - endif - endif - endif - endfun - - " Returns the actual grey level represented by the grey index - fun! s:grey_level(n) - if &t_Co == 88 - if a:n == 0 - return 0 - elseif a:n == 1 - return 46 - elseif a:n == 2 - return 92 - elseif a:n == 3 - return 115 - elseif a:n == 4 - return 139 - elseif a:n == 5 - return 162 - elseif a:n == 6 - return 185 - elseif a:n == 7 - return 208 - elseif a:n == 8 - return 231 - else - return 255 - endif - else - if a:n == 0 - return 0 - else - return 8 + (a:n * 10) - endif - endif - endfun - - " Returns the palette index for the given grey index - fun! s:grey_colour(n) - if &t_Co == 88 - if a:n == 0 - return 16 - elseif a:n == 9 - return 79 - else - return 79 + a:n - endif - else - if a:n == 0 - return 16 - elseif a:n == 25 - return 231 - else - return 231 + a:n - endif - endif - endfun - - " Returns an approximate colour index for the given colour level - fun! s:rgb_number(x) - if &t_Co == 88 - if a:x < 69 - return 0 - elseif a:x < 172 - return 1 - elseif a:x < 230 - return 2 - else - return 3 - endif - else - if a:x < 75 - return 0 - else - let l:n = (a:x - 55) / 40 - let l:m = (a:x - 55) % 40 - if l:m < 20 - return l:n - else - return l:n + 1 - endif - endif - endif - endfun - - " Returns the actual colour level for the given colour index - fun! s:rgb_level(n) - if &t_Co == 88 - if a:n == 0 - return 0 - elseif a:n == 1 - return 139 - elseif a:n == 2 - return 205 - else - return 255 - endif - else - if a:n == 0 - return 0 - else - return 55 + (a:n * 40) - endif - endif - endfun - - " Returns the palette index for the given R/G/B colour indices - fun! s:rgb_colour(x, y, z) - if &t_Co == 88 - return 16 + (a:x * 16) + (a:y * 4) + a:z - else - return 16 + (a:x * 36) + (a:y * 6) + a:z - endif - endfun - - " Returns the palette index to approximate the given R/G/B colour levels - fun! s:colour(r, g, b) - " Get the closest grey - let l:gx = s:grey_number(a:r) - let l:gy = s:grey_number(a:g) - let l:gz = s:grey_number(a:b) - - " Get the closest colour - let l:x = s:rgb_number(a:r) - let l:y = s:rgb_number(a:g) - let l:z = s:rgb_number(a:b) - - if l:gx == l:gy && l:gy == l:gz - " There are two possibilities - let l:dgr = s:grey_level(l:gx) - a:r - let l:dgg = s:grey_level(l:gy) - a:g - let l:dgb = s:grey_level(l:gz) - a:b - let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) - let l:dr = s:rgb_level(l:gx) - a:r - let l:dg = s:rgb_level(l:gy) - a:g - let l:db = s:rgb_level(l:gz) - a:b - let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) - if l:dgrey < l:drgb - " Use the grey - return s:grey_colour(l:gx) - else - " Use the colour - return s:rgb_colour(l:x, l:y, l:z) - endif - else - " Only one possibility - return s:rgb_colour(l:x, l:y, l:z) - endif - endfun - - " Returns the palette index to approximate the '#rrggbb' hex string - fun! s:to_256(rgb) - let l:r = ("0x" . strpart(a:rgb, 1, 2)) + 0 - let l:g = ("0x" . strpart(a:rgb, 3, 2)) + 0 - let l:b = ("0x" . strpart(a:rgb, 5, 2)) + 0 - - return s:colour(l:r, l:g, l:b) - endfun - - - - " }}} -endfun - -fun! s:load_256_to_GUI_converter() -" 256-color To GUI-color: {{{ - -""" Xterm 256 color dictionary -" See: http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html -" -let s:to_HEX = { - \ '00': '#000000', '01': '#800000', '02': '#008000', '03': '#808000', '04': '#000080', - \ '05': '#800080', '06': '#008080', '07': '#c0c0c0', '08': '#808080', '09': '#ff0000', - \ '10': '#00ff00', '11': '#ffff00', '12': '#0000ff', '13': '#ff00ff', '14': '#00ffff', - \ '15': '#ffffff', '16': '#000000', '17': '#00005f', '18': '#000087', '19': '#0000af', - \ '20': '#0000d7', '21': '#0000ff', '22': '#005f00', '23': '#005f5f', '24': '#005f87', - \ '25': '#005faf', '26': '#005fd7', '27': '#005fff', '28': '#008700', '29': '#00875f', - \ '30': '#008787', '31': '#0087af', '32': '#0087d7', '33': '#0087ff', '34': '#00af00', - \ '35': '#00af5f', '36': '#00af87', '37': '#00afaf', '38': '#00afd7', '39': '#00afff', - \ '40': '#00d700', '41': '#00d75f', '42': '#00d787', '43': '#00d7af', '44': '#00d7d7', - \ '45': '#00d7ff', '46': '#00ff00', '47': '#00ff5f', '48': '#00ff87', '49': '#00ffaf', - \ '50': '#00ffd7', '51': '#00ffff', '52': '#5f0000', '53': '#5f005f', '54': '#5f0087', - \ '55': '#5f00af', '56': '#5f00d7', '57': '#5f00ff', '58': '#5f5f00', '59': '#5f5f5f', - \ '60': '#5f5f87', '61': '#5f5faf', '62': '#5f5fd7', '63': '#5f5fff', '64': '#5f8700', - \ '65': '#5f875f', '66': '#5f8787', '67': '#5f87af', '68': '#5f87d7', '69': '#5f87ff', - \ '70': '#5faf00', '71': '#5faf5f', '72': '#5faf87', '73': '#5fafaf', '74': '#5fafd7', - \ '75': '#5fafff', '76': '#5fd700', '77': '#5fd75f', '78': '#5fd787', '79': '#5fd7af', - \ '80': '#5fd7d7', '81': '#5fd7ff', '82': '#5fff00', '83': '#5fff5f', '84': '#5fff87', - \ '85': '#5fffaf', '86': '#5fffd7', '87': '#5fffff', '88': '#870000', '89': '#87005f', - \ '90': '#870087', '91': '#8700af', '92': '#8700d7', '93': '#8700ff', '94': '#875f00', - \ '95': '#875f5f', '96': '#875f87', '97': '#875faf', '98': '#875fd7', '99': '#875fff', - \ '100': '#878700', '101': '#87875f', '102': '#878787', '103': '#8787af', '104': '#8787d7', - \ '105': '#8787ff', '106': '#87af00', '107': '#87af5f', '108': '#87af87', '109': '#87afaf', - \ '110': '#87afd7', '111': '#87afff', '112': '#87d700', '113': '#87d75f', '114': '#87d787', - \ '115': '#87d7af', '116': '#87d7d7', '117': '#87d7ff', '118': '#87ff00', '119': '#87ff5f', - \ '120': '#87ff87', '121': '#87ffaf', '122': '#87ffd7', '123': '#87ffff', '124': '#af0000', - \ '125': '#af005f', '126': '#af0087', '127': '#af00af', '128': '#af00d7', '129': '#af00ff', - \ '130': '#af5f00', '131': '#af5f5f', '132': '#af5f87', '133': '#af5faf', '134': '#af5fd7', - \ '135': '#af5fff', '136': '#af8700', '137': '#af875f', '138': '#af8787', '139': '#af87af', - \ '140': '#af87d7', '141': '#af87ff', '142': '#afaf00', '143': '#afaf5f', '144': '#afaf87', - \ '145': '#afafaf', '146': '#afafd7', '147': '#afafff', '148': '#afd700', '149': '#afd75f', - \ '150': '#afd787', '151': '#afd7af', '152': '#afd7d7', '153': '#afd7ff', '154': '#afff00', - \ '155': '#afff5f', '156': '#afff87', '157': '#afffaf', '158': '#afffd7', '159': '#afffff', - \ '160': '#d70000', '161': '#d7005f', '162': '#d70087', '163': '#d700af', '164': '#d700d7', - \ '165': '#d700ff', '166': '#d75f00', '167': '#d75f5f', '168': '#d75f87', '169': '#d75faf', - \ '170': '#d75fd7', '171': '#d75fff', '172': '#d78700', '173': '#d7875f', '174': '#d78787', - \ '175': '#d787af', '176': '#d787d7', '177': '#d787ff', '178': '#d7af00', '179': '#d7af5f', - \ '180': '#d7af87', '181': '#d7afaf', '182': '#d7afd7', '183': '#d7afff', '184': '#d7d700', - \ '185': '#d7d75f', '186': '#d7d787', '187': '#d7d7af', '188': '#d7d7d7', '189': '#d7d7ff', - \ '190': '#d7ff00', '191': '#d7ff5f', '192': '#d7ff87', '193': '#d7ffaf', '194': '#d7ffd7', - \ '195': '#d7ffff', '196': '#ff0000', '197': '#ff005f', '198': '#ff0087', '199': '#ff00af', - \ '200': '#ff00d7', '201': '#ff00ff', '202': '#ff5f00', '203': '#ff5f5f', '204': '#ff5f87', - \ '205': '#ff5faf', '206': '#ff5fd7', '207': '#ff5fff', '208': '#ff8700', '209': '#ff875f', - \ '210': '#ff8787', '211': '#ff87af', '212': '#ff87d7', '213': '#ff87ff', '214': '#ffaf00', - \ '215': '#ffaf5f', '216': '#ffaf87', '217': '#ffafaf', '218': '#ffafd7', '219': '#ffafff', - \ '220': '#ffd700', '221': '#ffd75f', '222': '#ffd787', '223': '#ffd7af', '224': '#ffd7d7', - \ '225': '#ffd7ff', '226': '#ffff00', '227': '#ffff5f', '228': '#ffff87', '229': '#ffffaf', - \ '230': '#ffffd7', '231': '#ffffff', '232': '#080808', '233': '#121212', '234': '#1c1c1c', - \ '235': '#262626', '236': '#303030', '237': '#3a3a3a', '238': '#444444', '239': '#4e4e4e', - \ '240': '#585858', '241': '#626262', '242': '#6c6c6c', '243': '#767676', '244': '#808080', - \ '245': '#8a8a8a', '246': '#949494', '247': '#9e9e9e', '248': '#a8a8a8', '249': '#b2b2b2', - \ '250': '#bcbcbc', '251': '#c6c6c6', '252': '#d0d0d0', '253': '#dadada', '254': '#e4e4e4', - \ '255': '#eeeeee' } - -" }}} -endfun - -" ========================== ENVIRONMENT ADAPTER ============================== - -" Set Format Attributes: {{{ - -fun! s:set_format_attributes() - " These are the default - if s:mode == s:MODE_GUI_COLOR - let s:ft_bold = " cterm=bold gui=bold " - let s:ft_none = " cterm=none gui=none " - let s:ft_reverse = " cterm=reverse gui=reverse " - let s:ft_italic = " cterm=italic gui=italic " - let s:ft_italic_bold = " cterm=italic,bold gui=italic,bold " - elseif s:mode == s:MODE_256_COLOR - let s:ft_bold = " cterm=bold " - let s:ft_none = " cterm=none " - let s:ft_reverse = " cterm=reverse " - let s:ft_italic = " cterm=italic " - let s:ft_italic_bold = " cterm=italic,bold " - else - let s:ft_bold = "" - let s:ft_none = " cterm=none " - let s:ft_reverse = " cterm=reverse " - let s:ft_italic = "" - let s:ft_italic_bold = "" - endif - - " Unless instructed otherwise either by theme setting or user overriding - - if s:themeOpt_allow_bold == 0 - let s:ft_bold = "" - endif - if s:themeOpt_allow_italic == 0 - let s:ft_italic = "" - let s:ft_italic_bold = s:ft_bold - endif - -endfun - -" }}} - -" Convert Colors If Needed: {{{ -fun! s:convert_colors() - if s:theme_has_hint('NO_CONVERSION') - return - endif - - if s:mode == s:MODE_GUI_COLOR - " if GUI color is not provided, convert from 256 color that must be available - call s:load_256_to_GUI_converter() - - for l:color in keys(s:palette) - let l:value = s:palette[l:color] - if l:value[0] == '' - let l:value[0] = s:to_HEX[l:value[1]] - endif - let s:palette[l:color] = l:value - endfor - - elseif s:mode == s:MODE_256_COLOR - " if 256 color is not provided, convert from GUI color that must be available - call s:load_GUI_to_256_converter() - - for l:color in keys(s:palette) - let l:value = s:palette[l:color] - if l:value[1] == '' - let l:value[1] = s:to_256(l:value[0]) - endif - let s:palette[l:color] = l:value - endfor - endif - " otherwise use the terminal colors and none of the theme colors are used -endfun - -" }}} - -" ============================ COLOR POPULARIZER =============================== - -" Set Color Variables: {{{ -fun! s:set_color_variables() - - " Helper: {{{ - " ------- - " Function to dynamically generate variables that store the color strings - " for setting highlighting. Each color name will have 2 variables with prefix - " s:fg_ and s:bg_. For example: - " if a:color_name is 'Normal' and a:color_value is ['#000000', '0', 'Black'], - " the following 2 variables will be created: - " s:fg_Normal that stores the string ' guifg=#000000 ' - " s:bg_Normal that stores the string ' guibg=#000000 ' - " Depending on the color mode, ctermfg and ctermbg will be either 0 or Black - " - " Rationale: - " The whole purpose is for speed. We generate these ahead of time so that we - " don't have to do look up or do any if-branch when we set the highlightings. - " - " Furthermore, multiple function definitions for each mode actually reduces - " the need for multiple if-branches inside a single function. This is not - " pretty, but Vim Script is slow, so reducing if-branches in function that is - " often called helps speeding things up quite a bit. Think of this like macro. - " - " If you are familiar with the old code base (v0.9 and ealier), this way of - " generate variables dramatically reduces the loading speed. - " None of previous optimization tricks gets anywhere near this. - if s:mode == s:MODE_GUI_COLOR - fun! s:create_color_variables(color_name, rich_color, term_color) - let {'s:fg_' . a:color_name} = ' guifg=' . a:rich_color[0] . ' ' - let {'s:bg_' . a:color_name} = ' guibg=' . a:rich_color[0] . ' ' - let {'s:sp_' . a:color_name} = ' guisp=' . a:rich_color[0] . ' ' - endfun - elseif s:mode == s:MODE_256_COLOR - fun! s:create_color_variables(color_name, rich_color, term_color) - let {'s:fg_' . a:color_name} = ' ctermfg=' . a:rich_color[1] . ' ' - let {'s:bg_' . a:color_name} = ' ctermbg=' . a:rich_color[1] . ' ' - let {'s:sp_' . a:color_name} = '' - endfun - else - fun! s:create_color_variables(color_name, rich_color, term_color) - let {'s:fg_' . a:color_name} = ' ctermfg=' . a:term_color . ' ' - let {'s:bg_' . a:color_name} = ' ctermbg=' . a:term_color . ' ' - let {'s:sp_' . a:color_name} = '' - endfun - endif - " }}} - - " Color value format: Array [, <256-Base>, <16-Base>] - " 16-Base is terminal's native color palette that can be alternated through - " the terminal settings. The 16-color names are according to `:h cterm-colors` - - " BASIC COLORS: - " color00-15 are required by all themes. - " These are also how the terminal color palette for the target theme should be. - " See README for theme design guideline - " - " An example format of the below variable's value: ['#262626', '234', 'Black'] - " Where the 1st value is HEX color for GUI Vim, 2nd value is for 256-color terminal, - " and the color name on the right is for 16-color terminal (the actual terminal colors - " can be different from what the color names suggest). See :h cterm-colors - " - " Depending on the provided color palette and current Vim, the 1st and 2nd - " parameter might not exist, for example, on 16-color terminal, the variables below - " only store the color names to use the terminal color palette which is the only - " thing available therefore no need for GUI-color or 256-color. - - let color00 = get(s:palette, 'color00') - let color01 = get(s:palette, 'color01') - let color02 = get(s:palette, 'color02') - let color03 = get(s:palette, 'color03') - let color04 = get(s:palette, 'color04') - let color05 = get(s:palette, 'color05') - let color06 = get(s:palette, 'color06') - let color07 = get(s:palette, 'color07') - let color08 = get(s:palette, 'color08') - let color09 = get(s:palette, 'color09') - let color10 = get(s:palette, 'color10') - let color11 = get(s:palette, 'color11') - let color12 = get(s:palette, 'color12') - let color13 = get(s:palette, 'color13') - let color14 = get(s:palette, 'color14') - let color15 = get(s:palette, 'color15') - - call s:create_color_variables('background', color00 , 'Black') - call s:create_color_variables('negative', color01 , 'DarkRed') - call s:create_color_variables('positive', color02 , 'DarkGreen') - call s:create_color_variables('olive', color03 , 'DarkYellow') " string - call s:create_color_variables('neutral', color04 , 'DarkBlue') - call s:create_color_variables('comment', color05 , 'DarkMagenta') - call s:create_color_variables('navy', color06 , 'DarkCyan') " storageclass - call s:create_color_variables('foreground', color07 , 'LightGray') - - call s:create_color_variables('nontext', color08 , 'DarkGray') - call s:create_color_variables('red', color09 , 'LightRed') " import / try/catch - call s:create_color_variables('pink', color10 , 'LightGreen') " statement, type - call s:create_color_variables('purple', color11 , 'LightYellow') " if / conditional - call s:create_color_variables('accent', color12 , 'LightBlue') - call s:create_color_variables('orange', color13 , 'LightMagenta') " number - call s:create_color_variables('blue', color14 , 'LightCyan') " other keyword - call s:create_color_variables('highlight', color15 , 'White') - - " Note: special case for FoldColumn group. I want to get rid of this case. - call s:create_color_variables('transparent', [color00[0], 'none'], 'none') - - " EXTENDED COLORS: - " From here on, all colors are optional and must have default values (3rd parameter of the - " `get` command) that point to the above basic colors in case the target theme doesn't - " provide the extended colors. The default values should be reasonably sensible. - " The terminal color must be provided also. - - call s:create_color_variables('aqua', get(s:palette, 'color16', color14) , 'LightCyan') - call s:create_color_variables('green', get(s:palette, 'color17', color13) , 'LightMagenta') - call s:create_color_variables('wine', get(s:palette, 'color18', color11) , 'LightYellow') - - " LineNumber: when set number - call s:create_color_variables('linenumber_fg', get(s:palette, 'linenumber_fg', color08) , 'DarkGray') - call s:create_color_variables('linenumber_bg', get(s:palette, 'linenumber_bg', color00) , 'Black') - - " Vertical Split: when there are more than 1 window side by side, ex: - call s:create_color_variables('vertsplit_fg', get(s:palette, 'vertsplit_fg', color15) , 'White') - call s:create_color_variables('vertsplit_bg', get(s:palette, 'vertsplit_bg', color00) , 'Black') - - " Statusline: when set status=2 - call s:create_color_variables('statusline_active_fg', get(s:palette, 'statusline_active_fg', color00) , 'Black') - call s:create_color_variables('statusline_active_bg', get(s:palette, 'statusline_active_bg', color15) , 'White') - call s:create_color_variables('statusline_inactive_fg', get(s:palette, 'statusline_inactive_fg', color07) , 'LightGray') - call s:create_color_variables('statusline_inactive_bg', get(s:palette, 'statusline_inactive_bg', color08) , 'DarkGray') - - - " Cursor: in normal mode - call s:create_color_variables('cursor_fg', get(s:palette, 'cursor_fg', color00) , 'Black') - call s:create_color_variables('cursor_bg', get(s:palette, 'cursor_bg', color07) , 'LightGray') - - call s:create_color_variables('cursorline', get(s:palette, 'cursorline', color00) , 'Black') - - " CursorColumn: when set cursorcolumn - call s:create_color_variables('cursorcolumn', get(s:palette, 'cursorcolumn', color00) , 'Black') - - " CursorLine Number: when set cursorline number - call s:create_color_variables('cursorlinenr_fg', get(s:palette, 'cursorlinenr_fg', color13) , 'LightMagenta') - call s:create_color_variables('cursorlinenr_bg', get(s:palette, 'cursorlinenr_bg', color00) , 'Black') - - " Popup Menu: when for autocomplete - call s:create_color_variables('popupmenu_fg', get(s:palette, 'popupmenu_fg', color07) , 'LightGray') - call s:create_color_variables('popupmenu_bg', get(s:palette, 'popupmenu_bg', color08) , 'DarkGray') " TODO: double check this, might resolve an issue - - " Search: ex: when * on a word - call s:create_color_variables('search_fg', get(s:palette, 'search_fg', color00) , 'Black') - call s:create_color_variables('search_bg', get(s:palette, 'search_bg', color15) , 'Yellow') - - " IncSearch: ex: during a search - call s:create_color_variables('incsearch_fg', get(s:palette, 'incsearch_fg', color00) , 'Black') - call s:create_color_variables('incsearch_bg', get(s:palette, 'incsearch_bg', color15) , 'Yellow') - - " Todo: ex: TODO - call s:create_color_variables('todo_fg', get(s:palette, 'todo_fg', color05) , 'LightYellow') - call s:create_color_variables('todo_bg', get(s:palette, 'todo_bg', color00) , 'Black') - - " Error: ex: turn spell on and have invalid words - call s:create_color_variables('error_fg', get(s:palette, 'error_fg', color01) , 'DarkRed') - call s:create_color_variables('error_bg', get(s:palette, 'error_bg', color00) , 'Black') - - " Match Parenthesis: selecting an opening/closing pair and the other one will be highlighted - call s:create_color_variables('matchparen_fg', get(s:palette, 'matchparen_fg', color00) , 'LightMagenta') - call s:create_color_variables('matchparen_bg', get(s:palette, 'matchparen_bg', color05) , 'Black') - - " Visual: - call s:create_color_variables('visual_fg', get(s:palette, 'visual_fg', color08) , 'Black') - call s:create_color_variables('visual_bg', get(s:palette, 'visual_bg', color07) , 'White') - - " Folded: - call s:create_color_variables('folded_fg', get(s:palette, 'folded_fg', color00) , 'Black') - call s:create_color_variables('folded_bg', get(s:palette, 'folded_bg', color05) , 'DarkYellow') - - " WildMenu: Autocomplete command, ex: :color - call s:create_color_variables('wildmenu_fg', get(s:palette, 'wildmenu_fg', color00) , 'Black') - call s:create_color_variables('wildmenu_bg', get(s:palette, 'wildmenu_bg', color06) , 'LightGray') - - " Spelling: when spell on and there are spelling problems like this for example: papercolor. a vim color scheme - call s:create_color_variables('spellbad', get(s:palette, 'spellbad', color04) , 'DarkRed') - call s:create_color_variables('spellcap', get(s:palette, 'spellcap', color05) , 'DarkMagenta') - call s:create_color_variables('spellrare', get(s:palette, 'spellrare', color06) , 'DarkYellow') - call s:create_color_variables('spelllocal', get(s:palette, 'spelllocal', color01) , 'DarkBlue') - - " Diff: - call s:create_color_variables('diffadd_fg', get(s:palette, 'diffadd_fg', color00) , 'Black') - call s:create_color_variables('diffadd_bg', get(s:palette, 'diffadd_bg', color02) , 'DarkGreen') - - call s:create_color_variables('diffdelete_fg', get(s:palette, 'diffdelete_fg', color00) , 'Black') - call s:create_color_variables('diffdelete_bg', get(s:palette, 'diffdelete_bg', color04) , 'DarkRed') - - call s:create_color_variables('difftext_fg', get(s:palette, 'difftext_fg', color00) , 'Black') - call s:create_color_variables('difftext_bg', get(s:palette, 'difftext_bg', color06) , 'DarkYellow') - - call s:create_color_variables('diffchange_fg', get(s:palette, 'diffchange_fg', color00) , 'Black') - call s:create_color_variables('diffchange_bg', get(s:palette, 'diffchange_bg', color14) , 'LightYellow') - - " Tabline: when having tabs, ex: :tabnew - call s:create_color_variables('tabline_bg', get(s:palette, 'tabline_bg', color00) , 'Black') - call s:create_color_variables('tabline_active_fg', get(s:palette, 'tabline_active_fg', color07) , 'LightGray') - call s:create_color_variables('tabline_active_bg', get(s:palette, 'tabline_active_bg', color00) , 'Black') - call s:create_color_variables('tabline_inactive_fg', get(s:palette, 'tabline_inactive_fg', color07) , 'Black') - call s:create_color_variables('tabline_inactive_bg', get(s:palette, 'tabline_inactive_bg', color08) , 'DarkMagenta') - - " Plugin: BufTabLine https://github.com/ap/vim-buftabline - call s:create_color_variables('buftabline_bg', get(s:palette, 'buftabline_bg', color00) , 'Black') - call s:create_color_variables('buftabline_current_fg', get(s:palette, 'buftabline_current_fg', color07) , 'LightGray') - call s:create_color_variables('buftabline_current_bg', get(s:palette, 'buftabline_current_bg', color05) , 'DarkMagenta') - call s:create_color_variables('buftabline_active_fg', get(s:palette, 'buftabline_active_fg', color07) , 'LightGray') - call s:create_color_variables('buftabline_active_bg', get(s:palette, 'buftabline_active_bg', color12) , 'LightBlue') - call s:create_color_variables('buftabline_inactive_fg', get(s:palette, 'buftabline_inactive_fg', color07) , 'LightGray') - call s:create_color_variables('buftabline_inactive_bg', get(s:palette, 'buftabline_inactive_bg', color00) , 'Black') - - " Neovim terminal colors https://neovim.io/doc/user/nvim_terminal_emulator.html#nvim-terminal-emulator-configuration - " TODO: Fix this - let g:terminal_color_0 = color00[0] - let g:terminal_color_1 = color01[0] - let g:terminal_color_2 = color02[0] - let g:terminal_color_3 = color03[0] - let g:terminal_color_4 = color04[0] - let g:terminal_color_5 = color05[0] - let g:terminal_color_6 = color06[0] - let g:terminal_color_7 = color07[0] - let g:terminal_color_8 = color08[0] - let g:terminal_color_9 = color09[0] - let g:terminal_color_10 = color10[0] - let g:terminal_color_11 = color11[0] - let g:terminal_color_12 = color12[0] - let g:terminal_color_13 = color13[0] - let g:terminal_color_14 = color14[0] - let g:terminal_color_15 = color15[0] - - " Vim 8's :terminal buffer ANSI colors - if has('terminal') - let g:terminal_ansi_colors = [color00[0], color01[0], color02[0], color03[0], - \ color04[0], color05[0], color06[0], color07[0], color08[0], color09[0], - \ color10[0], color11[0], color12[0], color13[0], color14[0], color15[0]] - endif - -endfun -" }}} - -" Apply Syntax Highlightings: {{{ - -fun! s:apply_syntax_highlightings() - - if s:themeOpt_transparent_background - exec 'hi Normal' . s:fg_foreground - " Switching between dark & light variant through `set background` - " NOTE: Handle background switching right after `Normal` group because of - " God-know-why reason. Not doing this way had caused issue before - if s:is_dark " DARK VARIANT - set background=dark - else " LIGHT VARIANT - set background=light - endif - - exec 'hi NonText' . s:fg_nontext - exec 'hi LineNr' . s:fg_linenumber_fg - exec 'hi Conceal' . s:fg_linenumber_fg - exec 'hi VertSplit' . s:fg_vertsplit_fg . s:ft_none - exec 'hi FoldColumn' . s:fg_folded_fg . s:bg_transparent . s:ft_none - else - exec 'hi Normal' . s:fg_foreground . s:bg_background - " Switching between dark & light variant through `set background` - if s:is_dark " DARK VARIANT - set background=dark - exec 'hi EndOfBuffer' . s:fg_cursor_fg . s:ft_none - else " LIGHT VARIANT - set background=light - endif - - exec 'hi NonText' . s:fg_nontext . s:bg_background - exec 'hi LineNr' . s:fg_linenumber_fg . s:bg_linenumber_bg - exec 'hi Conceal' . s:fg_linenumber_fg . s:bg_linenumber_bg - exec 'hi VertSplit' . s:fg_vertsplit_bg . s:bg_vertsplit_fg - exec 'hi FoldColumn' . s:fg_folded_fg . s:bg_background . s:ft_none - endif - - exec 'hi Cursor' . s:fg_cursor_fg . s:bg_cursor_bg - exec 'hi SpecialKey' . s:fg_nontext - exec 'hi Search' . s:fg_search_fg . s:bg_search_bg - exec 'hi IncSearch' . s:fg_incsearch_fg . s:bg_incsearch_bg - exec 'hi StatusLine' . s:fg_statusline_active_bg . s:bg_statusline_active_fg - exec 'hi StatusLineNC' . s:fg_statusline_inactive_bg . s:bg_statusline_inactive_fg - exec 'hi StatusLineTerm' . s:fg_statusline_active_bg . s:bg_statusline_active_fg - exec 'hi StatusLineTermNC' . s:fg_statusline_inactive_bg . s:bg_statusline_inactive_fg - exec 'hi Visual' . s:fg_visual_fg . s:bg_visual_bg - exec 'hi Directory' . s:fg_blue - exec 'hi ModeMsg' . s:fg_olive - exec 'hi MoreMsg' . s:fg_olive - exec 'hi Question' . s:fg_olive - exec 'hi WarningMsg' . s:fg_pink - exec 'hi MatchParen' . s:fg_matchparen_fg . s:bg_matchparen_bg - exec 'hi Folded' . s:fg_folded_fg . s:bg_folded_bg - exec 'hi WildMenu' . s:fg_wildmenu_fg . s:bg_wildmenu_bg . s:ft_bold - - if version >= 700 - exec 'hi CursorLine' . s:bg_cursorline . s:ft_none - if s:mode == s:MODE_16_COLOR - exec 'hi CursorLineNr' . s:fg_cursorlinenr_fg . s:bg_cursorlinenr_bg - else - exec 'hi CursorLineNr' . s:fg_cursorlinenr_fg . s:bg_cursorlinenr_bg . s:ft_none - endif - exec 'hi CursorColumn' . s:bg_cursorcolumn . s:ft_none - exec 'hi PMenu' . s:fg_popupmenu_fg . s:bg_popupmenu_bg . s:ft_none - exec 'hi PMenuSel' . s:fg_popupmenu_fg . s:bg_popupmenu_bg . s:ft_reverse - if s:themeOpt_transparent_background - exec 'hi SignColumn' . s:fg_green . s:ft_none - else - exec 'hi SignColumn' . s:fg_green . s:bg_background . s:ft_none - endif - end - if version >= 703 - exec 'hi ColorColumn' . s:bg_cursorcolumn . s:ft_none - end - - exec 'hi TabLine' . s:fg_tabline_inactive_fg . s:bg_tabline_inactive_bg . s:ft_none - exec 'hi TabLineFill' . s:fg_tabline_bg . s:bg_tabline_bg . s:ft_none - exec 'hi TabLineSel' . s:fg_tabline_active_fg . s:bg_tabline_active_bg . s:ft_none - - exec 'hi BufTabLineCurrent' . s:fg_buftabline_current_fg . s:bg_buftabline_current_bg . s:ft_none - exec 'hi BufTabLineActive' . s:fg_buftabline_active_fg . s:bg_buftabline_active_bg . s:ft_none - exec 'hi BufTabLineHidden' . s:fg_buftabline_inactive_fg . s:bg_buftabline_inactive_bg . s:ft_none - exec 'hi BufTabLineFill' . s:bg_buftabline_bg . s:ft_none - - " Standard Group Highlighting: - exec 'hi Comment' . s:fg_comment . s:ft_italic - - exec 'hi Constant' . s:fg_orange - exec 'hi String' . s:fg_olive - exec 'hi Character' . s:fg_olive - exec 'hi Number' . s:fg_orange - exec 'hi Boolean' . s:fg_green . s:ft_bold - exec 'hi Float' . s:fg_orange - - exec 'hi Identifier' . s:fg_navy - exec 'hi Function' . s:fg_foreground - - exec 'hi Statement' . s:fg_pink . s:ft_none - exec 'hi Conditional' . s:fg_purple . s:ft_bold - exec 'hi Repeat' . s:fg_purple . s:ft_bold - exec 'hi Label' . s:fg_blue - exec 'hi Operator' . s:fg_aqua . s:ft_none - exec 'hi Keyword' . s:fg_blue - exec 'hi Exception' . s:fg_red - - exec 'hi PreProc' . s:fg_blue - exec 'hi Include' . s:fg_red - exec 'hi Define' . s:fg_blue - exec 'hi Macro' . s:fg_blue - exec 'hi PreCondit' . s:fg_aqua - - exec 'hi Type' . s:fg_pink . s:ft_bold - exec 'hi StorageClass' . s:fg_navy . s:ft_bold - exec 'hi Structure' . s:fg_blue . s:ft_bold - exec 'hi Typedef' . s:fg_pink . s:ft_bold - - exec 'hi Special' . s:fg_foreground - exec 'hi SpecialChar' . s:fg_foreground - exec 'hi Tag' . s:fg_green - exec 'hi Delimiter' . s:fg_aqua - exec 'hi SpecialComment' . s:fg_comment . s:ft_bold - exec 'hi Debug' . s:fg_orange - - exec 'hi Error' . s:fg_error_fg . s:bg_error_bg - exec 'hi Todo' . s:fg_todo_fg . s:bg_todo_bg . s:ft_bold - - exec 'hi Title' . s:fg_comment - exec 'hi Global' . s:fg_blue - - " Neovim (LSP) diagnostics - if has('nvim') - exec 'hi LspDiagnosticsDefaultError' . s:fg_error_fg . s:bg_error_bg - exec 'hi LspDiagnosticsDefaultWarning' . s:fg_todo_fg . s:bg_todo_bg . s:ft_bold - exec 'hi LspDiagnosticsDefaultInformation' . s:fg_todo_fg . s:bg_todo_bg . s:ft_bold - exec 'hi LspDiagnosticsDefaultHint' . s:fg_todo_fg . s:bg_todo_bg . s:ft_bold - - exec 'hi LspDiagnosticsUnderlineError cterm=undercurl gui=undercurl' . s:sp_error_fg - exec 'hi LspDiagnosticsUnderlineWarning cterm=undercurl gui=undercurl' . s:sp_todo_fg - exec 'hi LspDiagnosticsUnderlineInformation cterm=undercurl gui=undercurl' . s:sp_todo_fg - exec 'hi LspDiagnosticsUnderlineHint cterm=undercurl gui=undercurl' . s:sp_todo_fg - - hi! link DiagnosticError LspDiagnosticsDefaultError - hi! link DiagnosticWarn LspDiagnosticsDefaultWarning - hi! link DiagnosticInfo LspDiagnosticsDefaultInformation - hi! link DiagnosticHint LspDiagnosticsDefaultHint - - hi! link DiagnosticUnderlineError LspDiagnosticsUnderlineError - hi! link DiagnosticUnderlineWarn LspDiagnosticsUnderlineWarning - hi! link DiagnosticUnderlineInfo LspDiagnosticsUnderlineInformation - hi! link DiagnosticUnderlineHint LspDiagnosticsUnderlineHint - - endif - - " Extension {{{ - " VimL Highlighting - exec 'hi vimCommand' . s:fg_pink - exec 'hi vimVar' . s:fg_navy - exec 'hi vimFuncKey' . s:fg_pink - exec 'hi vimFunction' . s:fg_blue . s:ft_bold - exec 'hi vimNotFunc' . s:fg_pink - exec 'hi vimMap' . s:fg_red - exec 'hi vimAutoEvent' . s:fg_aqua . s:ft_bold - exec 'hi vimMapModKey' . s:fg_aqua - exec 'hi vimFuncName' . s:fg_purple - exec 'hi vimIsCommand' . s:fg_foreground - exec 'hi vimFuncVar' . s:fg_aqua - exec 'hi vimLet' . s:fg_red - exec 'hi vimContinue' . s:fg_aqua - exec 'hi vimMapRhsExtend' . s:fg_foreground - exec 'hi vimCommentTitle' . s:fg_comment . s:ft_italic_bold - exec 'hi vimBracket' . s:fg_aqua - exec 'hi vimParenSep' . s:fg_aqua - exec 'hi vimNotation' . s:fg_aqua - exec 'hi vimOper' . s:fg_foreground - exec 'hi vimOperParen' . s:fg_foreground - exec 'hi vimSynType' . s:fg_purple - exec 'hi vimSynReg' . s:fg_pink . s:ft_none - exec 'hi vimSynRegion' . s:fg_foreground - exec 'hi vimSynMtchGrp' . s:fg_pink - exec 'hi vimSynNextgroup' . s:fg_pink - exec 'hi vimSynKeyRegion' . s:fg_green - exec 'hi vimSynRegOpt' . s:fg_blue - exec 'hi vimSynMtchOpt' . s:fg_blue - exec 'hi vimSynContains' . s:fg_pink - exec 'hi vimGroupName' . s:fg_foreground - exec 'hi vimGroupList' . s:fg_foreground - exec 'hi vimHiGroup' . s:fg_foreground - exec 'hi vimGroup' . s:fg_navy . s:ft_bold - exec 'hi vimOnlyOption' . s:fg_blue - - " Makefile Highlighting - exec 'hi makeIdent' . s:fg_blue - exec 'hi makeSpecTarget' . s:fg_olive - exec 'hi makeTarget' . s:fg_red - exec 'hi makeStatement' . s:fg_aqua . s:ft_bold - exec 'hi makeCommands' . s:fg_foreground - exec 'hi makeSpecial' . s:fg_orange . s:ft_bold - - " CMake Highlighting (Builtin) - exec 'hi cmakeStatement' . s:fg_blue - exec 'hi cmakeArguments' . s:fg_foreground - exec 'hi cmakeVariableValue' . s:fg_pink - - " CMake Highlighting (Plugin: https://github.com/pboettch/vim-cmake-syntax) - exec 'hi cmakeCommand' . s:fg_blue - exec 'hi cmakeCommandConditional' . s:fg_purple . s:ft_bold - exec 'hi cmakeKWset' . s:fg_orange - exec 'hi cmakeKWvariable_watch' . s:fg_orange - exec 'hi cmakeKWif' . s:fg_orange - exec 'hi cmakeArguments' . s:fg_foreground - exec 'hi cmakeKWproject' . s:fg_pink - exec 'hi cmakeGeneratorExpressions' . s:fg_orange - exec 'hi cmakeGeneratorExpression' . s:fg_aqua - exec 'hi cmakeVariable' . s:fg_pink - exec 'hi cmakeProperty' . s:fg_aqua - exec 'hi cmakeKWforeach' . s:fg_aqua - exec 'hi cmakeKWunset' . s:fg_aqua - exec 'hi cmakeKWmacro' . s:fg_aqua - exec 'hi cmakeKWget_property' . s:fg_aqua - exec 'hi cmakeKWset_tests_properties' . s:fg_aqua - exec 'hi cmakeKWmessage' . s:fg_aqua - exec 'hi cmakeKWinstall_targets' . s:fg_orange - exec 'hi cmakeKWsource_group' . s:fg_orange - exec 'hi cmakeKWfind_package' . s:fg_aqua - exec 'hi cmakeKWstring' . s:fg_olive - exec 'hi cmakeKWinstall' . s:fg_aqua - exec 'hi cmakeKWtarget_sources' . s:fg_orange - - " C Highlighting - exec 'hi cType' . s:fg_pink . s:ft_bold - exec 'hi cFormat' . s:fg_olive - exec 'hi cStorageClass' . s:fg_navy . s:ft_bold - - exec 'hi cBoolean' . s:fg_green . s:ft_bold - exec 'hi cCharacter' . s:fg_olive - exec 'hi cConstant' . s:fg_green . s:ft_bold - exec 'hi cConditional' . s:fg_purple . s:ft_bold - exec 'hi cSpecial' . s:fg_olive . s:ft_bold - exec 'hi cDefine' . s:fg_blue - exec 'hi cNumber' . s:fg_orange - exec 'hi cPreCondit' . s:fg_aqua - exec 'hi cRepeat' . s:fg_purple . s:ft_bold - exec 'hi cLabel' . s:fg_aqua - " exec 'hi cAnsiFunction' . s:fg_aqua . s:ft_bold - " exec 'hi cAnsiName' . s:fg_pink - exec 'hi cDelimiter' . s:fg_blue - " exec 'hi cBraces' . s:fg_foreground - " exec 'hi cIdentifier' . s:fg_blue . s:bg_pink - " exec 'hi cSemiColon' . s:bg_blue - exec 'hi cOperator' . s:fg_aqua - " exec 'hi cStatement' . s:fg_pink - " exec 'hi cTodo' . s:fg_comment . s:ft_bold - " exec 'hi cStructure' . s:fg_blue . s:ft_bold - exec 'hi cCustomParen' . s:fg_foreground - " exec 'hi cCustomFunc' . s:fg_foreground - " exec 'hi cUserFunction' . s:fg_blue . s:ft_bold - exec 'hi cOctalZero' . s:fg_purple . s:ft_bold - if s:langOpt_c__highlight_builtins == 1 - exec 'hi cFunction' . s:fg_blue - else - exec 'hi cFunction' . s:fg_foreground - endif - - " CPP highlighting - exec 'hi cppBoolean' . s:fg_green . s:ft_bold - exec 'hi cppSTLnamespace' . s:fg_purple - exec 'hi cppSTLexception' . s:fg_pink - exec 'hi cppSTLfunctional' . s:fg_foreground . s:ft_bold - exec 'hi cppSTLiterator' . s:fg_foreground . s:ft_bold - exec 'hi cppExceptions' . s:fg_red - exec 'hi cppStatement' . s:fg_blue - exec 'hi cppStorageClass' . s:fg_navy . s:ft_bold - exec 'hi cppAccess' . s:fg_orange . s:ft_bold - if s:langOpt_cpp__highlight_standard_library == 1 - exec 'hi cppSTLconstant' . s:fg_green . s:ft_bold - exec 'hi cppSTLtype' . s:fg_pink . s:ft_bold - exec 'hi cppSTLfunction' . s:fg_blue - exec 'hi cppSTLios' . s:fg_olive . s:ft_bold - else - exec 'hi cppSTLconstant' . s:fg_foreground - exec 'hi cppSTLtype' . s:fg_foreground - exec 'hi cppSTLfunction' . s:fg_foreground - exec 'hi cppSTLios' . s:fg_foreground - endif - " exec 'hi cppSTL' . s:fg_blue - - " Rust highlighting - exec 'hi rustKeyword' . s:fg_pink - exec 'hi rustModPath' . s:fg_blue - exec 'hi rustModPathSep' . s:fg_blue - exec 'hi rustLifetime' . s:fg_purple - exec 'hi rustStructure' . s:fg_aqua . s:ft_bold - exec 'hi rustAttribute' . s:fg_aqua . s:ft_bold - exec 'hi rustPanic' . s:fg_olive . s:ft_bold - exec 'hi rustTrait' . s:fg_blue . s:ft_bold - exec 'hi rustEnum' . s:fg_green . s:ft_bold - exec 'hi rustEnumVariant' . s:fg_green - exec 'hi rustSelf' . s:fg_orange - exec 'hi rustSigil' . s:fg_aqua . s:ft_bold - exec 'hi rustOperator' . s:fg_aqua . s:ft_bold - exec 'hi rustMacro' . s:fg_olive . s:ft_bold - exec 'hi rustMacroVariable' . s:fg_olive - exec 'hi rustAssert' . s:fg_olive . s:ft_bold - exec 'hi rustConditional' . s:fg_purple . s:ft_bold - - " Lex highlighting - exec 'hi lexCFunctions' . s:fg_foreground - exec 'hi lexAbbrv' . s:fg_purple - exec 'hi lexAbbrvRegExp' . s:fg_aqua - exec 'hi lexAbbrvComment' . s:fg_comment - exec 'hi lexBrace' . s:fg_navy - exec 'hi lexPat' . s:fg_aqua - exec 'hi lexPatComment' . s:fg_comment - exec 'hi lexPatTag' . s:fg_orange - " exec 'hi lexPatBlock' . s:fg_foreground . s:ft_bold - exec 'hi lexSlashQuote' . s:fg_foreground - exec 'hi lexSep' . s:fg_foreground - exec 'hi lexStartState' . s:fg_orange - exec 'hi lexPatTagZone' . s:fg_olive . s:ft_bold - exec 'hi lexMorePat' . s:fg_olive . s:ft_bold - exec 'hi lexOptions' . s:fg_olive . s:ft_bold - exec 'hi lexPatString' . s:fg_olive - - " Yacc highlighting - exec 'hi yaccNonterminal' . s:fg_navy - exec 'hi yaccDelim' . s:fg_orange - exec 'hi yaccInitKey' . s:fg_aqua - exec 'hi yaccInit' . s:fg_navy - exec 'hi yaccKey' . s:fg_purple - exec 'hi yaccVar' . s:fg_aqua - - " NASM highlighting - exec 'hi nasmStdInstruction' . s:fg_navy - exec 'hi nasmGen08Register' . s:fg_aqua - exec 'hi nasmGen16Register' . s:fg_aqua - exec 'hi nasmGen32Register' . s:fg_aqua - exec 'hi nasmGen64Register' . s:fg_aqua - exec 'hi nasmHexNumber' . s:fg_purple - exec 'hi nasmStorage' . s:fg_aqua . s:ft_bold - exec 'hi nasmLabel' . s:fg_pink - exec 'hi nasmDirective' . s:fg_blue . s:ft_bold - exec 'hi nasmLocalLabel' . s:fg_orange - - " GAS highlighting - exec 'hi gasSymbol' . s:fg_pink - exec 'hi gasDirective' . s:fg_blue . s:ft_bold - exec 'hi gasOpcode_386_Base' . s:fg_navy - exec 'hi gasDecimalNumber' . s:fg_purple - exec 'hi gasSymbolRef' . s:fg_pink - exec 'hi gasRegisterX86' . s:fg_blue - exec 'hi gasOpcode_P6_Base' . s:fg_navy - exec 'hi gasDirectiveStore' . s:fg_foreground . s:ft_bold - - " MIPS highlighting - exec 'hi mipsInstruction' . s:fg_pink - exec 'hi mipsRegister' . s:fg_navy - exec 'hi mipsLabel' . s:fg_aqua . s:ft_bold - exec 'hi mipsDirective' . s:fg_purple . s:ft_bold - - " Shell/Bash highlighting - exec 'hi bashStatement' . s:fg_foreground . s:ft_bold - exec 'hi shDerefVar' . s:fg_aqua . s:ft_bold - exec 'hi shDerefSimple' . s:fg_aqua - exec 'hi shFunction' . s:fg_orange . s:ft_bold - exec 'hi shStatement' . s:fg_foreground - exec 'hi shLoop' . s:fg_purple . s:ft_bold - exec 'hi shQuote' . s:fg_olive - exec 'hi shCaseEsac' . s:fg_aqua . s:ft_bold - exec 'hi shSnglCase' . s:fg_purple . s:ft_none - exec 'hi shFunctionOne' . s:fg_navy - exec 'hi shCase' . s:fg_navy - exec 'hi shSetList' . s:fg_navy - " @see Dockerfile Highlighting section for more sh* - - " PowerShell Highlighting - exec 'hi ps1Type' . s:fg_green . s:ft_bold - exec 'hi ps1Variable' . s:fg_navy - exec 'hi ps1Boolean' . s:fg_navy . s:ft_bold - exec 'hi ps1FunctionInvocation' . s:fg_pink - exec 'hi ps1FunctionDeclaration' . s:fg_pink - exec 'hi ps1Keyword' . s:fg_blue . s:ft_bold - exec 'hi ps1Exception' . s:fg_red - exec 'hi ps1Operator' . s:fg_aqua . s:ft_bold - exec 'hi ps1CommentDoc' . s:fg_purple - exec 'hi ps1CDocParam' . s:fg_orange - - " HTML Highlighting - exec 'hi htmlTitle' . s:fg_green . s:ft_bold - exec 'hi htmlH1' . s:fg_green . s:ft_bold - exec 'hi htmlH2' . s:fg_aqua . s:ft_bold - exec 'hi htmlH3' . s:fg_purple . s:ft_bold - exec 'hi htmlH4' . s:fg_orange . s:ft_bold - exec 'hi htmlTag' . s:fg_comment - exec 'hi htmlTagName' . s:fg_wine - exec 'hi htmlArg' . s:fg_pink - exec 'hi htmlEndTag' . s:fg_comment - exec 'hi htmlString' . s:fg_blue - exec 'hi htmlScriptTag' . s:fg_comment - exec 'hi htmlBold' . s:fg_foreground . s:ft_bold - exec 'hi htmlItalic' . s:fg_comment . s:ft_italic - exec 'hi htmlBoldItalic' . s:fg_navy . s:ft_italic_bold - " exec 'hi htmlLink' . s:fg_blue . s:ft_bold - exec 'hi htmlTagN' . s:fg_wine . s:ft_bold - exec 'hi htmlSpecialTagName' . s:fg_wine - exec 'hi htmlComment' . s:fg_comment . s:ft_italic - exec 'hi htmlCommentPart' . s:fg_comment . s:ft_italic - - " CSS Highlighting - exec 'hi cssIdentifier' . s:fg_pink - exec 'hi cssPositioningProp' . s:fg_foreground - exec 'hi cssNoise' . s:fg_foreground - exec 'hi cssBoxProp' . s:fg_foreground - exec 'hi cssTableAttr' . s:fg_purple - exec 'hi cssPositioningAttr' . s:fg_navy - exec 'hi cssValueLength' . s:fg_orange - exec 'hi cssFunctionName' . s:fg_blue - exec 'hi cssUnitDecorators' . s:fg_aqua - exec 'hi cssColor' . s:fg_blue . s:ft_bold - exec 'hi cssBraces' . s:fg_pink - exec 'hi cssBackgroundProp' . s:fg_foreground - exec 'hi cssTextProp' . s:fg_foreground - exec 'hi cssDimensionProp' . s:fg_foreground - exec 'hi cssClassName' . s:fg_pink - - " Markdown Highlighting - exec 'hi markdownHeadingRule' . s:fg_pink . s:ft_bold - exec 'hi markdownH1' . s:fg_pink . s:ft_bold - exec 'hi markdownH2' . s:fg_orange . s:ft_bold - exec 'hi markdownBlockquote' . s:fg_pink - exec 'hi markdownCodeBlock' . s:fg_olive - exec 'hi markdownCode' . s:fg_olive - exec 'hi markdownLink' . s:fg_blue . s:ft_bold - exec 'hi markdownUrl' . s:fg_blue - exec 'hi markdownLinkText' . s:fg_pink - exec 'hi markdownLinkTextDelimiter' . s:fg_purple - exec 'hi markdownLinkDelimiter' . s:fg_purple - exec 'hi markdownCodeDelimiter' . s:fg_blue - - exec 'hi mkdCode' . s:fg_olive - exec 'hi mkdLink' . s:fg_blue . s:ft_bold - exec 'hi mkdURL' . s:fg_comment - exec 'hi mkdString' . s:fg_foreground - exec 'hi mkdBlockQuote' . s:fg_pink - exec 'hi mkdLinkTitle' . s:fg_pink - exec 'hi mkdDelimiter' . s:fg_aqua - exec 'hi mkdRule' . s:fg_pink - - " reStructuredText Highlighting - exec 'hi rstSections' . s:fg_pink . s:ft_bold - exec 'hi rstDelimiter' . s:fg_pink . s:ft_bold - exec 'hi rstExplicitMarkup' . s:fg_pink . s:ft_bold - exec 'hi rstDirective' . s:fg_blue - exec 'hi rstHyperlinkTarget' . s:fg_green - exec 'hi rstExDirective' . s:fg_foreground - exec 'hi rstInlineLiteral' . s:fg_olive - exec 'hi rstInterpretedTextOrHyperlinkReference' . s:fg_blue - - " Python Highlighting - exec 'hi pythonImport' . s:fg_pink . s:ft_bold - exec 'hi pythonExceptions' . s:fg_red - exec 'hi pythonException' . s:fg_purple . s:ft_bold - exec 'hi pythonInclude' . s:fg_red - exec 'hi pythonStatement' . s:fg_pink - exec 'hi pythonConditional' . s:fg_purple . s:ft_bold - exec 'hi pythonRepeat' . s:fg_purple . s:ft_bold - exec 'hi pythonFunction' . s:fg_aqua . s:ft_bold - exec 'hi pythonPreCondit' . s:fg_purple - exec 'hi pythonExClass' . s:fg_orange - exec 'hi pythonOperator' . s:fg_purple . s:ft_bold - exec 'hi pythonBuiltin' . s:fg_foreground - exec 'hi pythonDecorator' . s:fg_orange - - exec 'hi pythonString' . s:fg_olive - exec 'hi pythonEscape' . s:fg_olive . s:ft_bold - exec 'hi pythonStrFormatting' . s:fg_olive . s:ft_bold - - exec 'hi pythonBoolean' . s:fg_green . s:ft_bold - exec 'hi pythonBytesEscape' . s:fg_olive . s:ft_bold - exec 'hi pythonDottedName' . s:fg_purple - exec 'hi pythonStrFormat' . s:fg_foreground - - if s:langOpt_python__highlight_builtins == 1 - exec 'hi pythonBuiltinFunc' . s:fg_blue - exec 'hi pythonBuiltinObj' . s:fg_red - else - exec 'hi pythonBuiltinFunc' . s:fg_foreground - exec 'hi pythonBuiltinObj' . s:fg_foreground - endif - - " Java Highlighting - exec 'hi javaExternal' . s:fg_pink - exec 'hi javaAnnotation' . s:fg_orange - exec 'hi javaTypedef' . s:fg_aqua - exec 'hi javaClassDecl' . s:fg_aqua . s:ft_bold - exec 'hi javaScopeDecl' . s:fg_blue . s:ft_bold - exec 'hi javaStorageClass' . s:fg_navy . s:ft_bold - exec 'hi javaBoolean' . s:fg_green . s:ft_bold - exec 'hi javaConstant' . s:fg_blue - exec 'hi javaCommentTitle' . s:fg_wine - exec 'hi javaDocTags' . s:fg_aqua - exec 'hi javaDocComment' . s:fg_comment - exec 'hi javaDocParam' . s:fg_foreground - exec 'hi javaStatement' . s:fg_pink - - " JavaScript Highlighting - exec 'hi javaScriptBraces' . s:fg_blue - exec 'hi javaScriptParens' . s:fg_blue - exec 'hi javaScriptIdentifier' . s:fg_pink - exec 'hi javaScriptFunction' . s:fg_blue . s:ft_bold - exec 'hi javaScriptConditional' . s:fg_purple . s:ft_bold - exec 'hi javaScriptRepeat' . s:fg_purple . s:ft_bold - exec 'hi javaScriptBoolean' . s:fg_green . s:ft_bold - exec 'hi javaScriptNumber' . s:fg_orange - exec 'hi javaScriptMember' . s:fg_navy - exec 'hi javaScriptReserved' . s:fg_navy - exec 'hi javascriptNull' . s:fg_comment . s:ft_bold - exec 'hi javascriptGlobal' . s:fg_foreground - exec 'hi javascriptStatement' . s:fg_pink - exec 'hi javaScriptMessage' . s:fg_foreground - exec 'hi javaScriptMember' . s:fg_foreground - - " TypeScript Highlighting - exec 'hi typescriptDecorators' . s:fg_orange - exec 'hi typescriptLabel' . s:fg_purple . s:ft_bold - - " @target https://github.com/pangloss/vim-javascript - exec 'hi jsImport' . s:fg_pink . s:ft_bold - exec 'hi jsExport' . s:fg_pink . s:ft_bold - exec 'hi jsModuleAs' . s:fg_pink . s:ft_bold - exec 'hi jsFrom' . s:fg_pink . s:ft_bold - exec 'hi jsExportDefault' . s:fg_pink . s:ft_bold - exec 'hi jsFuncParens' . s:fg_blue - exec 'hi jsFuncBraces' . s:fg_blue - exec 'hi jsParens' . s:fg_blue - exec 'hi jsBraces' . s:fg_blue - exec 'hi jsNoise' . s:fg_blue - - " Jsx Highlighting - " @target https://github.com/MaxMEllon/vim-jsx-pretty - exec 'hi jsxTagName' . s:fg_wine - exec 'hi jsxComponentName' . s:fg_wine - exec 'hi jsxAttrib' . s:fg_pink - exec 'hi jsxEqual' . s:fg_comment - exec 'hi jsxString' . s:fg_blue - exec 'hi jsxCloseTag' . s:fg_comment - exec 'hi jsxCloseString' . s:fg_comment - exec 'hi jsxDot' . s:fg_wine - exec 'hi jsxNamespace' . s:fg_wine - exec 'hi jsxPunct' . s:fg_comment - - " Json Highlighting - " @target https://github.com/elzr/vim-json - exec 'hi jsonKeyword' . s:fg_blue - exec 'hi jsonString' . s:fg_olive - exec 'hi jsonQuote' . s:fg_comment - exec 'hi jsonNoise' . s:fg_foreground - exec 'hi jsonKeywordMatch' . s:fg_foreground - exec 'hi jsonBraces' . s:fg_foreground - exec 'hi jsonNumber' . s:fg_orange - exec 'hi jsonNull' . s:fg_purple . s:ft_bold - exec 'hi jsonBoolean' . s:fg_green . s:ft_bold - exec 'hi jsonCommentError' . s:fg_pink . s:bg_background - - " Go Highlighting - exec 'hi goDirective' . s:fg_red - exec 'hi goDeclaration' . s:fg_blue . s:ft_bold - exec 'hi goStatement' . s:fg_pink - exec 'hi goConditional' . s:fg_purple . s:ft_bold - exec 'hi goConstants' . s:fg_orange - exec 'hi goFunction' . s:fg_orange - " exec 'hi goTodo' . s:fg_comment . s:ft_bold - exec 'hi goDeclType' . s:fg_blue - exec 'hi goBuiltins' . s:fg_purple - - " Systemtap Highlighting - " exec 'hi stapBlock' . s:fg_comment . s:ft_none - exec 'hi stapComment' . s:fg_comment . s:ft_none - exec 'hi stapProbe' . s:fg_aqua . s:ft_bold - exec 'hi stapStat' . s:fg_navy . s:ft_bold - exec 'hi stapFunc' . s:fg_foreground - exec 'hi stapString' . s:fg_olive - exec 'hi stapTarget' . s:fg_navy - exec 'hi stapStatement' . s:fg_pink - exec 'hi stapType' . s:fg_pink . s:ft_bold - exec 'hi stapSharpBang' . s:fg_comment - exec 'hi stapDeclaration' . s:fg_pink - exec 'hi stapCMacro' . s:fg_blue - - " DTrace Highlighting - exec 'hi dtraceProbe' . s:fg_blue - exec 'hi dtracePredicate' . s:fg_purple . s:ft_bold - exec 'hi dtraceComment' . s:fg_comment - exec 'hi dtraceFunction' . s:fg_foreground - exec 'hi dtraceAggregatingFunction' . s:fg_blue . s:ft_bold - exec 'hi dtraceStatement' . s:fg_navy . s:ft_bold - exec 'hi dtraceIdentifier' . s:fg_pink - exec 'hi dtraceOption' . s:fg_pink - exec 'hi dtraceConstant' . s:fg_orange - exec 'hi dtraceType' . s:fg_pink . s:ft_bold - - " PlantUML Highlighting - exec 'hi plantumlPreProc' . s:fg_orange . s:ft_bold - exec 'hi plantumlDirectedOrVerticalArrowRL' . s:fg_pink - exec 'hi plantumlDirectedOrVerticalArrowLR' . s:fg_pink - exec 'hi plantumlString' . s:fg_olive - exec 'hi plantumlActivityThing' . s:fg_purple - exec 'hi plantumlText' . s:fg_navy - exec 'hi plantumlClassPublic' . s:fg_olive . s:ft_bold - exec 'hi plantumlClassPrivate' . s:fg_red - exec 'hi plantumlColonLine' . s:fg_orange - exec 'hi plantumlClass' . s:fg_navy - exec 'hi plantumlHorizontalArrow' . s:fg_pink - exec 'hi plantumlTypeKeyword' . s:fg_blue . s:ft_bold - exec 'hi plantumlKeyword' . s:fg_pink . s:ft_bold - - exec 'hi plantumlType' . s:fg_blue . s:ft_bold - exec 'hi plantumlBlock' . s:fg_pink . s:ft_bold - exec 'hi plantumlPreposition' . s:fg_orange - exec 'hi plantumlLayout' . s:fg_blue . s:ft_bold - exec 'hi plantumlNote' . s:fg_orange - exec 'hi plantumlLifecycle' . s:fg_aqua - exec 'hi plantumlParticipant' . s:fg_foreground . s:ft_bold - - - " Haskell Highlighting - if s:langOpt_haskell__no_bold_types == 1 - exec 'hi haskellType' . s:fg_aqua - else - exec 'hi haskellType' . s:fg_aqua . s:ft_bold - endif - exec 'hi haskellIdentifier' . s:fg_orange . s:ft_bold - exec 'hi haskellOperators' . s:fg_pink - exec 'hi haskellWhere' . s:fg_foreground . s:ft_bold - exec 'hi haskellDelimiter' . s:fg_aqua - exec 'hi haskellImportKeywords' . s:fg_pink - exec 'hi haskellStatement' . s:fg_purple . s:ft_bold - - - " SQL/MySQL Highlighting - exec 'hi sqlStatement' . s:fg_pink . s:ft_bold - exec 'hi sqlType' . s:fg_blue . s:ft_bold - exec 'hi sqlKeyword' . s:fg_pink - exec 'hi sqlOperator' . s:fg_aqua - exec 'hi sqlSpecial' . s:fg_green . s:ft_bold - - exec 'hi mysqlVariable' . s:fg_olive . s:ft_bold - exec 'hi mysqlType' . s:fg_blue . s:ft_bold - exec 'hi mysqlKeyword' . s:fg_pink - exec 'hi mysqlOperator' . s:fg_aqua - exec 'hi mysqlSpecial' . s:fg_green . s:ft_bold - - - " Octave/MATLAB Highlighting - exec 'hi octaveVariable' . s:fg_foreground - exec 'hi octaveDelimiter' . s:fg_pink - exec 'hi octaveQueryVar' . s:fg_foreground - exec 'hi octaveSemicolon' . s:fg_purple - exec 'hi octaveFunction' . s:fg_navy - exec 'hi octaveSetVar' . s:fg_blue - exec 'hi octaveUserVar' . s:fg_foreground - exec 'hi octaveArithmeticOperator' . s:fg_aqua - exec 'hi octaveBeginKeyword' . s:fg_purple . s:ft_bold - exec 'hi octaveElseKeyword' . s:fg_purple . s:ft_bold - exec 'hi octaveEndKeyword' . s:fg_purple . s:ft_bold - exec 'hi octaveStatement' . s:fg_pink - - " Ruby Highlighting - exec 'hi rubyModule' . s:fg_navy . s:ft_bold - exec 'hi rubyClass' . s:fg_pink . s:ft_bold - exec 'hi rubyPseudoVariable' . s:fg_comment . s:ft_bold - exec 'hi rubyKeyword' . s:fg_pink - exec 'hi rubyInstanceVariable' . s:fg_purple - exec 'hi rubyFunction' . s:fg_foreground . s:ft_bold - exec 'hi rubyDefine' . s:fg_pink - exec 'hi rubySymbol' . s:fg_aqua - exec 'hi rubyConstant' . s:fg_blue - exec 'hi rubyAccess' . s:fg_navy - exec 'hi rubyAttribute' . s:fg_green - exec 'hi rubyInclude' . s:fg_red - exec 'hi rubyLocalVariableOrMethod' . s:fg_orange - exec 'hi rubyCurlyBlock' . s:fg_foreground - exec 'hi rubyCurlyBlockDelimiter' . s:fg_aqua - exec 'hi rubyArrayDelimiter' . s:fg_aqua - exec 'hi rubyStringDelimiter' . s:fg_olive - exec 'hi rubyInterpolationDelimiter' . s:fg_orange - exec 'hi rubyConditional' . s:fg_purple . s:ft_bold - exec 'hi rubyRepeat' . s:fg_purple . s:ft_bold - exec 'hi rubyControl' . s:fg_purple . s:ft_bold - exec 'hi rubyException' . s:fg_purple . s:ft_bold - exec 'hi rubyExceptional' . s:fg_purple . s:ft_bold - exec 'hi rubyBoolean' . s:fg_green . s:ft_bold - - " Fortran Highlighting - exec 'hi fortranUnitHeader' . s:fg_blue . s:ft_bold - exec 'hi fortranIntrinsic' . s:fg_blue . s:bg_background . s:ft_none - exec 'hi fortranType' . s:fg_pink . s:ft_bold - exec 'hi fortranTypeOb' . s:fg_pink . s:ft_bold - exec 'hi fortranStructure' . s:fg_aqua - exec 'hi fortranStorageClass' . s:fg_navy . s:ft_bold - exec 'hi fortranStorageClassR' . s:fg_navy . s:ft_bold - exec 'hi fortranKeyword' . s:fg_pink - exec 'hi fortranReadWrite' . s:fg_aqua . s:ft_bold - exec 'hi fortranIO' . s:fg_navy - exec 'hi fortranOperator' . s:fg_aqua . s:ft_bold - exec 'hi fortranCall' . s:fg_aqua . s:ft_bold - exec 'hi fortranContinueMark' . s:fg_green - - " ALGOL Highlighting (Plugin: https://github.com/sterpe/vim-algol68) - exec 'hi algol68Statement' . s:fg_blue . s:ft_bold - exec 'hi algol68Operator' . s:fg_aqua . s:ft_bold - exec 'hi algol68PreProc' . s:fg_green - exec 'hi algol68Function' . s:fg_blue - - " R Highlighting - exec 'hi rType' . s:fg_blue - exec 'hi rArrow' . s:fg_pink - exec 'hi rDollar' . s:fg_blue - - " XXD Highlighting - exec 'hi xxdAddress' . s:fg_navy - exec 'hi xxdSep' . s:fg_pink - exec 'hi xxdAscii' . s:fg_pink - exec 'hi xxdDot' . s:fg_aqua - - " PHP Highlighting - exec 'hi phpIdentifier' . s:fg_foreground - exec 'hi phpVarSelector' . s:fg_pink - exec 'hi phpKeyword' . s:fg_blue - exec 'hi phpRepeat' . s:fg_purple . s:ft_bold - exec 'hi phpConditional' . s:fg_purple . s:ft_bold - exec 'hi phpStatement' . s:fg_pink - exec 'hi phpAssignByRef' . s:fg_aqua . s:ft_bold - exec 'hi phpSpecialFunction' . s:fg_blue - exec 'hi phpFunctions' . s:fg_blue - exec 'hi phpComparison' . s:fg_aqua - exec 'hi phpBackslashSequences' . s:fg_olive . s:ft_bold - exec 'hi phpMemberSelector' . s:fg_blue - exec 'hi phpStorageClass' . s:fg_purple . s:ft_bold - exec 'hi phpDefine' . s:fg_navy - exec 'hi phpIntVar' . s:fg_navy . s:ft_bold - - " Perl Highlighting - exec 'hi perlFiledescRead' . s:fg_green - exec 'hi perlMatchStartEnd' . s:fg_pink - exec 'hi perlStatementFlow' . s:fg_pink - exec 'hi perlStatementStorage' . s:fg_pink - exec 'hi perlFunction' . s:fg_pink . s:ft_bold - exec 'hi perlMethod' . s:fg_foreground - exec 'hi perlStatementFiledesc' . s:fg_orange - exec 'hi perlVarPlain' . s:fg_navy - exec 'hi perlSharpBang' . s:fg_comment - exec 'hi perlStatementInclude' . s:fg_aqua . s:ft_bold - exec 'hi perlStatementScalar' . s:fg_purple - exec 'hi perlSubName' . s:fg_aqua . s:ft_bold - exec 'hi perlSpecialString' . s:fg_olive . s:ft_bold - - " Pascal Highlighting - exec 'hi pascalType' . s:fg_pink . s:ft_bold - exec 'hi pascalStatement' . s:fg_blue . s:ft_bold - exec 'hi pascalPredefined' . s:fg_pink - exec 'hi pascalFunction' . s:fg_foreground - exec 'hi pascalStruct' . s:fg_navy . s:ft_bold - exec 'hi pascalOperator' . s:fg_aqua . s:ft_bold - exec 'hi pascalPreProc' . s:fg_green - exec 'hi pascalAcces' . s:fg_navy . s:ft_bold - - " Lua Highlighting - exec 'hi luaFunc' . s:fg_foreground - exec 'hi luaIn' . s:fg_blue . s:ft_bold - exec 'hi luaFunction' . s:fg_pink - exec 'hi luaStatement' . s:fg_blue - exec 'hi luaRepeat' . s:fg_blue . s:ft_bold - exec 'hi luaCondStart' . s:fg_purple . s:ft_bold - exec 'hi luaTable' . s:fg_aqua . s:ft_bold - exec 'hi luaConstant' . s:fg_green . s:ft_bold - exec 'hi luaElse' . s:fg_purple . s:ft_bold - exec 'hi luaCondElseif' . s:fg_purple . s:ft_bold - exec 'hi luaCond' . s:fg_purple . s:ft_bold - exec 'hi luaCondEnd' . s:fg_purple - - " Clojure highlighting: - exec 'hi clojureConstant' . s:fg_blue - exec 'hi clojureBoolean' . s:fg_orange - exec 'hi clojureCharacter' . s:fg_olive - exec 'hi clojureKeyword' . s:fg_pink - exec 'hi clojureNumber' . s:fg_orange - exec 'hi clojureString' . s:fg_olive - exec 'hi clojureRegexp' . s:fg_purple - exec 'hi clojureRegexpEscape' . s:fg_pink - exec 'hi clojureParen' . s:fg_aqua - exec 'hi clojureVariable' . s:fg_olive - exec 'hi clojureCond' . s:fg_blue - exec 'hi clojureDefine' . s:fg_blue . s:ft_bold - exec 'hi clojureException' . s:fg_red - exec 'hi clojureFunc' . s:fg_navy - exec 'hi clojureMacro' . s:fg_blue - exec 'hi clojureRepeat' . s:fg_blue - exec 'hi clojureSpecial' . s:fg_blue . s:ft_bold - exec 'hi clojureQuote' . s:fg_blue - exec 'hi clojureUnquote' . s:fg_blue - exec 'hi clojureMeta' . s:fg_blue - exec 'hi clojureDeref' . s:fg_blue - exec 'hi clojureAnonArg' . s:fg_blue - exec 'hi clojureRepeat' . s:fg_blue - exec 'hi clojureDispatch' . s:fg_aqua - - " Dockerfile Highlighting - " @target https://github.com/docker/docker/tree/master/contrib/syntax/vim - exec 'hi dockerfileKeyword' . s:fg_blue - exec 'hi shDerefVar' . s:fg_purple . s:ft_bold - exec 'hi shOperator' . s:fg_aqua - exec 'hi shOption' . s:fg_navy - exec 'hi shLine' . s:fg_foreground - exec 'hi shWrapLineOperator' . s:fg_pink - - " NGINX Highlighting - " @target https://github.com/evanmiller/nginx-vim-syntax - exec 'hi ngxDirectiveBlock' . s:fg_pink . s:ft_bold - exec 'hi ngxDirective' . s:fg_blue . s:ft_none - exec 'hi ngxDirectiveImportant' . s:fg_blue . s:ft_bold - exec 'hi ngxString' . s:fg_olive - exec 'hi ngxVariableString' . s:fg_purple - exec 'hi ngxVariable' . s:fg_purple . s:ft_none - - " Yaml Highlighting - exec 'hi yamlBlockMappingKey' . s:fg_blue - exec 'hi yamlKeyValueDelimiter' . s:fg_pink - exec 'hi yamlBlockCollectionItemStart' . s:fg_pink - - " Qt QML Highlighting - exec 'hi qmlObjectLiteralType' . s:fg_pink - exec 'hi qmlReserved' . s:fg_purple - exec 'hi qmlBindingProperty' . s:fg_navy - exec 'hi qmlType' . s:fg_navy - - " Dosini Highlighting - exec 'hi dosiniHeader' . s:fg_pink - exec 'hi dosiniLabel' . s:fg_blue - - " Mail highlighting - exec 'hi mailHeaderKey' . s:fg_blue - exec 'hi mailHeaderEmail' . s:fg_purple - exec 'hi mailSubject' . s:fg_pink - exec 'hi mailHeader' . s:fg_comment - exec 'hi mailURL' . s:fg_aqua - exec 'hi mailEmail' . s:fg_purple - exec 'hi mailQuoted1' . s:fg_olive - exec 'hi mailQuoted2' . s:fg_navy - - " XML Highlighting - exec 'hi xmlProcessingDelim' . s:fg_pink - exec 'hi xmlString' . s:fg_olive - exec 'hi xmlEqual' . s:fg_orange - exec 'hi xmlAttrib' . s:fg_navy - exec 'hi xmlAttribPunct' . s:fg_pink - exec 'hi xmlTag' . s:fg_blue - exec 'hi xmlTagName' . s:fg_blue - exec 'hi xmlEndTag' . s:fg_blue - exec 'hi xmlNamespace' . s:fg_orange - - " Elixir Highlighting - " @target https://github.com/elixir-lang/vim-elixir - exec 'hi elixirAlias' . s:fg_blue . s:ft_bold - exec 'hi elixirAtom' . s:fg_navy - exec 'hi elixirVariable' . s:fg_navy - exec 'hi elixirUnusedVariable' . s:fg_foreground . s:ft_bold - exec 'hi elixirInclude' . s:fg_purple - exec 'hi elixirStringDelimiter' . s:fg_olive - exec 'hi elixirKeyword' . s:fg_purple . s:ft_bold - exec 'hi elixirFunctionDeclaration' . s:fg_aqua . s:ft_bold - exec 'hi elixirBlockDefinition' . s:fg_pink - exec 'hi elixirDefine' . s:fg_pink - exec 'hi elixirStructDefine' . s:fg_pink - exec 'hi elixirPrivateDefine' . s:fg_pink - exec 'hi elixirModuleDefine' . s:fg_pink - exec 'hi elixirProtocolDefine' . s:fg_pink - exec 'hi elixirImplDefine' . s:fg_pink - exec 'hi elixirModuleDeclaration' . s:fg_aqua . s:ft_bold - exec 'hi elixirDocString' . s:fg_olive - exec 'hi elixirDocTest' . s:fg_green . s:ft_bold - - " Erlang Highlighting - exec 'hi erlangBIF' . s:fg_purple . s:ft_bold - exec 'hi erlangBracket' . s:fg_pink - exec 'hi erlangLocalFuncCall' . s:fg_foreground - exec 'hi erlangVariable' . s:fg_foreground - exec 'hi erlangAtom' . s:fg_navy - exec 'hi erlangAttribute' . s:fg_blue . s:ft_bold - exec 'hi erlangRecordDef' . s:fg_blue . s:ft_bold - exec 'hi erlangRecord' . s:fg_blue - exec 'hi erlangRightArrow' . s:fg_blue . s:ft_bold - exec 'hi erlangStringModifier' . s:fg_olive . s:ft_bold - exec 'hi erlangInclude' . s:fg_blue . s:ft_bold - exec 'hi erlangKeyword' . s:fg_pink - exec 'hi erlangGlobalFuncCall' . s:fg_foreground - - " Cucumber Highlighting - exec 'hi cucumberFeature' . s:fg_blue . s:ft_bold - exec 'hi cucumberBackground' . s:fg_pink . s:ft_bold - exec 'hi cucumberScenario' . s:fg_pink . s:ft_bold - exec 'hi cucumberGiven' . s:fg_orange - exec 'hi cucumberGivenAnd' . s:fg_blue - exec 'hi cucumberThen' . s:fg_orange - exec 'hi cucumberThenAnd' . s:fg_blue - exec 'hi cucumberWhen' . s:fg_purple . s:ft_bold - exec 'hi cucumberScenarioOutline' . s:fg_pink . s:ft_bold - exec 'hi cucumberExamples' . s:fg_aqua - exec 'hi cucumberTags' . s:fg_aqua - exec 'hi cucumberPlaceholder' . s:fg_aqua - - " Ada Highlighting - exec 'hi adaInc' . s:fg_aqua . s:ft_bold - exec 'hi adaSpecial' . s:fg_aqua . s:ft_bold - exec 'hi adaKeyword' . s:fg_pink - exec 'hi adaBegin' . s:fg_pink - exec 'hi adaEnd' . s:fg_pink - exec 'hi adaTypedef' . s:fg_navy . s:ft_bold - exec 'hi adaAssignment' . s:fg_aqua . s:ft_bold - exec 'hi adaAttribute' . s:fg_green - - " COBOL Highlighting - exec 'hi cobolMarker' . s:fg_comment . s:bg_cursorline - exec 'hi cobolLine' . s:fg_foreground - exec 'hi cobolReserved' . s:fg_blue - exec 'hi cobolDivision' . s:fg_pink . s:ft_bold - exec 'hi cobolDivisionName' . s:fg_pink . s:ft_bold - exec 'hi cobolSection' . s:fg_navy . s:ft_bold - exec 'hi cobolSectionName' . s:fg_navy . s:ft_bold - exec 'hi cobolParagraph' . s:fg_purple - exec 'hi cobolParagraphName' . s:fg_purple - exec 'hi cobolDeclA' . s:fg_purple - exec 'hi cobolDecl' . s:fg_green - exec 'hi cobolCALLs' . s:fg_aqua . s:ft_bold - exec 'hi cobolEXECs' . s:fg_aqua . s:ft_bold - - " GNU sed highlighting - exec 'hi sedST' . s:fg_purple . s:ft_bold - exec 'hi sedFlag' . s:fg_purple . s:ft_bold - exec 'hi sedRegexp47' . s:fg_pink - exec 'hi sedRegexpMeta' . s:fg_blue . s:ft_bold - exec 'hi sedReplacement47' . s:fg_olive - exec 'hi sedReplaceMeta' . s:fg_orange . s:ft_bold - exec 'hi sedAddress' . s:fg_pink - exec 'hi sedFunction' . s:fg_aqua . s:ft_bold - exec 'hi sedBranch' . s:fg_green . s:ft_bold - exec 'hi sedLabel' . s:fg_green . s:ft_bold - - " GNU awk highlighting - exec 'hi awkPatterns' . s:fg_pink . s:ft_bold - exec 'hi awkSearch' . s:fg_pink - exec 'hi awkRegExp' . s:fg_blue . s:ft_bold - exec 'hi awkCharClass' . s:fg_blue . s:ft_bold - exec 'hi awkFieldVars' . s:fg_green . s:ft_bold - exec 'hi awkStatement' . s:fg_blue . s:ft_bold - exec 'hi awkFunction' . s:fg_blue - exec 'hi awkVariables' . s:fg_green . s:ft_bold - exec 'hi awkArrayElement' . s:fg_orange - exec 'hi awkOperator' . s:fg_foreground - exec 'hi awkBoolLogic' . s:fg_foreground - exec 'hi awkExpression' . s:fg_foreground - exec 'hi awkSpecialPrintf' . s:fg_olive . s:ft_bold - - " Elm highlighting - exec 'hi elmImport' . s:fg_navy - exec 'hi elmAlias' . s:fg_aqua - exec 'hi elmType' . s:fg_pink - exec 'hi elmOperator' . s:fg_aqua . s:ft_bold - exec 'hi elmBraces' . s:fg_aqua . s:ft_bold - exec 'hi elmTypedef' . s:fg_blue . s:ft_bold - exec 'hi elmTopLevelDecl' . s:fg_green . s:ft_bold - - " Purescript highlighting - exec 'hi purescriptModuleKeyword' . s:fg_navy - exec 'hi purescriptImportKeyword' . s:fg_navy - exec 'hi purescriptModuleName' . s:fg_pink - exec 'hi purescriptOperator' . s:fg_aqua . s:ft_bold - exec 'hi purescriptType' . s:fg_pink - exec 'hi purescriptTypeVar' . s:fg_navy - exec 'hi purescriptStructure' . s:fg_blue . s:ft_bold - exec 'hi purescriptLet' . s:fg_blue . s:ft_bold - exec 'hi purescriptFunction' . s:fg_green . s:ft_bold - exec 'hi purescriptDelimiter' . s:fg_aqua . s:ft_bold - exec 'hi purescriptStatement' . s:fg_purple . s:ft_bold - exec 'hi purescriptConstructor' . s:fg_pink - exec 'hi purescriptWhere' . s:fg_purple . s:ft_bold - - " F# highlighting - exec 'hi fsharpTypeName' . s:fg_pink - exec 'hi fsharpCoreClass' . s:fg_pink - exec 'hi fsharpType' . s:fg_pink - exec 'hi fsharpKeyword' . s:fg_blue . s:ft_bold - exec 'hi fsharpOperator' . s:fg_aqua . s:ft_bold - exec 'hi fsharpBoolean' . s:fg_green . s:ft_bold - exec 'hi fsharpFormat' . s:fg_foreground - exec 'hi fsharpLinq' . s:fg_blue - exec 'hi fsharpKeyChar' . s:fg_aqua . s:ft_bold - exec 'hi fsharpOption' . s:fg_orange - exec 'hi fsharpCoreMethod' . s:fg_purple - exec 'hi fsharpAttrib' . s:fg_orange - exec 'hi fsharpModifier' . s:fg_aqua - exec 'hi fsharpOpen' . s:fg_red - - " ASN.1 highlighting - exec 'hi asnExternal' . s:fg_green . s:ft_bold - exec 'hi asnTagModifier' . s:fg_purple - exec 'hi asnBraces' . s:fg_aqua . s:ft_bold - exec 'hi asnDefinition' . s:fg_foreground - exec 'hi asnStructure' . s:fg_blue - exec 'hi asnType' . s:fg_pink - exec 'hi asnTypeInfo' . s:fg_aqua . s:ft_bold - exec 'hi asnFieldOption' . s:fg_purple - - " }}} - - " Plugin: Netrw - exec 'hi netrwVersion' . s:fg_red - exec 'hi netrwList' . s:fg_pink - exec 'hi netrwHidePat' . s:fg_olive - exec 'hi netrwQuickHelp' . s:fg_blue - exec 'hi netrwHelpCmd' . s:fg_blue - exec 'hi netrwDir' . s:fg_aqua . s:ft_bold - exec 'hi netrwClassify' . s:fg_pink - exec 'hi netrwExe' . s:fg_green - exec 'hi netrwSuffixes' . s:fg_comment - exec 'hi netrwTreeBar' . s:fg_linenumber_fg - - " Plugin: NERDTree - exec 'hi NERDTreeUp' . s:fg_comment - exec 'hi NERDTreeHelpCommand' . s:fg_pink - exec 'hi NERDTreeHelpTitle' . s:fg_blue . s:ft_bold - exec 'hi NERDTreeHelpKey' . s:fg_pink - exec 'hi NERDTreeHelp' . s:fg_foreground - exec 'hi NERDTreeToggleOff' . s:fg_red - exec 'hi NERDTreeToggleOn' . s:fg_green - exec 'hi NERDTreeDir' . s:fg_blue . s:ft_bold - exec 'hi NERDTreeDirSlash' . s:fg_pink - exec 'hi NERDTreeFile' . s:fg_foreground - exec 'hi NERDTreeExecFile' . s:fg_green - exec 'hi NERDTreeOpenable' . s:fg_aqua . s:ft_bold - exec 'hi NERDTreeClosable' . s:fg_pink - - " Plugin: Tagbar - exec 'hi TagbarHelpTitle' . s:fg_blue . s:ft_bold - exec 'hi TagbarHelp' . s:fg_foreground - exec 'hi TagbarKind' . s:fg_pink - exec 'hi TagbarSignature' . s:fg_aqua - - " Plugin: Vimdiff - exec 'hi DiffAdd' . s:fg_diffadd_fg . s:bg_diffadd_bg . s:ft_none - exec 'hi DiffChange' . s:fg_diffchange_fg . s:bg_diffchange_bg . s:ft_none - exec 'hi DiffDelete' . s:fg_diffdelete_fg . s:bg_diffdelete_bg . s:ft_none - exec 'hi DiffText' . s:fg_difftext_fg . s:bg_difftext_bg . s:ft_none - - " Plugin: vim-gitgutter - exec 'hi GitGutterAdd' . s:fg_diffadd_fg - exec 'hi GitGutterChange' . s:fg_diffchange_fg - exec 'hi GitGutterDelete' . s:fg_diffdelete_fg - exec 'hi GitGutterAddLine' . s:fg_diffadd_fg . s:bg_diffadd_bg . s:ft_none - exec 'hi GitGutterChangeLine' . s:fg_diffchange_fg . s:bg_diffchange_bg . s:ft_none - exec 'hi GitGutterDeleteLine' . s:fg_diffdelete_fg . s:bg_diffdelete_bg . s:ft_none - - " Plugin: AGit - exec 'hi agitHead' . s:fg_green . s:ft_bold - exec 'hi agitHeader' . s:fg_olive - exec 'hi agitStatAdded' . s:fg_diffadd_fg - exec 'hi agitStatRemoved' . s:fg_diffdelete_fg - exec 'hi agitDiffAdd' . s:fg_diffadd_fg - exec 'hi agitDiffRemove' . s:fg_diffdelete_fg - exec 'hi agitDiffHeader' . s:fg_pink - exec 'hi agitDiff' . s:fg_foreground - exec 'hi agitDiffIndex' . s:fg_purple - exec 'hi agitDiffFileName' . s:fg_aqua - exec 'hi agitLog' . s:fg_foreground - exec 'hi agitAuthorMark' . s:fg_olive - exec 'hi agitDateMark' . s:fg_comment - exec 'hi agitHeaderLabel' . s:fg_aqua - exec 'hi agitDate' . s:fg_aqua - exec 'hi agitTree' . s:fg_pink - exec 'hi agitRef' . s:fg_blue . s:ft_bold - exec 'hi agitRemote' . s:fg_purple . s:ft_bold - exec 'hi agitTag' . s:fg_orange . s:ft_bold - - " Plugin: Spell Checking - exec 'hi SpellBad' . s:fg_foreground . s:bg_spellbad - exec 'hi SpellCap' . s:fg_foreground . s:bg_spellcap - exec 'hi SpellRare' . s:fg_foreground . s:bg_spellrare - exec 'hi SpellLocal' . s:fg_foreground . s:bg_spelllocal - - " Plugin: Indent Guides - exec 'hi IndentGuidesOdd' . s:bg_background - exec 'hi IndentGuidesEven' . s:bg_cursorline - - " Plugin: Startify - exec 'hi StartifyFile' . s:fg_blue . s:ft_bold - exec 'hi StartifyNumber' . s:fg_orange - exec 'hi StartifyHeader' . s:fg_comment - exec 'hi StartifySection' . s:fg_pink - exec 'hi StartifyPath' . s:fg_foreground - exec 'hi StartifySlash' . s:fg_navy - exec 'hi StartifyBracket' . s:fg_aqua - exec 'hi StartifySpecial' . s:fg_aqua - - " Plugin: Signify - exec 'hi SignifyLineChange' . s:fg_diffchange_fg - exec 'hi SignifySignChange' . s:fg_diffchange_fg - exec 'hi SignifyLineAdd' . s:fg_diffadd_fg - exec 'hi SignifySignAdd' . s:fg_diffadd_fg - exec 'hi SignifyLineDelete' . s:fg_diffdelete_fg - exec 'hi SignifySignDelete' . s:fg_diffdelete_fg - - " Git commit message - exec 'hi gitcommitSummary' . s:fg_blue - exec 'hi gitcommitHeader' . s:fg_green . s:ft_bold - exec 'hi gitcommitSelectedType' . s:fg_blue - exec 'hi gitcommitSelectedFile' . s:fg_pink - exec 'hi gitcommitUntrackedFile' . s:fg_diffdelete_fg - exec 'hi gitcommitBranch' . s:fg_aqua . s:ft_bold - exec 'hi gitcommitDiscardedType' . s:fg_diffdelete_fg - exec 'hi gitcommitDiff' . s:fg_comment - - exec 'hi diffFile' . s:fg_blue - exec 'hi diffSubname' . s:fg_comment - exec 'hi diffIndexLine' . s:fg_comment - exec 'hi diffAdded' . s:fg_diffadd_fg - exec 'hi diffRemoved' . s:fg_diffdelete_fg - exec 'hi diffLine' . s:fg_orange - exec 'hi diffBDiffer' . s:fg_orange - exec 'hi diffNewFile' . s:fg_comment - - " Pluging: CoC - exec 'hi CocFloating' . s:fg_popupmenu_fg . s:bg_popupmenu_bg . s:ft_none - exec 'hi CocErrorFloat' . s:fg_popupmenu_fg . s:bg_popupmenu_bg . s:ft_none - exec 'hi CocWarningFloat' . s:fg_popupmenu_fg . s:bg_popupmenu_bg . s:ft_none - exec 'hi CocInfoFloat' . s:fg_popupmenu_fg . s:bg_popupmenu_bg . s:ft_none - exec 'hi CocHintFloat' . s:fg_popupmenu_fg . s:bg_popupmenu_bg . s:ft_none - - exec 'hi CocErrorHighlight' . s:fg_foreground . s:bg_spellbad - exec 'hi CocWarningHighlight' . s:fg_foreground . s:bg_spellcap - exec 'hi CocInfoHighlight' . s:fg_foreground . s:bg_spellcap - exec 'hi CocHintHighlight' . s:fg_foreground . s:bg_spellcap - - exec 'hi CocErrorSign' . s:fg_error_fg . s:bg_error_bg - exec 'hi CocWarningSign' . s:fg_todo_fg . s:bg_todo_bg . s:ft_bold - exec 'hi CocInfoSign' . s:fg_todo_fg . s:bg_todo_bg . s:ft_bold - exec 'hi CocHintSign' . s:fg_todo_fg . s:bg_todo_bg . s:ft_bold - - " Debug Adapter Protocol (DAP) - Plugin: rcarriga/nvim-dap-ui - if has('nvim') - exec 'hi DapUIDecoration' . s:fg_blue - " DAP Scopes window - hi! link DapUIType Type - hi! link DapUIVariable Identifier - exec 'hi DapUIScope' . s:fg_red . s:ft_bold - hi! link DapUIValue Number - exec 'hi DapUIModifiedValue' . s:fg_orange . s:ft_bold . s:bg_error_bg - " DAP Breakpoints window - hi! link DapUILineNumber LineNr - hi! link DapUIBreakpointsDisabledLine LineNr - exec 'hi DapUIBreakpointsCurrentLine' . s:fg_linenumber_fg . s:ft_bold . s:bg_error_bg - exec 'hi DapUIBreakpointsInfo' . s:fg_green - exec 'hi DapUIBreakpointsPath' . s:fg_olive . s:ft_bold - " DAP Stacks window - exec 'hi DapUIFrameName' . s:fg_blue - exec 'hi DapUIThread' . s:fg_pink . s:ft_bold - exec 'hi DapUIStoppedThread' . s:fg_pink - " DAP Watches window - exec 'hi DapUIWatchesEmpty' . s:fg_pink . s:ft_bold - hi! link DapUIWatchesError DapUIWatchesEmpty - hi! link DapUIWatchesValue Number - " DAP Breakpoints window - exec 'hi DapUISource' . s:fg_olive - " DAP Floating window - exec 'hi DapUIFloatBorder' . s:fg_blue - endif - - " Plugin: hrsh7th/nvim-cmp - if has('nvim') - hi! link CmpItemKindValue Number - hi! link CmpItemKindVariable Identifier - hi! link CmpItemKindKeyword Keyword - hi! link CmpItemKindField CmpItemKindVariable - exec 'hi CmpItemKindFunction' . s:fg_blue - hi! link CmpItemKindMethod CmpItemKindFunction - hi! link CmpItemKindConstructor CmpItemKindFunction - hi! link CmpItemKindClass Structure - hi! link CmpItemKindInterface Structure - exec 'hi CmpItemKindSnippet' . s:fg_orange - exec 'hi CmpItemKindFile' . s:fg_orange - hi! link CmpItemKindFolder CmpItemKindFile - exec 'hi CmpItemAbbrMatch' . s:fg_blue . s:ft_bold - exec 'hi CmpItemAbbrMatchFuzzy' . s:fg_blue . s:ft_bold - exec 'hi CmpItemAbbrDeprecated' . s:fg_foreground . ' gui=strikethrough' - endif - -endfun -" }}} - -" ================================== MISC ===================================== -" Command to show theme information {{{ -fun! g:PaperColor() - echom 'PaperColor Theme Framework' - echom ' version ' . s:version - echom ' by Nikyle Nguyen et al.' - echom ' at https://github.com/NLKNguyen/papercolor-theme/' - echom ' ' - echom 'Current theme: ' . s:theme_name - echom ' ' . s:selected_theme['description'] - echom ' by ' . s:selected_theme['maintainer'] - echom ' at ' . s:selected_theme['source'] - - " TODO: add diff display for theme color names between 'default' and current - " theme if it is a custom theme, i.e. child theme. -endfun - -" @brief command alias for g:PaperColor() -command! -nargs=0 PaperColor :call g:PaperColor() -" }}} - -" =============================== MAIN ======================================== - -hi clear -syntax reset -let g:colors_name = "PaperColor" - -call s:acquire_theme_data() -call s:identify_color_mode() - -call s:generate_theme_option_variables() -call s:generate_language_option_variables() - -call s:set_format_attributes() -call s:set_overriding_colors() - -call s:convert_colors() -call s:set_color_variables() - -call s:apply_syntax_highlightings() - -" ============================================================================= -" Cheers! -" vim: fdm=marker ff=unix diff --git a/config/nvim-archive/external_settings/mappings.vim b/config/nvim-archive/external_settings/mappings.vim deleted file mode 100644 index 8a66525..0000000 --- a/config/nvim-archive/external_settings/mappings.vim +++ /dev/null @@ -1,97 +0,0 @@ -" ----- Tabs ----- " -nnoremap :tabnew -nnoremap :tabclose -noremap :tabnext -inoremap :tabnext -cnoremap :tabnext -noremap ::tabprevious -inoremap :tabprevious -cnoremap :tabprevious - -" unmap -command! W -command! Q :wq! - - -" NvimTRee -noremap n :NvimTreeToggle - -" -- Comments -- " -vmap C ToggleCommaround -vmap c ToggleCommaround - -" Code Block Scope -nnoremap es :IBLToggle - -" -- Todo Comments search -- " -nnoremap cf :TodoTelescope - -" Delete entire word with CTRL-BS or CTRL-H -noremap! -noremap! -inoremap db - -" -- Coc -- " -nnoremap ce :CocEnable -nnoremap cd :CocDisable - -" -- CSS -- " -au FileType css inoremap { {}A -au FileType css map * I/*A*/ - -" Don't leave block indentation -vmap < >gv - -" Compilation -map m :!make - - -" List all URLS in a file -nnoremap u :Urlview - -" FZF " -nnoremap f :FZF - -" Code Search (silver searcher) " -nnoremap cs :Ag - -" function! ToggleAg() -" if exists("t:fzf_window") -" " If the fzf window exists, close it -" call fzf#vim#cancel() -" else -" " Otherwise, open the fzf window with a prompt for input -" call fzf#vim#ag('', fzf#vim#with_preview()) -" endif -" endfunction -" -" Code Search (silver searcher) " -" nnoremap cs :call ToggleAg() -" - - - -" Enable Spell Check -map s :setlocal spell! spelllang=en_us - -map p :!opout % - -" Undo Tree -nnoremap :UndotreeToggle - -" NERD TREE - nnoremap :NERDTreeToggle - -" Telescope - " Find files using Telescope command-line sugar. - nnoremap ff Telescope find_files - nnoremap fg Telescope live_grep - nnoremap fb Telescope buffers - nnoremap fh Telescope help_tags - - " Using Lua functions - nnoremap ff lua require('telescope.builtin').find_files() - nnoremap fg lua require('telescope.builtin').live_grep() - nnoremap fb lua require('telescope.builtin').buffers() - nnoremap fh lua require('telescope.builtin').help_tags() diff --git a/config/nvim-archive/external_settings/plugins.vim b/config/nvim-archive/external_settings/plugins.vim deleted file mode 100644 index 131b03d..0000000 --- a/config/nvim-archive/external_settings/plugins.vim +++ /dev/null @@ -1,536 +0,0 @@ -" https://github.com/junegunn/vim-plug -call plug#begin(system('echo -n "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/plugged"')) - - -" <-- Syntax Highlighting--> - Plug 'ap/vim-css-color' " Enable CSS syntax - Plug 'roobert/tailwindcss-colorizer-cmp.nvim' " CSS Colorizer - Plug 'bfrg/vim-cpp-modern' " C/C++ Syntax Highlighting - Plug 'kien/rainbow_parentheses.vim' - Plug 'uiiaoo/java-syntax.vim' " Syntax Highlighting for Java - "Plug 'lukas-reineke/indent-blankline.nvim' - Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} - Plug 'folke/todo-comments.nvim' - " <-- END Syntax High lighting--> - - " <-- Colour Schemes --> - Plug 'NLKNguyen/papercolor-theme' - Plug 'sts10/vim-pink-moon' - Plug 'rafi/awesome-vim-colorschemes' - Plug 'catppuccin/nvim', { 'as': 'catppuccin' } - Plug 'chriskempson/base16-vim' - Plug 'justinmk/vim-syntax-extra' - " <-- END Colour Schemes --> - - " <-- Completion and linting --> - Plug 'neoclide/coc.nvim', {'branch': 'release'} " Auto Completion - Plug 'dense-analysis/ale' " Real time Linting - " Plug 'tpope/vim-surround' " Change what something is surrounded by - Plug 'kylechui/nvim-surround' - Plug 'alvan/vim-closetag' " Close HTML tags - Plug 'gennaro-tedesco/nvim-commaround' " Toggle Comments in visual block - Plug 'roobert/search-replace.nvim' " Replace searched for text - " <-- END Completion and linting --> - - " <-- Navigation --> - "Plug 'ms-jpq/chadtree', {'branch': 'chad', 'do': 'python3 -m chadtree deps'} " File Manager - "Plug 'preservim/nerdtree' " File Manager - ""Plug 'tiagofumo/vim-nerdtree-syntax-highlight' " NERDTree Syntax Addon - Plug 'TheBlob42/drex.nvim' " Directory Explorer - Plug 'elihunter173/dirbuf.nvim' " Directory Buffer - Plug 'mg979/vim-visual-multi', {'branch': 'master'} " More cursers in visual mode - Plug 'junegunn/fzf.vim' - Plug 'nvim-lua/plenary.nvim' - Plug 'nvim-telescope/telescope.nvim' ", { 'tag': '0.1.8' } - Plug 'nvim-tree/nvim-tree.lua' - Plug 's1n7ax/nvim-terminal' - " <-- END Navigation --> - - " <-- MISC --> - " https://github.com/ThePrimeagen/git-worktree.nvim - Plug 'ThePrimeagen/vim-be-good' - " Plug 'ryanoasis/vim-devicons' - Plug 'voldikss/vim-floaterm' " Terminal - Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' } " Live markdown preview in browser - Plug 'strboul/urlview.vim' " Open URLS - Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } - " Plug 'ibhagwan/fzf-lua' - Plug 'vimwiki/vimwiki' " Note taking in vim - Plug 'mbbill/undotree' " Undo history tree - "Plug 'epwalsh/obsidian.nvim' - " <-- END MISC --> - - " <-- Plugin Dependencies --> - Plug 'nvim-lua/plenary.nvim' - " <-- END Plugin Dependencies --> - - " <-- Git Integration --> - Plug 'sindrets/diffview.nvim' - Plug 'lewis6991/gitsigns.nvim' - Plug 'tpope/vim-fugitive' - " <-- END Git Integration --> - - - " <-- Dependencies --> - Plug 'nvim-lua/plenary.nvim' - " <-- END Dependencies --> - - - "https://github.com/Zeioth/compiler.nvim - "https://github.com/rmagatti/goto-preview - "https://github.com/SmiteshP/nvim-navbuddy - - - " - " - " - " - - call plug#end() - - -" <----- Plugin Configs -----> " - - - - - - -" <----- nvim-terminal -----> " -" :lua require('nvim-terminal').setup() - -lua << EOF - - -vim.o.hidden = false -require('nvim-terminal').setup({ - window = { - -- Do `:h :botright` for more information - -- NOTE: width or height may not be applied in some "pos" - position = 'botright', - - -- Do `:h split` for more information - split = 'sp', - - -- Width of the terminal - width = 50, - - -- Height of the terminal - height = 15, - }, - - -- keymap to disable all the default keymaps - disable_default_keymaps = false, - - -- keymap to toggle open and close terminal window - toggle_keymap = ';', - - -- increase the window height by when you hit the keymap - window_height_change_amount = 2, - - -- increase the window width by when you hit the keymap - window_width_change_amount = 2, - - -- keymap to increase the window width - increase_width_keymap = '+', - - -- keymap to decrease the window width - decrease_width_keymap = '-', - - -- keymap to increase the window height - increase_height_keymap = '+', - - -- keymap to decrease the window height - decrease_height_keymap = '-', - - terminals = { - -- keymaps to open nth terminal - {keymap = '1'}, - {keymap = '2'}, - {keymap = '3'}, - {keymap = '4'}, - {keymap = '5'}, - }, - -}) -EOF - -tnoremap -" <----- END nvim-terminal -----> " - - - -lua << EOF -require('gitsigns').setup { - signs = { - add = { text = '┃' }, - change = { text = '┃' }, - delete = { text = '_' }, - topdelete = { text = '‾' }, - changedelete = { text = '~' }, - untracked = { text = '┆' }, - }, - -- ... include other configurations as needed -} -EOF - - -"<----- indent-blankline -----> " -"lua << EOF -"require("ibl").setup() -"EOF - -" au BufEnter *.* :IBLToggleScope -" <----- END indent-blankline -----> " - - -"<----- vim-surround -----> " -lua << EOF -require("nvim-surround").setup() -EOF -"<----- END vim-surround -----> " - - -" <----- todo-comments -----> " -lua << EOF -require('todo-comments').setup { - signs = true, -- show icons in the signs column - sign_priority = 8, -- sign priority - -- keywords recognized as todo comments - keywords = { - FIX = { - icon = " ", -- icon used for the sign, and in search results - color = "error", -- can be a hex color, or a named color (see below) - alt = { "FIXME", "BUG", "FIXIT", "ISSUE"}, -- a set of other keywords that all map to this FIX keywords - -- signs = false, -- configure signs for some keywords individually - }, - TODO = { icon = " ", color = "info" }, - HACK = { icon = " ", color = "warning" }, - WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } }, - PERF = { icon = " ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } }, - NOTE = { icon = " ", color = "hint", alt = { "INFO" } }, - TEST = { icon = "⏲ ", color = "test", alt = { "TESTING", "PASSED", "FAILED" } }, - DEBUG = { icon = "🐛", color = "info"}, - FIX = { icon = "🔧", color = "#FF00FF"}, - }, - gui_style = { - fg = "NONE", -- The gui style to use for the fg highlight group. - bg = "BOLD", -- The gui style to use for the bg highlight group. - }, - merge_keywords = true, -- when true, custom keywords will be merged with the defaults - -- highlighting of the line containing the todo comment - -- * before: highlights before the keyword (typically comment characters) - -- * keyword: highlights of the keyword - -- * after: highlights after the keyword (todo text) - highlight = { - multiline = true, -- enable multine todo comments - multiline_pattern = "^.", -- lua pattern to match the next multiline from the start of the matched keyword - multiline_context = 10, -- extra lines that will be re-evaluated when changing a line - before = "", -- "fg" or "bg" or empty - keyword = "wide", -- "fg", "bg", "wide", "wide_bg", "wide_fg" or empty. (wide and wide_bg is the same as bg, but will also highlight surrounding characters, wide_fg acts accordingly but with fg) - after = "fg", -- "fg" or "bg" or empty - pattern = [[.*<(KEYWORDS)\s*:]], -- pattern or table of patterns, used for highlighting (vim regex) - comments_only = true, -- uses treesitter to match keywords in comments only - max_line_len = 400, -- ignore lines longer than this - exclude = {}, -- list of file types to exclude highlighting - }, - -- list of named colors where we try to extract the guifg from the - -- list of highlight groups or use the hex color if hl not found as a fallback - colors = { - error = { "DiagnosticError", "ErrorMsg", "#DC2626" }, - warning = { "DiagnosticWarn", "WarningMsg", "#FBBF24" }, - info = { "DiagnosticInfo", "#2563EB" }, - hint = { "DiagnosticHint", "#10B981" }, - default = { "Identifier", "#7C3AED" }, - test = { "Identifier", "#FF00FF" } - }, - search = { - command = "rg", - args = { - "--color=never", - "--no-heading", - "--with-filename", - "--line-number", - "--column", - }, - -- regex that will be used to match keywords. - -- don't replace the (KEYWORDS) placeholder - pattern = [[\b(KEYWORDS):]], -- ripgrep regex - -- pattern = [[\b(KEYWORDS)\b]], -- match without the extra colon. You'll likely get false positives - }, -} - -vim.keymap.set("n", "]t", function() - require("todo-comments").jump_next() -end, { desc = "Next todo comment" }) - -vim.keymap.set("n", "[t", function() - require("todo-comments").jump_prev() -end, { desc = "Previous todo comment" }) - --- You can also specify a list of valid jump keywords - -vim.keymap.set("n", "]t", function() - require("todo-comments").jump_next({keywords = { "ERROR", "WARNING" }}) -end, { desc = "Next error/warning todo comment" }) -EOF -" <----- END todo-comments -----> " - - -" <----- Telescope -----> " -" <----- END Telescope -----> " - - -" <----- Nvim Tree -----> " -lua << EOF --- disable netrw at the very start of your init.lua -vim.g.loaded_netrw = 1 -vim.g.loaded_netrwPlugin = 1 - --- optionally enable 24-bit colour -vim.opt.termguicolors = true - --- empty setup using defaults -require("nvim-tree").setup() - --- OR setup with some options -require("nvim-tree").setup({ - sort = { - sorter = "case_sensitive", - }, - view = { - width = 30, - }, - renderer = { - group_empty = true, - }, - filters = { - dotfiles = true, - }, -}) -EOF - -" <----- END Nvim Tree -----> " - - - -" --- Float Term --- " -nmap t :FloatermNew -nmap Tr :FloatermNew --autoclose=0 gcc % -o %< && ./%< -"FloatermNew --height=0.6 --width=0.4 --wintype=float --name=floaterm1 --position=topleft --autoclose=2 ranger --cmd="cd ~" -" - END Float Term - " - - - - -" --- quick scope --- " -let g:qs_highlight_on_keys = ['f', 'F'] -" - END scope - " - - -" --- Chad Tree --- " -nnoremap v CHADopen -" --- END Chad Tree--- " - -" --- NERD Tree --- " -nnoremap n :NERDTreeFocus -nnoremap :NERDTree -nnoremap :NERDTreeToggle -nnoremap :NERDTreeFind - -" autocmd VimEnter * NERDTree | wincmd p -" --- END NERD Tree --- " - -" --- nvim-cursorword --- " -"hi default CursorWord cterm=underline gui=underline -" --- END nvim-cursorword --- " - - - - -" --- Linting --- " -let g:ale_linters = { - \ 'python': ['pylint'], - \ 'cpp': ['clang'], - \ 'c': ['clang'] -\} -" --- END Linting ---- " - - - - - -" --- Coc --- " - -" Coc Extensions -let g:coc_global_extensions = [ - \ 'coc-css', - \ 'coc-html', - \ 'coc-clangd', - "\ 'coc-java', - \ 'coc-pairs', - \ 'coc-vimtex', - \ 'coc-snippets', - \ 'coc-highlight' -\ ] - -let g:coc_enable_diagnostic_sign = 1 - - - -" Always show the signcolumn, otherwise it would shift the text each time -" diagnostics appear/become resolved -set signcolumn=yes - -" Use tab for trigger completion with characters ahead and navigate -" NOTE: There's always complete item selected by default, you may want to enable -" no select by `"suggest.noselect": true` in your configuration file -" NOTE: Use command ':verbose imap ' to make sure tab is not mapped by -" other plugin before putting this into your config -inoremap - \ coc#pum#visible() ? coc#pum#next(1) : - \ CheckBackspace() ? "\" : - \ coc#refresh() -inoremap coc#pum#visible() ? coc#pum#prev(1) : "\" - -" Make to accept selected completion item or notify coc.nvim to format -" u breaks current undo, please make your own choice -inoremap coc#pum#visible() ? coc#pum#confirm() - \: "\u\\=coc#on_enter()\" - -function! CheckBackspace() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' -endfunction - -" Use to trigger completion -if has('nvim') - inoremap coc#refresh() -else - inoremap coc#refresh() -endif - -" Use `[g` and `]g` to navigate diagnostics -" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list -nmap [g (coc-diagnostic-prev) -nmap ]g (coc-diagnostic-next) - -" GoTo code navigation -nmap gd (coc-definition) -nmap gy (coc-type-definition) -nmap gi (coc-implementation) -nmap gr (coc-references) - -" Use K to show documentation in preview window -nnoremap K :call ShowDocumentation() - -function! ShowDocumentation() - if CocAction('hasProvider', 'hover') - call CocActionAsync('doHover') - else - call feedkeys('K', 'in') - endif -endfunction - -" Highlight the symbol and its references when holding the cursor -autocmd CursorHold * silent call CocActionAsync('highlight') - -" Symbol renaming -nmap rn (coc-rename) - -" Formatting selected code -xmap f (coc-format-selected) -nmap f (coc-format-selected) - -augroup mygroup - autocmd! - " Setup formatexpr specified filetype(s) - autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') - " Update signature help on jump placeholder - autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') -augroup end - -" Applying code actions to the selected code block -" Example: `aap` for current paragraph -xmap a (coc-codeaction-selected) -nmap a (coc-codeaction-selected) - -" Remap keys for applying code actions at the cursor position -nmap ac (coc-codeaction-cursor) -" Remap keys for apply code actions affect whole buffer -nmap as (coc-codeaction-source) -" Apply the most preferred quickfix action to fix diagnostic on the current line -nmap qf (coc-fix-current) - -" Remap keys for applying refactor code actions -nmap re (coc-codeaction-refactor) -xmap r (coc-codeaction-refactor-selected) -nmap r (coc-codeaction-refactor-selected) - -" Run the Code Lens action on the current line -nmap cl (coc-codelens-action) - -" Map function and class text objects -" NOTE: Requires 'textDocument.documentSymbol' support from the language server -xmap if (coc-funcobj-i) -omap if (coc-funcobj-i) -xmap af (coc-funcobj-a) -omap af (coc-funcobj-a) -xmap ic (coc-classobj-i) -omap ic (coc-classobj-i) -xmap ac (coc-classobj-a) -omap ac (coc-classobj-a) - -" Remap and to scroll float windows/popups -if has('nvim-0.4.0') || has('patch-8.2.0750') - nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" -endif - -" Use CTRL-S for selections ranges -" Requires 'textDocument/selectionRange' support of language server -nmap (coc-range-select) -xmap (coc-range-select) - -" Add `:Format` command to format current buffer -command! -nargs=0 Format :call CocActionAsync('format') - -" Add `:Fold` command to fold current buffer -command! -nargs=? Fold :call CocAction('fold', ) - -" Add `:OR` command for organize imports of the current buffer -command! -nargs=0 OR :call CocActionAsync('runCommand', 'editor.action.organizeImport') - -" Add (Neo)Vim's native statusline support -" NOTE: Please see `:h coc-status` for integrations with external plugins that -" provide custom statusline: lightline.vim, vim-airline -set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} - -" Mappings for CoCList -" Show all diagnostics -nnoremap a :CocList diagnostics -" Manage extensions -nnoremap e :CocList extensions -" Show commands -nnoremap c :CocList commands -" Find symbol of current document -nnoremap o :CocList outline -" Search workspace symbols -nnoremap s :CocList -I symbols -" Do default action for next item -nnoremap j :CocNext -" Do default action for previous item -nnoremap k :CocPrev -" Resume latest coc list -nnoremap p :CocListResume - - - -" - END Coc - " - - -" <----- END Plugin Configs -----> " diff --git a/config/nvim-archive/external_settings/status-line.vim b/config/nvim-archive/external_settings/status-line.vim deleted file mode 100644 index b2b4d94..0000000 --- a/config/nvim-archive/external_settings/status-line.vim +++ /dev/null @@ -1,31 +0,0 @@ -function! GitBranch() - return system("git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'") -endfunction - -function! StatuslineGit() - let l:branchname = GitBranch() - return strlen(l:branchname) > 0?' '.l:branchname.' ':'' -endfunction - - -set number " Show line number -set statusline= " Enable status line -set statusline+=%{StatuslineGit()} -set statusline +=%1*\ %n\ %* " buffer number -set statusline +=%5*%{&ff}%* " file format -set statusline +=%3*%y%* " file type -set statusline +=%4*\ %<%{expand('%:p:h')}/%* " full path excluding file name -set statusline+=\%f " file name -set statusline +=%2*%m%* " modified flag -set statusline +=%1*%=%5l%* " current line -set statusline +=%2*/%L:%* " total lines -set statusline +=%1*%1v\ %* " virtual column number -set statusline +=%1*\ %* " add a space for separation -set statusline +=%2*%{char2nr(getline('.')[col('.')-1])}\ %* " character under cursor ASCII code" - - -"set statusline +=%4*\ %<%F%* " full path -"set statusline +=%2*0x%02B\ %* " character under cursor hexadecimal -"set statusline +=%8*\ [%{strftime('%u/%d/%m/%y\ %R:%S\')}\] " Date & Time -"set statusline +=%8*\ [%{strftime('%u/%d/%m/%y')}] " Just the date -"set statusline+=%#PmenuSel# diff --git a/config/nvim-archive/external_settings/syntax-highlighting.vim b/config/nvim-archive/external_settings/syntax-highlighting.vim deleted file mode 100644 index 409739b..0000000 --- a/config/nvim-archive/external_settings/syntax-highlighting.vim +++ /dev/null @@ -1,66 +0,0 @@ - -syntax on -set termguicolors - - -" ----- Colorsceme ------" -colorscheme PaperColor -"colorscheme base16-bright -"colorscheme gruvbox -"colorscheme torte -"autocmd FileType java colorscheme torte -"colorscheme focuspoint -"colorscheme deus -"colorscheme gotham -"colorscheme nord -"colorscheme abstract -"colorscheme base16-default-dark -"colorscheme 256_noir -"colorscheme OceanicNext -"colorscheme atom - -"colorscheme catppuccin -"colorscheme catppuccin-frappe -"colorscheme catppuccin-macchiato -"colorscheme catppuccin-mocha - - - - -" ----- Number Column ------" -highlight clear LineNr -highlight clear SignColumn - - - - -"set listchars=tab:>\ ,space:·,nbsp:␣,eol:! - - -highlight Normal guibg=none -highlight NonText guibg=none -highlight Normal ctermbg=none -highlight NonText ctermbg=none - - - -" ----- C ----- " -autocmd BufRead,BufNewFile *.c :source ~/.config/nvim/syntax/libpng.vim " libpng -autocmd BufRead,BufNewFile *.h :source ~/.config/nvim/syntax/libpng.vim " libpng -autocmd BufRead,BufNewFile *.c :source ~/.config/nvim/syntax/curses.vim " ncurses -autocmd BufRead,BufNewFile *.h :source ~/.config/nvim/syntax/curses.vim " ncurses -autocmd BufRead,BufNewFile *.c :source ~/.config/nvim/syntax/types.vim " types -autocmd BufRead,BufNewFile *.h :source ~/.config/nvim/syntax/types.vim " types -autocmd BufWinEnter *.c RainbowParenthesesToggle " Colorise nested parentheses - - -" ----- Comments ----- " -"autocmd BufRead,BufNewFile *.c :highlight Comment ctermfg=12 guifg=#504945 -"autocmd BufRead,BufNewFile *.h :highlight Comment ctermfg=12 guifg=#504945 -autocmd BufRead,BufNewFile *.c :highlight Comment ctermfg=4 guifg=LightBlue -autocmd BufRead,BufNewFile *.h :highlight Comment ctermfg=4 guifg=LightBlue -autocmd BufRead,BufNewFile *.java :highlight Comment ctermfg=4 guifg=LightBlue - - -" ----- CSS ------" -set omnifunc=syntaxcomplete#CompleteCSS diff --git a/config/nvim-archive/init.vim b/config/nvim-archive/init.vim deleted file mode 100644 index 715dd5e..0000000 --- a/config/nvim-archive/init.vim +++ /dev/null @@ -1,99 +0,0 @@ -" ----- Plugins ----- " -source $HOME/.config/nvim/external_settings/plugins.vim - -" ----- Status Line ----- " -source $HOME/.config/nvim/external_settings/status-line.vim - -" ----- Syntax Highlighting ----- " -source $HOME/.config/nvim/external_settings/syntax-highlighting.vim - -" ----- Mappings ----- " -source $HOME/.config/nvim/external_settings/mappings.vim - - -"set relativenumber - - -"highlight TabChar guifg=#ff0000 guibg=#000000 ctermfg=red ctermbg=black -highlight TabChar guifg=#808080 guibg=none ctermfg=black ctermbg=none - - -" Tab Char render -highlight TabChar guifg=#1A1A1A ctermfg=darkgray - match TabChar /\t/ - set list - set listchars=tab:.. - "highlight TabChar ctermfg=black guifg=000000 - -" ----- Compile on save ----- " - -" DWM -autocmd BufWritePost ~/.config/dwm/config.h !cd ~/.config/dwm/; /bin/smi - -" Slstatus -autocmd BufWritePost ~/.config/slstatus/config.h !cd ~/.config/slstatus/; /bin/smi-slstatus - -" ST -autocmd BufWritePost ~/.config/st/config.h !cd ~/.config/st/; /bin/smi - -" autocmd BufWritePost *.c make - -" Xresources -autocmd BufRead,BufNewFile Xresources,Xdefaults,xresources,xdefaults set filetype=xdefaults -autocmd BufWritePost Xresources,Xdefaults,xresources,xdefaults !xrdb % -autocmd BufWritePost .config !xrdb % - -" LaTeX -autocmd BufWritePost *.tex silent !pdflatex "%:p" >/dev/null 2>&1 -"autocmd BufWritePost *.tex silent! execute '!pdflatex "%:p" >/dev/null 2>&1' | silent! execute '!bibtex "%:r" >/dev/null 2>&1' | silent! execute '!pdflatex "%:p" >/dev/null 2>&1' | silent! execute '!pdflatex "%:p" >/dev/null 2>&1' - - - -" Markdown -map :! pandoc -f markdown % > %<.html - -" Save file when exiting insert mode -autocmd InsertLeave * silent! write - -" Save file as sudo when necessary -cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' edit! - - - -" ----- Formatting ----- " - -" Set text width in C files -autocmd FileType c setlocal textwidth=85 - -" Delete trailing white space -autocmd BufWritePre * let currPos = getpos(".") -autocmd BufWritePre * %s/\s\+$//e -autocmd BufWritePre * %s/\n\+\%$//e -autocmd BufWritePre * cal cursor(currPos[1], currPos[2]) - -au BufNewFile,BufRead neomutt-* setf mail -autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o - - -":set list - - - -" ----- Misc ----- " -set tabstop=4 -set shiftwidth=4 - -:filetype on -filetype plugin on -set noswapfile -set encoding=utf-8 - -" Disable Mouse -set mouse= - -" Clipboard -set clipboard=unnamedplus -vnoremap yy :w !xclip -selection clipboard - -" URL View -:noremap u :wsilent !urlview diff --git a/config/nvim-archive/plugin/Tabline.vim b/config/nvim-archive/plugin/Tabline.vim deleted file mode 100644 index 8f91b72..0000000 --- a/config/nvim-archive/plugin/Tabline.vim +++ /dev/null @@ -1,32 +0,0 @@ -fu! MyTabLabel(n) -let buflist = tabpagebuflist(a:n) -let winnr = tabpagewinnr(a:n) -let string = fnamemodify(bufname(buflist[winnr - 1]), ':t') -return empty(string) ? '[unnamed]' : string -endfu - -fu! MyTabLine() -let s = '' -for i in range(tabpagenr('$')) -" select the highlighting - if i + 1 == tabpagenr() - let s .= '%#TabLineSel#' - else - let s .= '%#TabLine#' - endif - - " set the tab page number (for mouse clicks) - "let s .= '%' . (i + 1) . 'T' - " display tabnumber (for use with gt, etc) - let s .= ' '. (i+1) . ' ' - - " the label is made by MyTabLabel() - let s .= ' %{MyTabLabel(' . (i + 1) . ')} ' - - if i+1 < tabpagenr('$') - let s .= ' |' - endif -endfor -return s -endfu -set tabline=%!MyTabLine() diff --git a/config/nvim-archive/syntax/curses.vim b/config/nvim-archive/syntax/curses.vim deleted file mode 100644 index 4ffbf92..0000000 --- a/config/nvim-archive/syntax/curses.vim +++ /dev/null @@ -1,2 +0,0 @@ -syn keyword cType chtype -syn keyword cType WINDOW diff --git a/config/nvim-archive/syntax/libpng.vim b/config/nvim-archive/syntax/libpng.vim deleted file mode 100644 index e29ada8..0000000 --- a/config/nvim-archive/syntax/libpng.vim +++ /dev/null @@ -1,42 +0,0 @@ -syn keyword cType upng32 -syn keyword cType upng16 - -syn keyword cType png_byte -syn keyword cType png_bytep -syn keyword cType png_bytepp - -syn keyword cType png_uint_16 -syn keyword cType png_uint_16p -syn keyword cType png_uint_32 - -syn keyword cType png_int_16 -syn keyword cType png_int_16p -syn keyword cType png_int_32 -syn keyword cType png_int_32p - -syn keyword cType png_float_32 -syn keyword cType png_float_32p -syn keyword cType png_float_64 -syn keyword cType png_float_64p - -syn keyword cType png_fixed_point -syn keyword cType png_fixed_point_p -syn keyword cType png_fixed_point_p - - -syn keyword cType png_color -syn keyword cType png_colorp -syn keyword cType png_color_8 -syn keyword cType png_color_8p - -syn keyword cType png_info -syn keyword cType png_infop -syn keyword cType png_struct -syn keyword cType png_structp -syn keyword cType png_voidp -syn keyword cType png_error_ptr -syn keyword cType png_rw_ptr -syn keyword cType png_flush_ptr - -syn keyword cType png_read_status_ptr -syn keyword cType png_write_status_ptr diff --git a/config/nvim-archive/syntax/types.vim b/config/nvim-archive/syntax/types.vim deleted file mode 100644 index 714ad87..0000000 --- a/config/nvim-archive/syntax/types.vim +++ /dev/null @@ -1,15 +0,0 @@ -syn keyword cType u8 -syn keyword cType u16 -syn keyword cType u32 -syn keyword cType u64 - -syn keyword cType i8 -syn keyword cType i16 -syn keyword cType i32 -syn keyword cType i64 - -syn keyword cType f32 -syn keyword cType f64 - -syn keyword cType uf32 -syn keyword cType uf64 diff --git a/config/x11/xinitrc b/config/x11/xinitrc new file mode 100644 index 0000000..88a3524 --- /dev/null +++ b/config/x11/xinitrc @@ -0,0 +1,27 @@ +## Network +#mullvad connect + +/bin/dotfiles & +dunst >/dev/null 2>&1 & + +## Mouse +polychromatic-cli --dpi 3400 +polychromatic-cli -d mouse -z logo -o static -p random -c FFFFFF +polychromatit-cli -d mouse -z scroll -o static -p random -c FFFFFF +xdotool mousemove --sync 3800 1050 + +## Keyboard +/bin/keyboard-center & +/usr/bin/openrgb -p ~/.config/OpenRGB/blue.orp +/usr/bin/openrgb -p ~/.config/OpenRGB/main.orp + +## Display +xrandr --output HDMI-A-0 --mode 1920x1080 --rate 164.92 --output DisplayPort-0 --mode 1920x1080 --rate 164.92 +xset r rate 300 100 +xwallpaper --output DisplayPort-0 --center ~/Digital/Pictures/Backgrounds/9.jpg +xwallpaper --output HDMI-A-0 --center ~/Digital/Pictures/Backgrounds/black.jpg +/bin/bday +picom -b --config /dev/null --backend glx + +## WM & Status Bar +exec slstatus & exec ~/.local/share/scripts/dwm-start diff --git a/scripts/stat/internet b/scripts/stat/internet new file mode 100755 index 0000000..a23d2cd --- /dev/null +++ b/scripts/stat/internet @@ -0,0 +1,7 @@ +#!/bin/sh + +if grep -qx 'up' /sys/class/net/wlan0/operstate 2>/dev/null; then + awk '/^\s*w/ { print int($3 * 100 / 70) "%" }' /proc/net/wireless +else + echo "X" +fi diff --git a/scripts/stat/news b/scripts/stat/news new file mode 100755 index 0000000..f96bbea --- /dev/null +++ b/scripts/stat/news @@ -0,0 +1,3 @@ +#!/bin/sh + +ps -e | grep "newsboat" >/dev/null && echo "X" || newsboat -x print-unread | grep -Eo '[0-9]{1,10}' diff --git a/scripts/stat/ram.sh b/scripts/stat/ram.sh new file mode 100755 index 0000000..2ef1be1 --- /dev/null +++ b/scripts/stat/ram.sh @@ -0,0 +1,2 @@ +#!/bin/sh +free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }' diff --git a/scripts/stat/vol-stat b/scripts/stat/vol-stat new file mode 100755 index 0000000..2b15ef6 --- /dev/null +++ b/scripts/stat/vol-stat @@ -0,0 +1,12 @@ +#!/bin/sh + +perc=$(awk -F"[][]" '/Front Left/ { print $2 }' <(amixer sget Master) | tail -n +2) + +case $(awk -F"[][]" '/Front Left/ { print $4 }' <(amixer sget Master) | tail -n +2) in + "on") + echo "$perc/1" + ;; + "off") + echo "$perc/0" + ;; +esac diff --git a/scripts/util/afk.sh b/scripts/util/afk.sh new file mode 100755 index 0000000..a189dd5 --- /dev/null +++ b/scripts/util/afk.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +# TODO: for dunst, we need to create a watchdog process + +# Prevent screen from sleeping or trick websites to think you're present while afk + +dzen_opts="-bg white -fg black -p 1 -x -475 -y 50 -w 475 -h 50" +message="Away from keyboard for ~$1 minutes" + +#[[ $(pgrep dunst) ]] && dunstctl set-paused true +while true; do + for direction in "10 0" "0 10" "-10 0" "0 -10"; do # move around + xdotool mousemove_relative -- $direction + printf '%s\n' "$message" | dzen2 $dzen_opts + done + + xdotool mousemove 2880 540 # someplace near the middle +done + +#[[ $(pgrep dunst) ]] && dunstctl set-paused false +rm "$PID_FILE" diff --git a/scripts/util/arcc b/scripts/util/arcc new file mode 100755 index 0000000..7bb25e7 --- /dev/null +++ b/scripts/util/arcc @@ -0,0 +1,11 @@ +#!/bin/bash + +if df | grep -q aa && df | grep -q arc ; then + sudo umount ~/Digital/Drives/D2 + sudo cryptsetup close /dev/mapper/arc && + + sudo umount ~/Digital/Drives/ED + sudo cryptsetup close /dev/mapper/aa + else + echo "Error: Drive not mounted."; +fi diff --git a/scripts/util/arco b/scripts/util/arco new file mode 100755 index 0000000..2d93661 --- /dev/null +++ b/scripts/util/arco @@ -0,0 +1,11 @@ +#!/bin/bash + +if lsblk | grep -q sdc && lsblk | grep -q sdb ; then + sudo cryptsetup open /dev/sdb arc + sudo mount /dev/mapper/arc ~/Digital/Drives/D2 -o compress-force && + + sudo cryptsetup open /dev/sdc aa + sudo mount /dev/mapper/aa ~/Digital/Drives/ED +else + echo "Error: Drive not mounted."; +fi diff --git a/scripts/util/bday.sh b/scripts/util/bday.sh new file mode 100755 index 0000000..72ac556 --- /dev/null +++ b/scripts/util/bday.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +# I'm forgetful of these things + +today=$(date '+%m/%d') +run_date=$(date '+%Y-%m-%d') +#F_BDAY_RECORDS="bdays.txt" +F_BDAY_RECORDS=~/.local/share/bdays.txt +BDAY_IMG=~/Digital/Pictures/Backgrounds/birthday.png + +last_run=$( + grep '^# last run:' "$F_BDAY_RECORDS" 2>/dev/null \ + | tail -n1 \ + | awk '{ print $4 }' +) +[ "$last_run" = "$run_date" ] && exit 0 + + +BDAY_LIST=$(awk -v td="$today" ' + $0 ~ /^[[:space:]]*#/ { next } # skip comments + NF < 3 { next } # skip malformed + $1 == td { + printf("%s %d\n", $3, $2 + 1) + } +' "$F_BDAY_RECORDS") + +[ -z "$BDAY_LIST" ] && exit 0 + +magick -size 800x600 canvas:black \ + -gravity north -font 'Adwaita-Sans-Bold' -pointsize 72 -fill white \ + -annotate +0+50 'Birthdays Today' \ + -gravity center -font 'Adwaita-Sans' -pointsize 36 \ + -annotate +0+100 "$BDAY_LIST" \ + ~/Digital/Pictures/Backgrounds/birthday.png + +awk -v td="$today" ' + /^# last run:/ { next } # drop old last-run + $0 ~ /^[[:space:]]*#/ { print; next } # preserve other comments + NF < 3 { print; next } # preserve blanks/malformed + $1 == td { $2 = $2 + 1 } # bump age + { print $1, $2, $3 } # print all records +' "$F_BDAY_RECORDS" > bdays.tmp + +echo "# last run: $run_date" >> bdays.tmp +mv bdays.tmp "$F_BDAY_RECORDS" + +xwallpaper --output HDMI-A-0 --center "$BDAY_IMG" diff --git a/scripts/util/bmark.sh b/scripts/util/bmark.sh new file mode 100755 index 0000000..466414c --- /dev/null +++ b/scripts/util/bmark.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +xdotool type $(grep -v '^#' ~/.local/share/bmark/bmarks.txt | dmenu -i -l 30 | cut -d' ' -f1) diff --git a/scripts/util/croc.sh b/scripts/util/croc.sh new file mode 100755 index 0000000..ae7efbd --- /dev/null +++ b/scripts/util/croc.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +nmcli c show --active | grep -q "wg-mullvad" 2>>/dev/null && read -p "VPN is active. Contine? [Y/n] " ON || echo "VPN is off, aborting."; break ; + +case $ON in + [Yy]* ) croc $1; +esac diff --git a/scripts/util/dic b/scripts/util/dic new file mode 100755 index 0000000..58755a8 --- /dev/null +++ b/scripts/util/dic @@ -0,0 +1,5 @@ +#!/bin/sh + +# Online CLI dictionary + +curl -s https://www.wordnik.com/words/"$1" | awk '/id="define/{p=1}p' | awk '/div/{p++}p==2' | sed -e 's/<[^>]*>//g' | sed 's/^ *$//g' | expand --tabs=1 | less diff --git a/scripts/util/dupt.sh b/scripts/util/dupt.sh new file mode 100755 index 0000000..61d2260 --- /dev/null +++ b/scripts/util/dupt.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# open a new terminal in the current working directory + +st -e sh -c 'cd "$PWD" && exec $SHELL' >/dev/null 2>&1 & diff --git a/scripts/util/fmail.sh b/scripts/util/fmail.sh new file mode 100755 index 0000000..e90e91a --- /dev/null +++ b/scripts/util/fmail.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +/usr/local/bin/mailsync && /bin/mbsync -c /home/black/.config/mbsync/config -a diff --git a/scripts/util/git-repo-add.sh b/scripts/util/git-repo-add.sh new file mode 100755 index 0000000..709ead0 --- /dev/null +++ b/scripts/util/git-repo-add.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +# this is to be run locally after remote script has executed + +if [ $# -ne 1 ]; then + echo -e "\nUsage: $0 'new-repo-name'\n" + exit 1 +fi + +if [ -d "$1" ]; then + echo "Directory $1 already exists. Aborting." + exit 1 +fi + + +echo -e "\nCreating new repo $PWD/$1" + +mkdir "$1" && echo "created $PWD/$1" +cd "$1" +git init && echo "initialized $1" +touch README.md && echo "created 'README.md'" +echo "init" > README.md +git add . && echo "staged $1" +git commit -m 'initial commit' && echo "commited repo" + +echo -e "\n\n" +while true; do + echo "Enter remote name and URL (press enter to finish)" + echo -e "eg. origin ssh://git@ssh.github.com:443/user/$1\n" + read -p ": " name url + + if [ -z "$name" ] && [ -z "$url" ]; then + break + fi + + if [ -z "$name" ] || [ -z "$url" ]; then + echo -e "\nYou must provide a name and url" + echo -e "eg. origin ssh://git@ssh.github.com:443/user/$1\n\n" + continue + fi + + git remote add "$name" "$url" + echo "added $name ($url)" +done + +read -p "Push to remote? (y/n): " push_choice + +if [[ "$push_choice" =~ ^[Yy]$ ]]; then + for remote in $(git remote); do + git push "$remote" --all + echo "Pushed to remote: $remote" + done +else + echo "Push aborted." +fi + +cd .. diff --git a/scripts/util/gtab_init.sh b/scripts/util/gtab_init.sh new file mode 100755 index 0000000..99b3cde --- /dev/null +++ b/scripts/util/gtab_init.sh @@ -0,0 +1,25 @@ +pad_id=$(xinput | grep "HID 256c:006d Pad pad" | cut -f 2 | cut -d '=' -f 2) +stylus_id=$(xinput | grep "HID 256c:006d Pen stylus" | cut -f 2 | cut -d '=' -f 2) +#SCREEN="$1" + +# Reset Buttons +xsetwacom set $pad_id Button 1 "key + " +xsetwacom set $pad_id Button 2 "key + " +xsetwacom set $pad_id Button 3 "key + " +xsetwacom set $pad_id Button 8 "key + " +xsetwacom set $pad_id Button 9 "key + " +xsetwacom set $pad_id Button 10 "key + " +xsetwacom set $pad_id Button 11 "key + " +xsetwacom set $pad_id Button 12 "key + " + +# Set the Screen +xsetwacom set $stylus_id MapToOutput "DisplayPort-0" # $SCREEN + +# Set Buttons +xsetwacom --set $pad_id Button 1 "key +ctrl z -ctrl" +xsetwacom --set $pad_id Button 2 "key +ctrl s -ctrl" +xsetwacom --set $pad_id Button 9 "key +ctrl shift p -ctrl" +xsetwacom --set $pad_id Button 10 "key +ctrl shift e -ctrl" +xsetwacom --set $pad_id Button 11 "key +ctrl shift a -ctrl" +#xsetwacom --set $pad_id Button 12 "key +ctrl 7 -ctrl" +xsetwacom --set $pad_id Button 12 "key +ctrl shift r -ctrl" diff --git a/scripts/util/hist.sh b/scripts/util/hist.sh new file mode 100755 index 0000000..16b7717 --- /dev/null +++ b/scripts/util/hist.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +$(cat "$HISTFILE" | fzf) diff --git a/scripts/util/killpid.sh b/scripts/util/killpid.sh new file mode 100755 index 0000000..34a738a --- /dev/null +++ b/scripts/util/killpid.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +ps -aux | fzf | awk '{print $2}' | xargs -r kill diff --git a/scripts/util/manfzf.sh b/scripts/util/manfzf.sh new file mode 100755 index 0000000..aa25d11 --- /dev/null +++ b/scripts/util/manfzf.sh @@ -0,0 +1,13 @@ +# Man without options will use fzf to select a page +function fzf-man(){ + MAN="/usr/bin/man" + if [ -n "$1" ]; then + $MAN "$@" + return $? + else + $MAN -k . | fzf --reverse --preview="echo {1,2} | sed 's/ (/./' | sed -E 's/\)\s*$//' | xargs $MAN" | awk '{print $1 "." $2}' | tr -d '()' | xargs -r $MAN + return $? + fi +} + +fzf-man diff --git a/scripts/util/netsel.sh b/scripts/util/netsel.sh new file mode 100755 index 0000000..b1b2a88 --- /dev/null +++ b/scripts/util/netsel.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +BSSID=$(printf "%s" "$(nmcli d wifi | fzf --height 40%)" | sed 's/\*//' | awk '{print $1}') +#read -sp "Enter password for $BSSID: " PASSWORD + +nmcli d wifi connect $BSSID #password "$PASSWORD" diff --git a/scripts/util/open_1 b/scripts/util/open_1 new file mode 100755 index 0000000..58c8efc --- /dev/null +++ b/scripts/util/open_1 @@ -0,0 +1,5 @@ +#!/bin/sh + +sudo cryptsetup open /dev/sda1 one + +sudo mount /dev/mapper/one ~/Digital/Drives/D1 -o compress-force diff --git a/scripts/util/pgen.sh b/scripts/util/pgen.sh new file mode 100755 index 0000000..f3a7976 --- /dev/null +++ b/scripts/util/pgen.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# A pseudorandom password generator + +LEN=16 # default length +SYMBOLS=true + +gen_psw() { + local len=$1 + local symbols=$2 + local charset="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + + [[ $symbols == true ]] && charset="${charset}!@#$%^&*()_+{}|:<>?" + + psw=$(< /dev/urandom tr -dc "$charset" | head -c "$len") + echo "$psw" +} + +while [[ "$#" -gt 0 ]]; do + case $1 in + -l|--length) LEN="$2"; shift ;; + -ns|--no-symbols) SYMBOLS=false ;; + *) echo "Unknown flag: $1"; exit 1 ;; + esac + shift +done + +PASSWORD=$(gen_psw "$LEN" "$SYMBOLS") +echo "$PASSWORD" + +if command -v xclip &> /dev/null; then + echo -n "$PASSWORD" | xclip -selection clipboard + printf '%s\n' "Password has been copied." | dzen2 -p 1 -bg white -fg black -x -305 -y 50 -w 455 -h 50 +fi diff --git a/scripts/util/sc.sh b/scripts/util/sc.sh new file mode 100755 index 0000000..9557e34 --- /dev/null +++ b/scripts/util/sc.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +maim -s -m 10 | tee ~/Digital/Pictures/Screen\ Shots/$(date +%Y-%m-%d__%S%S).jpg | xclip -selection clipboard -t image/png diff --git a/scripts/util/sp.sh b/scripts/util/sp.sh new file mode 100755 index 0000000..b4ce819 --- /dev/null +++ b/scripts/util/sp.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +# pacman wrapper + +case $* in + -Syu ) sudo pacman -Syu + echo 0 > ~/.local/share/updates.txt ;; + -Syyu ) sudo pacman -Syyu + echo 0 > ~/.local/share/updates.txt ;; + * ) sudo pacman ;; +esac diff --git a/scripts/util/update-web.sh b/scripts/util/update-web.sh new file mode 100755 index 0000000..88292b5 --- /dev/null +++ b/scripts/util/update-web.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +SITE=$(printf "$(ls ~/Dev/website)" | dmenu -i -p "Pick a site to update"); +rsync -uvrp --delete-after ~/Dev/website/"$SITE"/ root@nagy.contact:/var/www/"$SITE"/ +printf "Updating: $SITE\n" | dzen2 -bg white -fg black -p 2 -x -375 -y 50 -w 275 -h 50 diff --git a/scripts/util/vol b/scripts/util/vol new file mode 100755 index 0000000..1aa82c0 --- /dev/null +++ b/scripts/util/vol @@ -0,0 +1,19 @@ +#!/bin/sh + + mute_state=$(amixer -c 3 get 'Master',0 | grep -o '\[on\]') + + if [[ $mute_state == "[on]" ]]; then + amixer -c 3 set 'Master',0 mute + printf '%s\n' "Volume: Off" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50 + amixer -c 3 set 'Headphone',0 mute + else + amixer -c 3 set 'Master',0 unmute + amixer -c 3 set 'Headphone',0 unmute + printf '%s\n' "Volume: On" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50 + fi + + +#amixer -D pulse sset Master toggle +#state=$(amixer -D pulse sget Master | grep 'Front Left:' | sed -E 's/.*\[([a-z]+)\].*/\1/') +#printf 'Volume %s\n' "$state" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50 +# amixer set Master toggle ; a="$(awk -F"[][]" '/Front Left/ { print $4 }' <(amixer sget Master) | tail -n +2)"; printf '%s\n' "Volume: $a" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50 diff --git a/scripts/util/vol+ b/scripts/util/vol+ new file mode 100755 index 0000000..89c8fcb --- /dev/null +++ b/scripts/util/vol+ @@ -0,0 +1,17 @@ +#!/bin/bash + +MASTER_SINK=$(pactl list short sinks | grep "RUNNING" | awk '{print $1}') +if [ $# -eq 0 ] +then + pactl set-sink-volume $MASTER_SINK +5% +else + pactl set-sink-volume $MASTER_SINK +$@% +fi +level=$(pactl list sinks | grep -E "RUNNING|Volume" | grep -A1 "RUNNING" | grep -E -o "[[:digit:]]{1,5}%" | head -n1) +printf '%s\n' "Vol $(echo $level)" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50 + +#amixer -D pulse sset Master -c 3 5%+ +#level=$(amixer -D pulse sget Master -c 3 | sed -n 's/^[^[]*\[\([0-9]*%\)\].*$/\1/p') +#3printf '%s\n' "Vol $(echo $level)" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50 + +#amixer set Master -c 3 5%+ > /dev/null 2>&1 ; a="$()" ; printf '%s\n' "Vol $(amixer -c 3 sget Master | awk -F'[][]' '/Mono: Playback/ {print $2}')" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50 diff --git a/scripts/util/vol- b/scripts/util/vol- new file mode 100755 index 0000000..c2c2f9c --- /dev/null +++ b/scripts/util/vol- @@ -0,0 +1,22 @@ +#!/bin/bash + + +MASTER_SINK=$(pactl list short sinks | grep "RUNNING" | awk '{print $1}') +if [ $# -eq 0 ] +then + pactl set-sink-volume $MASTER_SINK -5% +else + pactl set-sink-volume $MASTER_SINK -$@% +fi + +level=$(pactl list sinks | grep -E "RUNNING|Volume" | grep -A1 "RUNNING" | grep -E -o "[[:digit:]]{1,5}%" | head -n1) +printf '%s\n' "Vol $(echo $level)" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50 + + +#amixer -D pulse sset Master -c 3 5%- + +#level=$(amixer -D pulse sget Master -c 3 | grep 'Front Left:' | sed -E 's/.*\[([0-9]+%)\].*/\1/') +#level=$(amixer -D pulse sget Master -c 3 | sed -n 's/^[^[]*\[\([0-9]*%\)\].*$/\1/p') +#printf '%s\n' "Vol $(echo $level)" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50 + +#amixer set Master -c 2 5%- > /dev/null 2>&1 ; a="$()" ; printf '%s\n' "Vol $(amixer -c 2 sget Master | awk -F'[][]' '/Mono: Playback/ {print $2}')" | dzen2 -p 1 -bg white -fg black -x -375 -y 50 -w 275 -h 50 diff --git a/xinitrc b/xinitrc deleted file mode 100644 index 88a3524..0000000 --- a/xinitrc +++ /dev/null @@ -1,27 +0,0 @@ -## Network -#mullvad connect - -/bin/dotfiles & -dunst >/dev/null 2>&1 & - -## Mouse -polychromatic-cli --dpi 3400 -polychromatic-cli -d mouse -z logo -o static -p random -c FFFFFF -polychromatit-cli -d mouse -z scroll -o static -p random -c FFFFFF -xdotool mousemove --sync 3800 1050 - -## Keyboard -/bin/keyboard-center & -/usr/bin/openrgb -p ~/.config/OpenRGB/blue.orp -/usr/bin/openrgb -p ~/.config/OpenRGB/main.orp - -## Display -xrandr --output HDMI-A-0 --mode 1920x1080 --rate 164.92 --output DisplayPort-0 --mode 1920x1080 --rate 164.92 -xset r rate 300 100 -xwallpaper --output DisplayPort-0 --center ~/Digital/Pictures/Backgrounds/9.jpg -xwallpaper --output HDMI-A-0 --center ~/Digital/Pictures/Backgrounds/black.jpg -/bin/bday -picom -b --config /dev/null --backend glx - -## WM & Status Bar -exec slstatus & exec ~/.local/share/scripts/dwm-start -- cgit v1.2.3