aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorben <ben@nagy.contact>2025-05-03 14:41:13 -0700
committerben <ben@nagy.contact>2025-05-03 14:41:13 -0700
commitea687c769521b3139c8547a2d4a839842fa7b0fe (patch)
treef4805588bb59ca15e96d8b71124c4aafd5dd40cb
parent16725b034eeb7122f4174f08221ab7f07b6abbf1 (diff)
added scripts
-rw-r--r--.gitignore1
-rw-r--r--config/nvim-archive/colors/PaperColor.vim2367
-rw-r--r--config/nvim-archive/external_settings/mappings.vim97
-rw-r--r--config/nvim-archive/external_settings/plugins.vim536
-rw-r--r--config/nvim-archive/external_settings/status-line.vim31
-rw-r--r--config/nvim-archive/external_settings/syntax-highlighting.vim66
-rw-r--r--config/nvim-archive/init.vim99
-rw-r--r--config/nvim-archive/plugin/Tabline.vim32
-rw-r--r--config/nvim-archive/syntax/curses.vim2
-rw-r--r--config/nvim-archive/syntax/libpng.vim42
-rw-r--r--config/nvim-archive/syntax/types.vim15
-rw-r--r--config/x11/xinitrc (renamed from xinitrc)0
-rwxr-xr-xscripts/stat/internet7
-rwxr-xr-xscripts/stat/news3
-rwxr-xr-xscripts/stat/ram.sh2
-rwxr-xr-xscripts/stat/vol-stat12
-rwxr-xr-xscripts/util/afk.sh21
-rwxr-xr-xscripts/util/arcc11
-rwxr-xr-xscripts/util/arco11
-rwxr-xr-xscripts/util/bday.sh47
-rwxr-xr-xscripts/util/bmark.sh3
-rwxr-xr-xscripts/util/croc.sh7
-rwxr-xr-xscripts/util/dic5
-rwxr-xr-xscripts/util/dupt.sh5
-rwxr-xr-xscripts/util/fmail.sh3
-rwxr-xr-xscripts/util/git-repo-add.sh57
-rwxr-xr-xscripts/util/gtab_init.sh25
-rwxr-xr-xscripts/util/hist.sh3
-rwxr-xr-xscripts/util/killpid.sh3
-rwxr-xr-xscripts/util/manfzf.sh13
-rwxr-xr-xscripts/util/netsel.sh6
-rwxr-xr-xscripts/util/open_15
-rwxr-xr-xscripts/util/pgen.sh34
-rwxr-xr-xscripts/util/sc.sh3
-rwxr-xr-xscripts/util/sp.sh11
-rwxr-xr-xscripts/util/update-web.sh5
-rwxr-xr-xscripts/util/vol19
-rwxr-xr-xscripts/util/vol+17
-rwxr-xr-xscripts/util/vol-22
39 files changed, 361 insertions, 3287 deletions
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 <NLKNguyen@MSN.com>
-" 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 <me@Nikyle.com>',
- \ '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 <dictionary> collection of all theme palettes
-"
-" Require Optionally:
-" {g:PaperColor_Theme_[s:theme_name]} <dictionary> user custom theme palette
-" g:PaperColor_Theme_Options <dictionary> user options
-"
-" Expose:
-" s:theme_name <string> the name of the selected theme
-" s:selected_theme <dictionary> the selected theme object (contains palette, etc.)
-" s:selected_variant <string> 'light' or 'dark'
-" s:palette <dictionary> the palette of selected theme
-" s:options <dictionary> 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 <dictionary> user options
-"
-" Require Optionally:
-" g:PaperColor_Theme_Options <dictionary> user option config in .vimrc
-"
-" Expose:
-" s:langOpt_[LANGUAGE]__[OPTION] <any> 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 [<GUI COLOR/HEX >, <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: <C-W><C-V>
- 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 <C-X><C-N> 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 <tab><tab>
- 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 <M-n> :tabnew<space>
-nnoremap <silent><C-n> :tabclose<cr>
-noremap <M-Tab> :<C-U>tabnext<CR>
-inoremap <M-Tab> <C-\><C-N>:tabnext<CR>
-cnoremap <M-Tab> <C-C>:tabnext<CR>
-noremap <S-Tab> :<C-U>:tabprevious<CR>
-inoremap <S-Tab> <C-\><C-N>:tabprevious<CR>
-cnoremap <S-Tab> <C-C>:tabprevious<CR>
-
-" unmap
-command! W <CR>
-command! Q :wq!
-
-
-" NvimTRee
-noremap <leader>n :NvimTreeToggle<CR>
-
-" -- Comments -- "
-vmap C <Plug>ToggleCommaround
-vmap <leader>c <Plug>ToggleCommaround
-
-" Code Block Scope
-nnoremap <leader>es :IBLToggle<CR>
-
-" -- Todo Comments search -- "
-nnoremap <leader>cf :TodoTelescope<CR>
-
-" Delete entire word with CTRL-BS or CTRL-H
-noremap! <C-BS> <C-w>
-noremap! <C-h> <C-w>
-inoremap <C-BS> <C-\><C-o>db
-
-" -- Coc -- "
-nnoremap <leader>ce :CocEnable<CR>
-nnoremap <leader>cd :CocDisable<CR>
-
-" -- CSS -- "
-au FileType css inoremap { {}<Left><CR><Up><Esc>A<Cr>
-au FileType css map * I/*<Esc>A*/
-
-" Don't leave block indentation
-vmap < <gv
-vmap > >gv
-
-" Compilation
-map <leader>m :!make<CR>
-
-
-" List all URLS in a file
-nnoremap <silent> <leader>u :Urlview<CR>
-
-" FZF "
-nnoremap <leader>f :FZF<CR>
-
-" Code Search (silver searcher) "
-nnoremap <leader>cs :Ag<CR>
-
-" 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 <leader>cs :call ToggleAg()<CR>
-"
-
-
-
-" Enable Spell Check
-map <silent><leader>s :setlocal spell! spelllang=en_us<CR>
-
-map <leader>p :!opout <c-r>%<CR><CR>
-
-" Undo Tree
-nnoremap <F5> :UndotreeToggle<CR>
-
-" NERD TREE
- nnoremap <F4> :NERDTreeToggle<CR>
-
-" Telescope
- " Find files using Telescope command-line sugar.
- nnoremap <leader>ff <cmd>Telescope find_files<cr>
- nnoremap <leader>fg <cmd>Telescope live_grep<cr>
- nnoremap <leader>fb <cmd>Telescope buffers<cr>
- nnoremap <leader>fh <cmd>Telescope help_tags<cr>
-
- " Using Lua functions
- nnoremap <leader>ff <cmd>lua require('telescope.builtin').find_files()<cr>
- nnoremap <leader>fg <cmd>lua require('telescope.builtin').live_grep()<cr>
- nnoremap <leader>fb <cmd>lua require('telescope.builtin').buffers()<cr>
- nnoremap <leader>fh <cmd>lua require('telescope.builtin').help_tags()<cr>
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 = '<leader>;',
-
- -- 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 = '<leader><leader>+',
-
- -- keymap to decrease the window width
- decrease_width_keymap = '<leader><leader>-',
-
- -- keymap to increase the window height
- increase_height_keymap = '<leader>+',
-
- -- keymap to decrease the window height
- decrease_height_keymap = '<leader>-',
-
- terminals = {
- -- keymaps to open nth terminal
- {keymap = '<leader>1'},
- {keymap = '<leader>2'},
- {keymap = '<leader>3'},
- {keymap = '<leader>4'},
- {keymap = '<leader>5'},
- },
-
-})
-EOF
-
-tnoremap <Esc> <C-\><C-n>
-" <----- 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 <leader>t :FloatermNew<enter>
-nmap <leader>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 <leader>v <cmd>CHADopen<cr>
-" --- END Chad Tree--- "
-
-" --- NERD Tree --- "
-nnoremap <leader>n :NERDTreeFocus<CR>
-nnoremap <C-n> :NERDTree<CR>
-nnoremap <C-t> :NERDTreeToggle<CR>
-nnoremap <C-f> :NERDTreeFind<CR>
-
-" 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 <tab>' to make sure tab is not mapped by
-" other plugin before putting this into your config
-inoremap <silent><expr> <TAB>
- \ coc#pum#visible() ? coc#pum#next(1) :
- \ CheckBackspace() ? "\<Tab>" :
- \ coc#refresh()
-inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
-
-" Make <CR> to accept selected completion item or notify coc.nvim to format
-" <C-g>u breaks current undo, please make your own choice
-inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm()
- \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
-
-function! CheckBackspace() abort
- let col = col('.') - 1
- return !col || getline('.')[col - 1] =~# '\s'
-endfunction
-
-" Use <c-space> to trigger completion
-if has('nvim')
- inoremap <silent><expr> <c-space> coc#refresh()
-else
- inoremap <silent><expr> <c-@> coc#refresh()
-endif
-
-" Use `[g` and `]g` to navigate diagnostics
-" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list
-nmap <silent> [g <Plug>(coc-diagnostic-prev)
-nmap <silent> ]g <Plug>(coc-diagnostic-next)
-
-" GoTo code navigation
-nmap <silent> gd <Plug>(coc-definition)
-nmap <silent> gy <Plug>(coc-type-definition)
-nmap <silent> gi <Plug>(coc-implementation)
-nmap <silent> gr <Plug>(coc-references)
-
-" Use K to show documentation in preview window
-nnoremap <silent> K :call ShowDocumentation()<CR>
-
-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 <leader>rn <Plug>(coc-rename)
-
-" Formatting selected code
-xmap <leader>f <Plug>(coc-format-selected)
-nmap <leader>f <Plug>(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: `<leader>aap` for current paragraph
-xmap <leader>a <Plug>(coc-codeaction-selected)
-nmap <leader>a <Plug>(coc-codeaction-selected)
-
-" Remap keys for applying code actions at the cursor position
-nmap <leader>ac <Plug>(coc-codeaction-cursor)
-" Remap keys for apply code actions affect whole buffer
-nmap <leader>as <Plug>(coc-codeaction-source)
-" Apply the most preferred quickfix action to fix diagnostic on the current line
-nmap <leader>qf <Plug>(coc-fix-current)
-
-" Remap keys for applying refactor code actions
-nmap <silent> <leader>re <Plug>(coc-codeaction-refactor)
-xmap <silent> <leader>r <Plug>(coc-codeaction-refactor-selected)
-nmap <silent> <leader>r <Plug>(coc-codeaction-refactor-selected)
-
-" Run the Code Lens action on the current line
-nmap <leader>cl <Plug>(coc-codelens-action)
-
-" Map function and class text objects
-" NOTE: Requires 'textDocument.documentSymbol' support from the language server
-xmap if <Plug>(coc-funcobj-i)
-omap if <Plug>(coc-funcobj-i)
-xmap af <Plug>(coc-funcobj-a)
-omap af <Plug>(coc-funcobj-a)
-xmap ic <Plug>(coc-classobj-i)
-omap ic <Plug>(coc-classobj-i)
-xmap ac <Plug>(coc-classobj-a)
-omap ac <Plug>(coc-classobj-a)
-
-" Remap <C-f> and <C-b> to scroll float windows/popups
-if has('nvim-0.4.0') || has('patch-8.2.0750')
- nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
- nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
- inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
- inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
- vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
- vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
-endif
-
-" Use CTRL-S for selections ranges
-" Requires 'textDocument/selectionRange' support of language server
-nmap <silent> <C-s> <Plug>(coc-range-select)
-xmap <silent> <C-s> <Plug>(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', <f-args>)
-
-" 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 <silent><nowait> <space>a :<C-u>CocList diagnostics<cr>
-" Manage extensions
-nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr>
-" Show commands
-nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr>
-" Find symbol of current document
-nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr>
-" Search workspace symbols
-nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr>
-" Do default action for next item
-nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR>
-" Do default action for previous item
-nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR>
-" Resume latest coc list
-nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR>
-
-
-
-" - 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 <F8> :! pandoc -f markdown % > %<.html<CR><ENTER>
-
-" 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' <bar> 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<CR><CR>
-
-" URL View
-:noremap <leader>u :w<Home>silent <End> !urlview<CR>
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 <count>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/xinitrc b/config/x11/xinitrc
index 88a3524..88a3524 100644
--- a/xinitrc
+++ b/config/x11/xinitrc
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