dotfiles

Cross platform dotfiles for linux, mac and windows

commit 8f5b587cb50c452999e831308e0cb70c2740dbe3
parent adf05026cf9bc9c71937d893e73ce35d88a50f67
Author: Bharatvaj <bharatvaj@yahoo.com>
Date: Fri, 30 Sep 2022 20:53:44 +0530

Fix for Tmux status-pane color mismatch

...when using dark and white terminals simultaneosly.

Add some alias for vim, nvim and git

Use echo `insult` only when sl is not available.

Add sane colors for ls (linux and BSD)

VIM
---
Merge vim/keybindings/* into single keybindings.vim. Easier to manage and loads quicker.

Configuration is now pro space. As I keep messing up my company's codebase. I will explicity enable tabs when working on personal projects

Merge common plugins in vim/pack and neovim/pack and merge them under .local/share/vimcommon/pack

Add toggles for changing background.

Fine tune searching in hyper-red.vim. Handle white background properly.
Use dark by default in vimrc.

Disable nospell for speed gains

Remove fuzzy finder plugins user text objects plugins. I've never used them much.

Experimental
------------
Add ChooseFile for vim with dmenu-mac
Add of - open file - works only non mac
Add rtp for Himalaya - Mutt is hard on windows
69 files changed, 332 insertions(+), 280 deletions(-)
M
.config/alacritty/alacritty.yml
|
2
+-
M
.config/alacritty/font.yml
|
16
+++++++++-------
R
.config/alacritty/hyper.yml -> .config/alacritty/hyper-dark.yml
|
0
A
.config/alacritty/hyper-light.yml
|
25
+++++++++++++++++++++++++
D
.config/alacritty/theme.yml
|
2
--
M
.config/git/config
|
1
+
M
.config/nvim/init.lua
|
7
+++++++
M
.config/nvim/lua/keybindings.lua
|
22
++++++++++++++--------
D
.config/nvim/vim-vinegar
|
1
-
M
.config/sh/aliases
|
8
+++++---
M
.config/sh/functions
|
11
+++++++----
M
.config/tmux/tmux.conf
|
17
+++++++++--------
M
.config/vim/gvimrc
|
2
+-
M
.config/vim/hyper-red.vim
|
56
+++++++++++++++++++++++++++++++++++---------------------
A
.config/vim/keybindings.vim
|
117
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D
.config/vim/keybindings/keybindings.vim
|
81
-------------------------------------------------------------------------------
D
.config/vim/keybindings/markdown.vim
|
19
-------------------
D
.config/vim/keybindings/rust.vim
|
1
-
D
.config/vim/keybindings/vimspector.vim
|
25
-------------------------
M
.config/vim/plugin/plugin.vim
|
45
+++++++++++++++++++++++++++++++++++++++++++++
M
.config/vim/vimrc
|
23
++++++++++++++++++-----
M
.gitmodules
|
82
++++++++++++++++++++-----------------------------------------------------------
D
.local/share/nvim/pack/development/opt/vimspector
|
1
-
D
.local/share/nvim/pack/general/opt/vim-fugitive
|
1
-
D
.local/share/nvim/pack/general/start/Command-T
|
1
-
D
.local/share/nvim/pack/general/start/plenary.nvim
|
1
-
D
.local/share/nvim/pack/general/start/telescope.nvim
|
1
-
D
.local/share/nvim/pack/general/start/vim-dispatch
|
1
-
D
.local/share/nvim/pack/general/start/vim-tmux-navigator
|
1
-
D
.local/share/nvim/pack/general/start/vim-unimpaired
|
1
-
D
.local/share/nvim/pack/general/start/vim-vinegar
|
1
-
D
.local/share/nvim/pack/themes/start/gruvbox-material
|
1
-
D
.local/share/vim/pack/development/opt/emmet-vim
|
1
-
D
.local/share/vim/pack/development/opt/rust.vim
|
1
-
D
.local/share/vim/pack/development/opt/vim-cmake
|
1
-
D
.local/share/vim/pack/development/opt/vim-msbuild
|
1
-
D
.local/share/vim/pack/general/opt/editorconfig-vim
|
1
-
D
.local/share/vim/pack/general/opt/vim-codepainter
|
1
-
D
.local/share/vim/pack/general/opt/vim-easymotion
|
1
-
D
.local/share/vim/pack/general/opt/vim-fugitive
|
1
-
A
.local/share/vim/pack/general/opt/vim-maildir
|
1
+
D
.local/share/vim/pack/general/opt/vim-ninja-feet
|
1
-
D
.local/share/vim/pack/general/opt/vim-surround
|
1
-
D
.local/share/vim/pack/general/opt/vim-textobj-user
|
1
-
D
.local/share/vim/pack/general/opt/vim-textobj-xmlattr
|
1
-
D
.local/share/vim/pack/general/start/ctrlp.vim
|
1
-
D
.local/share/vim/pack/general/start/mru
|
1
-
D
.local/share/vim/pack/general/start/vim-checklist
|
1
-
D
.local/share/vim/pack/general/start/vim-dispatch
|
1
-
D
.local/share/vim/pack/general/start/vim-repeat
|
1
-
D
.local/share/vim/pack/general/start/vim-tmux-navigator
|
1
-
D
.local/share/vim/pack/general/start/vim-unimpaired
|
1
-
D
.local/share/vim/pack/themes/start/gruvbox-material
|
1
-
A
.local/share/vimcommon/pack/dev/opt/vim-cmake
|
1
+
A
.local/share/vimcommon/pack/dev/opt/vim-msbuild
|
1
+
A
.local/share/vimcommon/pack/dev/opt/vimspector
|
1
+
A
.local/share/vimcommon/pack/general/opt/birck.vim
|
1
+
A
.local/share/vimcommon/pack/general/opt/mru
|
1
+
A
.local/share/vimcommon/pack/general/opt/vim-fugitive
|
1
+
A
.local/share/vimcommon/pack/general/opt/vim-ninja-feet
|
1
+
A
.local/share/vimcommon/pack/general/opt/vim-tmux-navigator
|
1
+
A
.local/share/vimcommon/pack/general/opt/vim-unimpaired
|
1
+
A
.local/share/vimcommon/pack/general/start/vim-checklist
|
1
+
A
.local/share/vimcommon/pack/general/start/vim-dispatch
|
1
+
A
.local/share/vimcommon/pack/general/start/vim-repeat
|
1
+
A
.local/share/vimcommon/pack/general/start/vim-surround
|
1
+
A
.local/share/vimcommon/pack/general/start/vim-vinegar
|
1
+
A
.local/share/vimcommon/pack/themes/opt/gruvbox-material
|
1
+
M
.profile
|
3
++-
diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml
@@ -2,7 +2,7 @@ mouse:
   hide_when_typing: true
 
 import:
-  - ~/.config/alacritty/theme.yml
+  - ~/.config/alacritty/hyper-dark.yml
   - ~/.config/alacritty/font.yml
   - ~/.config/alacritty/unix.yml
   - ~/.config/alacritty/windows.yml
diff --git a/.config/alacritty/font.yml b/.config/alacritty/font.yml
@@ -1,16 +1,18 @@
 font:
+  size: 12
   normal:
-    family: Fira Mono
-    style: Regular
+    family: Bitstream Vera Sans Mono
+    style: Roman
 
   bold:
-    family: Fira Mono
+    family: Bitstream Vera Sans Mono
+
     style: Bold
 
   italic:
-    family: Fira Mono
-    style: Regular Italic
+    family: Bitstream Vera Sans Mono
+    style: Oblique
 
   bold_italic:
-    family: Fira Mono
-    style: Bold Italic
+    family: Bitstream Vera Sans Mono
+    style: Bold Oblique
diff --git a/.config/alacritty/hyper.yml b/.config/alacritty/hyper-dark.yml
diff --git a/.config/alacritty/hyper-light.yml b/.config/alacritty/hyper-light.yml
@@ -0,0 +1,25 @@
+colors:
+  primary:
+    background: '0xffffff'
+    foreground: '0x000000'
+
+  normal:
+    black:   '0x000000'
+    red:     '0xff0000'
+    green:   '0xff00ff'
+    yellow:  '0xaaaa10'
+    blue:    '0x0000ff'
+    magenta: '0xa00095'
+    cyan:    '0x3e953a'
+    white:   '0xa5a5a5'
+
+  bright:
+    black:   '0x000000'
+    red:     '0xff0000'
+    green:   '0x3e953a'
+    yellow:  '0xcccc10'
+    blue:    '0x0000aa'
+    magenta: '0xa00095'
+    cyan:    '0x3e953a'
+    white:   '0xffffff'
+
diff --git a/.config/alacritty/theme.yml b/.config/alacritty/theme.yml
@@ -1,2 +0,0 @@
-import:
-  - ~/.config/alacritty/hyper.yml
diff --git a/.config/git/config b/.config/git/config
@@ -26,6 +26,7 @@
 	st = status
 	suir = submodule update --init --recursive
 	wt = worktree
+	wta = worktree add
 
 [difftool]
 	prompt = false
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
@@ -9,6 +9,7 @@ require("keybindings")
 
 
 set.tabstop=4
+set.shiftwidth=4
 set.number=true
 set.laststatus=1
 set.expandtab=false

@@ -27,8 +28,14 @@ g.netrw_liststyle = 3
 require('nvim_comment').setup()
 
 vim.cmd([[
+set packpath^=$XDG_DATA_HOME/vimcommon
 function! s:load_plugins(t) abort
+	packadd vim-tmux-navigator
+	packadd mru
+	packadd vim-surround
+	packadd vim-ninja-feet
 	packadd vim-fugitive
+	packadd gruvbox-material
 endfunction
 
 augroup user_cmds
diff --git a/.config/nvim/lua/keybindings.lua b/.config/nvim/lua/keybindings.lua
@@ -41,14 +41,13 @@ end
 local map = require("utils").map
 -- general
 map("n", "<leader>co", ":copen<cr>", { silent = false })
-map("n", "<leader>cs", ":cdo<space>s/", { silent = false })
+map("n", "<leader>cd", ":cdo<space>s/", { silent = false })
 map("n", "<leader>ec", ":edit $XDG_CONFIG_HOME/nvim/init.lua<cr>", { silent = true })
 map("n", "<leader>ek", ":edit $XDG_CONFIG_HOME/nvim/lua/keybindings.lua<cr>", { silent = false })
 map("n", "<leader>et", ":set expandtab<cr>", { silent = false })
-map("n", "<leader>ff", ":find *", { silent = false })
 map("n", "<leader>lb", ":ls<CR>:b<space>", { silent = false })
 map("n", "<leader>lo", ":lopen<cr>", { silent = false })
-map("n", "<leader>ls", ":ldo<space>s/", { silent = false })
+map("n", "<leader>ld", ":ldo<space>s/", { silent = false })
 map("n", "<leader>p", ":Rg<cr>", { silent = false })
 map("n", "<leader>sc", ":source $XDG_CONFIG_HOME/nvim/init.lua<cr>", { silent = false })
 map("n", "<leader>so", ":source %<cr>", { silent = false })

@@ -93,9 +92,14 @@ map("n", "<leader>dcbp", "<Plug>VimspectorToggleConditionalBreakpoint", { silent
 
 map("n", "<leader>bb", ":lua save_and_build()<CR>", { silent = false })
 
+
+-- development
+map("n", "<leader>oc", ":grepadd /:: %", { silent = false })
+map("n", "<leader>oh", ":grepadd /:: %", { silent = false })
+
 -- quick navigation
 -- telscope.nvim
-map("n", "<leader><leader>", ":Telescope find_files<cr>", { silent = true })
+map("n", "<leader>ff", ":b *", { silent = false })
 
 -- file helpers
 map("n", "<leader>fmv", "lua file_mv_helper()",  { silent = true })

@@ -119,10 +123,7 @@ map("n", "<leader>h2", ":lua doc_quick_underline(2)<cr>", { silent = true });
 
 map("n", "<leader>ct", ":ChecklistToggleCheckbox<cr>", { silent = true });
 map("n", "<leader>ce", ":ChecklistEnableCheckbox<cr>", { silent = true });
-map("n", "<leader>cd", ":ChecklistDisableCheckbox<cr>", { silent = true });
-map("n", "<leader>ct", ":ChecklistToggleCheckbox<cr>", { silent = true });
-map("n", "<leader>ce", ":ChecklistEnableCheckbox<cr>", { silent = true });
-map("n", "<leader>cd", ":ChecklistDisableCheckbox<cr>", { silent = true });
+-- map("n", "<leader>cd", ":ChecklistDisableCheckbox<cr>", { silent = true });
 
 -- vim.g.checklist_filetypes:append('adoc', 'md')
 

@@ -136,3 +137,8 @@ map("n", "<leader>sd", ":lua vim.diagnostic.open_float()<cr>", { silent = false 
 
 -- netrw keybindings
 map("n", "<leader>sf", ":Ex<cr>", { silent = false });
+
+-- nb
+-- TODO open a fuzzy finder quickly. Even better use fuzzy finder without chdir
+map("n", "<leader>nb", ":chdir $NB_PATH<cr>", { silent = false });
+
diff --git a/.config/nvim/vim-vinegar b/.config/nvim/vim-vinegar
@@ -1 +0,0 @@
-Subproject commit bb1bcddf43cfebe05eb565a84ab069b357d0b3d6
diff --git a/.config/sh/aliases b/.config/sh/aliases
@@ -10,10 +10,10 @@ alias wget='wget --hsts-file="$XDG_CACHE_HOME/wget-hsts"'
 # [misc]
 alias doas=sudo
 
-# [ls_conditioning]
+# [baseutils_conditioning]
 thwart sl && thwart ld && thwart lls &&  thwart sls && thwart lsl && thwart lss && thwart kls
-# [cd_conditioning]
 thwart cdd
+thwart mr
 
 # [ip]
 there ifconfig && alias lip="ifconfig | grep -w inet  | cut -d ' ' -f2"

@@ -27,6 +27,8 @@ alias n='cd_and_ls'
 alias cf="quickopen cd d"
 alias ef="quickopen ${EDITOR} f"
 alias vf="quickopen ${VISUAL} f"
+# TODO make it work for linux
+alias of="quickopen open f"
 # This won't work with dash
 # dash want's alias \-
 # alias -- -='cd -'

@@ -40,5 +42,5 @@ alias f='find . -name '
 alias g='git'
 alias g=git
 alias l=lfcd
-alias v='VIMINIT="" nvim'
+alias v="VIMINIT='' nvim"
 alias x=extract_archive
diff --git a/.config/sh/functions b/.config/sh/functions
@@ -24,8 +24,12 @@ md() {
 
 # TODO make it non-interruptable
 insult() {
-	printf "You are a noob for typing '$1'\n"
-	sleep 5
+	if type sl 1>/dev/null; then
+		sl
+	else
+		printf "You are a noob for typing '$1'\n"
+		sleep 5
+	fi
 }
 
 thwart() {

@@ -43,6 +47,5 @@ quickopen() {
 }
 
 cd_and_ls() {
-		cd $*
-		ls
+		cd $* && ls
 }
diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf
@@ -7,8 +7,8 @@ set -g set-titles on
 # Status bar
 set -g status-position top
 set -g status-justify left
-set -g status-right "#(tmux-now-playing)"
-set -g status-keys vi
+# set -g status-right "#(tmux-now-playing)"
+set -g status-right ""
 bind v split-window -h -c "#{pane_current_path}"
 bind s split-window -v -c "#{pane_current_path}"
 

@@ -41,14 +41,15 @@ bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "pb
 bind P paste-buffer
 
 # Themes
-set -g status-bg black
-set -g status-fg white
-set -g window-status-current-style "bg=black,fg=red,bold"
-set -g window-status-last-style "bg=black,fg=cyan"
-set -g pane-active-border-style "fg=red"
+set-option -g status-style "bg=default"
+set -g status-fg default
+set -g window-status-current-style "fg=red,bold"
+set -g window-status-last-style "fg=cyan"
+set -g pane-active-border-style "bg=default,fg=red"
 set -g pane-border-lines single
 set -g pane-border-status off
-set -g popup-border-style "bg=black,fg=red"
+set -g pane-border-indicators colour
+set -g popup-border-style "bg=default,fg=grey"
 set -g popup-border-lines single
 
 # Smart pane switching with awareness of Vim splits.
diff --git a/.config/vim/gvimrc b/.config/vim/gvimrc
@@ -1,2 +1,2 @@
-set guifont=Fira\ Code\ SemiBold
+set guifont=Bitstream\ Vera\ Sans\ Mono
 set guioptions=
diff --git a/.config/vim/hyper-red.vim b/.config/vim/hyper-red.vim
@@ -4,31 +4,45 @@
 " Probably use a autogroup for handling tCo count change
 " Do it in lua
 if &background == "dark"
-	hi StatusLine ctermfg=Black ctermbg=LightBlue guifg=black guibg=white
+    hi LineNr guibg=NONE ctermbg=NONE guifg=DarkGray ctermfg=DarkGray
+    hi CursorLineNr guibg=NONE ctermbg=NONE guifg=White ctermfg=White
+	hi StatusLine cterm=bold gui=bold ctermfg=White ctermbg=Black guifg=White guibg=Black
 	hi StatusLineNC guibg=lightgray ctermbg=lightgray guifg=black ctermfg=black
+	hi Statement ctermfg=Red guifg=Red
+	hi Constant ctermfg=LightGreen guifg=LightGreen
+	hi String ctermfg=LightBlue guifg=LightBlue
+	hi Special cterm=bold ctermfg=LightGreen guifg=LightYellow
+	hi Identifier ctermfg=White guifg=White
+	hi IncSearch ctermbg=Black ctermfg=Yellow guibg=Black guifg=Yellow
+	hi Search ctermbg=LightBlue ctermfg=Black guibg=Blue guifg=White
+	hi Todo cterm=underline ctermbg=NONE ctermfg=LightYellow guibg=NONE guifg=LightYellow
+	hi Comment ctermfg=DarkGray guifg=DarkGray
+	hi Visual ctermbg=White ctermfg=Black guibg=White guifg=Black
+	hi Type ctermfg=LightGray guifg=LightGray
+	hi PreProc ctermfg=DarkGray guifg=DarkGray
+	hi MatchParen ctermbg=NONE cterm=underline ctermfg=LightMagenta
 else
-	hi StatusLine guibg=darkblue ctermbg=darkblue guifg=white ctermfg=white
-	hi StatusLineNC guibg=darkgray ctermbg=darkgray guifg=white ctermfg=white
+	hi LineNr guibg=NONE ctermbg=NONE guifg=LightGray ctermfg=LightGray
+	hi StatusLine cterm=bold gui=bold guibg=NONE ctermbg=NONE guifg=Black ctermfg=Black
+	hi StatusLineNC guibg=DarkGray ctermbg=DarkGray guifg=White ctermfg=White
+	hi Statement ctermfg=Red guifg=Red
+	hi Constant ctermfg=Green guifg=Green
+	hi String ctermfg=DarkBlue guifg=DarkBlue
+	hi Special cterm=bold ctermfg=DarkGreen guifg=DarkGreen
+	hi Identifier ctermfg=Black guifg=Black
+	hi IncSearch ctermbg=White ctermfg=Yellow guibg=White guifg=Yellow
+	hi Search ctermbg=Blue ctermfg=White guibg=Blue guifg=White
+	hi Todo cterm=underline,bold ctermbg=NONE ctermfg=Yellow guibg=NONE guifg=Yellow
+	hi Comment ctermfg=LightGray guifg=LightGray
+	hi Visual ctermbg=Black ctermfg=white guibg=Black guifg=white
+	hi Type ctermfg=DarkGray guifg=DarkGray
+	hi PreProc ctermfg=LightGray guifg=LightGray
+	hi MatchParen guibg=NONE ctermbg=NONE gui=underline cterm=underline guifg=DarkMagenta ctermfg=DarkMagenta
 endif
-hi LineNr guibg=NONE ctermbg=NONE guifg=DarkGray ctermfg=DarkGray
 set fillchars=vert:\│
 hi VertSplit term=NONE cterm=NONE gui=NONE
 hi SignColumn ctermbg=NONE guibg=NONE
-if empty($DISPLAY)
-hi Comment ctermfg=NONE
-else
-hi Comment ctermfg=DarkGray guifg=DarkGray
-hi Visual ctermbg=DarkGray ctermfg=white guibg=DarkGray guifg=white
-hi Type ctermfg=LightGray guifg=LightGray
-hi PreProc ctermfg=LightGray guifg=LightGray
-endif
 
-hi Statement ctermfg=Red guifg=LightGreen
-hi Constant ctermfg=Red guifg=Red
-hi String cterm=bold ctermfg=NONE guifg=LightRed
-hi Special cterm=bold ctermfg=LightBlue guifg=LightYellow
-hi Identifier ctermfg=White guifg=White
-hi Search ctermbg=Blue ctermfg=White guibg=Blue guifg=White
-hi Todo cterm=underline ctermbg=NONE ctermfg=LightYellow guibg=NONE guifg=LightYellow
-
-hi MatchParen ctermbg=NONE cterm=underline ctermfg=Magenta
+if (&t_Co == 8)
+	hi Comment ctermfg=NONE
+endif
diff --git a/.config/vim/keybindings.vim b/.config/vim/keybindings.vim
@@ -0,0 +1,117 @@
+" General keybindings
+nnoremap <leader>aa :argadd **<cr>
+nnoremap <leader>co :copen<cr>
+nnoremap <leader>cs :cdo<space>s/
+nnoremap <leader>ec :edit $XDG_CONFIG_HOME/vim/vimrc<cr>
+nnoremap <leader>ek :edit $XDG_CONFIG_HOME/vim/keybindings/keybindings.vim<cr>
+nnoremap <leader>et :set expandtab<cr>
+nnoremap <leader>fa :find *
+nnoremap <leader>ff :b *
+nnoremap <leader>lb :ls<cr>:b<space>
+nnoremap <leader>lo :lopen<cr>
+nnoremap <leader>ls :ldo<space>s/
+nnoremap <leader>pp :Rg<cr>
+nnoremap <leader>pv :packadd vimspector<cr>
+nnoremap <leader>sc :source $XDG_CONFIG_HOME/vim/vimrc<cr>
+nnoremap <leader>so :source %<cr>
+nnoremap <leader>sp :set paste<cr>
+nnoremap <leader>tt :tabnew<cr>
+nnoremap <leader>vg :vimgrep<space>
+" Buffer Creation
+nnoremap <leader>sc :source ~/.config/vim/vimrc<enter>
+nnoremap <leader>ss :split<enter>
+nnoremap <leader>vv :vsplit<enter>
+
+" Accessible completions
+inoremap <c-f> <c-x><c-f>
+inoremap <c-l> <c-x><c-l>
+" Emacs line navigation in insert mode
+inoremap <c-a> <c-o>0
+inoremap <c-e> <c-o>A
+" Behave vim
+nnoremap Y y$
+
+fun! SetupCommandAlias(from, to)
+  exec 'cnoreabbrev <expr> '.a:from
+        \ .' ((getcmdtype() is# ":" && getcmdline() is# "'.a:from.'")'
+        \ .'? ("'.a:to.'") : ("'.a:from.'"))'
+endfun
+call SetupCommandAlias("W","w")
+call SetupCommandAlias("Wq","wq")
+call SetupCommandAlias("man","help")
+
+nnoremap <leader>tb :call ToggleBackground()<CR>
+nnoremap <leader>tl :call ToggleList()<CR>
+nnoremap <leader>bb :call SaveAndBuild()<CR>
+nnoremap <leader>fmv :call FileMvHelper()<CR>
+
+" Quick save and write
+nnoremap <leader>wq :wq<cr>
+nnoremap <leader>ww :w<cr>
+nnoremap <leader>qq :q<cr>
+
+" Fugitive
+nnoremap <space>gd :Gvdiff<CR>
+
+
+" Generate ctags
+map <leader>gt :!sh -c "ctags `rg --files`"<CR>
+set tags+=.git/tags
+
+nnoremap <CR> :noh<CR><CR>:<backspace>
+
+" Markdown
+nnoremap <leader>cc :ChecklistToggleCheckbox<cr>
+
+let g:gutentags_file_list_command = 'rg --files'
+nnoremap <tab><tab> :CtrlPBuffer<cr>
+
+" vim-fugitive
+nnoremap <leader>gg :Ggrep<space>
+nnoremap <leader>lg :Glgrep<space>
+
+autocmd FileType markdown set cursorline
+
+" Hide and format markdown elements like **bold**
+autocmd FileType markdown set conceallevel=2
+
+function QuickUnderline(n)
+	if a:n == 1
+		normal! yypv$r=
+	else
+		normal! yypv$r-
+	endif
+endfunction
+
+function ReverseDate()
+	normal! dt/wwpldeBP
+endfunction
+
+nnoremap <leader>h1 :call QuickUnderline(1)<cr>
+nnoremap <leader>h2 :call QuickUnderline(2)<cr>
+
+fun! GotoWindow(id)
+    call win_gotoid(a:id)
+endfun
+
+" Debugger remaps
+nnoremap <leader>dd :call vimspector#Launch()<CR>
+nnoremap <leader>dc :call GotoWindow(g:vimspector_session_windows.code)<CR>
+nnoremap <leader>dt :call GotoWindow(g:vimspector_session_windows.tagpage)<CR>
+nnoremap <leader>dv :call GotoWindow(g:vimspector_session_windows.variables)<CR>
+nnoremap <leader>dw :call GotoWindow(g:vimspector_session_windows.watches)<CR>
+nnoremap <leader>ds :call GotoWindow(g:vimspector_session_windows.stack_trace)<CR>
+nnoremap <leader>do :call GotoWindow(g:vimspector_session_windows.output)<CR>
+nnoremap <leader>de :call vimspector#Reset()<CR>
+
+nnoremap <leader>dtcb :call vimspector#CleanLineBreakpoint()<CR>
+
+nmap <leader>dl <Plug>VimspectorStepInto
+nmap <leader>dj <Plug>VimspectorStepOver
+nmap <leader>dk <Plug>VimspectorStepOut
+nmap <leader>d_ <Plug>VimspectorRestart
+nnoremap <leader>d<space> :call vimspector#Continue()<CR>
+
+nmap <leader>drc <Plug>VimspectorRunToCursor
+nmap <leader>dbp <Plug>VimspectorToggleBreakpoint
+nmap <leader>dcbp <Plug>VimspectorToggleConditionalBreakpoint
diff --git a/.config/vim/keybindings/keybindings.vim b/.config/vim/keybindings/keybindings.vim
@@ -1,81 +0,0 @@
-" General keybindings
-nnoremap <leader>lb :ls<CR>:b<space>
-nnoremap <leader>co :copen<cr>
-nnoremap <leader>cs :cdo<space>s/
-nnoremap <leader>ec :edit $XDG_CONFIG_HOME/vim/vimrc<cr>
-nnoremap <leader>ek :edit $XDG_CONFIG_HOME/vim/keybindings/keybindings.vim<cr>
-nnoremap <leader>et :set expandtab<cr>
-nnoremap <leader>ff :find *
-nnoremap <leader>lo :lopen<cr>
-nnoremap <leader>ls :ldo<space>s/
-nnoremap <leader>p :Rg<cr>
-nnoremap <leader>sc :source $XDG_CONFIG_HOME/vim/vimrc<cr>
-nnoremap <leader>so :source %<cr>
-nnoremap <leader>tt :tabnew<cr>
-nnoremap <leader>vg :vimgrep<space>
-" Buffer Creation
-nnoremap <leader>sc :source ~/.config/vim/vimrc<enter>
-nnoremap <leader>ss :split<enter>
-nnoremap <leader>vv :vsplit<enter>
-
-" Accessible completions
-inoremap <c-f> <c-x><c-f>
-inoremap <c-l> <c-x><c-l>
-" Emacs line navigation in insert mode
-inoremap <c-a> <c-o>0
-inoremap <c-e> <c-o>A
-" Behave vim
-nnoremap Y y$
-
-fun! SetupCommandAlias(from, to)
-  exec 'cnoreabbrev <expr> '.a:from
-        \ .' ((getcmdtype() is# ":" && getcmdline() is# "'.a:from.'")'
-        \ .'? ("'.a:to.'") : ("'.a:from.'"))'
-endfun
-call SetupCommandAlias("W","w")
-call SetupCommandAlias("Wq","wq")
-call SetupCommandAlias("man","help")
-
-nnoremap <leader>tl :call ToggleList()<CR>
-nnoremap <leader>bb :call SaveAndBuild()<CR>
-nnoremap <leader>fmv :call FileMvHelper()<CR>
-
-" Quick save and write
-nnoremap <leader>wq :wq<cr>
-nnoremap <leader>ww :w<cr>
-nnoremap <leader>qq :q<cr>
-
-" Fugitive
-nnoremap <space>gd :Gvdiff<CR>
-
-
-" Generate ctags
-map <leader>gt :!sh -c "ctags `rg --files`"<CR>
-set tags+=.git/tags
-
-nnoremap <CR> :noh<CR><CR>:<backspace>
-
-" Plugin keybindings
-source $XDG_CONFIG_HOME/vim/keybindings/vimspector.vim
-source $XDG_CONFIG_HOME/vim/keybindings/markdown.vim
-
-" Development keybindings
-" TODO Have a default build hotkey keybinding, maybe bb,br?
-" And make it based on the project
-" Make it as a filetype plugin. This should cover most cases.
-" Cargo
-nnoremap <leader>cb :Cargo build<cr>
-nnoremap <leader>cr :Cargo run<cr>
-" Markdown
-nnoremap <leader>cc :ChecklistToggleCheckbox<cr>
-
-"ctrlp.vim
-let g:ctrlp_map = '<leader><leader>'
-let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']
-let g:ctrlp_working_path_mode = 'r'
-let g:gutentags_file_list_command = 'rg --files'
-nnoremap <tab><tab> :CtrlPBuffer<cr>
-" vim-fugitive
-nnoremap <leader>gg :Ggrep<space>
-nnoremap <leader>lg :Glgrep<space>
-
diff --git a/.config/vim/keybindings/markdown.vim b/.config/vim/keybindings/markdown.vim
@@ -1,19 +0,0 @@
-autocmd FileType markdown set cursorline
-
-" Hide and format markdown elements like **bold**
-autocmd FileType markdown set conceallevel=2
-
-function QuickUnderline(n)
-	if a:n == 1
-		normal! yypv$r=
-	else
-		normal! yypv$r-
-	endif
-endfunction
-
-function ReverseDate()
-	normal! dt/wwpldeBP
-endfunction
-
-nnoremap <leader>h1 :call QuickUnderline(1)<cr>
-nnoremap <leader>h2 :call QuickUnderline(2)<cr>
diff --git a/.config/vim/keybindings/rust.vim b/.config/vim/keybindings/rust.vim
@@ -1 +0,0 @@
-
diff --git a/.config/vim/keybindings/vimspector.vim b/.config/vim/keybindings/vimspector.vim
@@ -1,25 +0,0 @@
-fun! GotoWindow(id)
-    call win_gotoid(a:id)
-endfun
-
-" Debugger remaps
-nnoremap <leader>dd :call vimspector#Launch()<CR>
-nnoremap <leader>dc :call GotoWindow(g:vimspector_session_windows.code)<CR>
-nnoremap <leader>dt :call GotoWindow(g:vimspector_session_windows.tagpage)<CR>
-nnoremap <leader>dv :call GotoWindow(g:vimspector_session_windows.variables)<CR>
-nnoremap <leader>dw :call GotoWindow(g:vimspector_session_windows.watches)<CR>
-nnoremap <leader>ds :call GotoWindow(g:vimspector_session_windows.stack_trace)<CR>
-nnoremap <leader>do :call GotoWindow(g:vimspector_session_windows.output)<CR>
-nnoremap <leader>de :call vimspector#Reset()<CR>
-
-nnoremap <leader>dtcb :call vimspector#CleanLineBreakpoint()<CR>
-
-nmap <leader>dl <Plug>VimspectorStepInto
-nmap <leader>dj <Plug>VimspectorStepOver
-nmap <leader>dk <Plug>VimspectorStepOut
-nmap <leader>d_ <Plug>VimspectorRestart
-nnoremap <leader>d<space> :call vimspector#Continue()<CR>
-
-nmap <leader>drc <Plug>VimspectorRunToCursor
-nmap <leader>dbp <Plug>VimspectorToggleBreakpoint
-nmap <leader>dcbp <Plug>VimspectorToggleConditionalBreakpoint
diff --git a/.config/vim/plugin/plugin.vim b/.config/vim/plugin/plugin.vim
@@ -6,6 +6,14 @@ function! ToggleList()
 	endif
 endfunction
 
+function! ToggleBackground()
+	if &background == "light"
+		set background=dark
+	else
+		set background=light
+	endif
+endfunction
+
 function! FileMvHelper()
 	:normal! 0i"A"0y$A p0imv j0
 endfunction

@@ -18,3 +26,40 @@ endfunction
 
 " TODO load this automatically
 source $XDG_CONFIG_HOME/vim/ftplugin/cpp.vim
+
+
+" Mail
+set rtp+=~/.local/share/nvim/pack/general/start/himalaya/vim
+
+
+let g:birck_default_chan="irc.libera.chat"
+
+" Strip the newline from the end of a string
+function! Chomp(str)
+  return substitute(a:str, '\n$', '', '')
+endfunction
+
+" Find a file and pass it to cmd
+function! DmenuOpen(cmd)
+  let fname = Chomp(system("git ls-files | dmenu-mac -i -l 20 -p " . a:cmd))
+  if empty(fname)
+    return
+  endif
+  execute a:cmd . " " . fname
+endfunction
+
+" find file in git repo
+function! ChooseFile()
+  let dir = expand("%:h")
+  if empty(dir) | let dir = getcwd() | endif
+
+  let root = system("cd " . dir . " && git rev-parse --show-toplevel")
+  if v:shell_error != 0 | echo "Not in a git repo" | return | endif
+  let root = root[0:-2]
+
+  let selection = system("cd " . root . " && git ls-files -co --exclude-standard | choose")
+  if empty(selection) | echo "Canceled" | return | end
+
+  echo "Finding file..."
+  exec ":e " . root . "/" . selection
+endfunction
diff --git a/.config/vim/vimrc b/.config/vim/vimrc
@@ -39,6 +39,7 @@ set nowrapscan
 filetype plugin indent on
 set tabstop=4
 set shiftwidth=4
+set expandtab
 
 " Netrw customization
 let g:netrw_banner = 0

@@ -49,19 +50,24 @@ set laststatus=1
 
 set lazyredraw
 set ttyfast
+set nospell
+
+set background=dark
+syntax on indent off
+source $XDG_CONFIG_HOME/vim/hyper-red.vim
 
 " Plugins
 source $XDG_CONFIG_HOME/vim/plugin/plugin.vim
 
 " Keybindings
-source $XDG_CONFIG_HOME/vim/keybindings/keybindings.vim
+source $XDG_CONFIG_HOME/vim/keybindings.vim
 
 set packpath^=$XDG_DATA_HOME/vim
+set packpath^=$XDG_DATA_HOME/vimcommon
 
 function! s:load_plugins(t) abort
-	" Use XDG Paths for vim
-	syntax on
 	set synmaxcol=128
+	" Use XDG Paths for vim
 	" TODO compile hard constants somewhere based on OS
 	set runtimepath^='$XDG_CONFIG_HOME/vim'
 	set runtimepath+='$XDG_DATA_HOME/vim'

@@ -75,13 +81,13 @@ function! s:load_plugins(t) abort
 	set directory=$XDG_CACHE_HOME/vim/swap   | call mkdir(&directory, 'p')
 	set undodir=$XDG_CACHE_HOME/vim/undo     | call mkdir(&undodir,   'p')
 	packadd vim-tmux-navigator
-	packadd editorconfig-vim
 	packadd vim-commentary
+	packadd mru
 	packadd vim-surround
 	packadd vim-ninja-feet
 	packadd vim-fugitive
 	packadd vim-better-whitespace
-	source $XDG_CONFIG_HOME/vim/hyper-red.vim
+	packadd gruvbox-material
 endfunction
 
 augroup user_cmds

@@ -89,6 +95,13 @@ augroup user_cmds
 	autocmd VimEnter * call timer_start(20, function('s:load_plugins'))
 augroup END
 
+function! SetColorColumnColor()
+  if &background ==# 'dark'
+    source $XDG_CONFIG_HOME/vim/hyper-red.vim
+  endif
+endfunction
+autocmd OptionSet background call SetColorColumnColor()
+
 if has("gui")
 	source $XDG_CONFIG_HOME/vim/gvimrc
 endif
diff --git a/.gitmodules b/.gitmodules
@@ -1,84 +1,48 @@
-[submodule ".local/share/vim/pack/development/opt/rust.vim"]
-	path = .local/share/vim/pack/development/opt/rust.vim
-	url = https://git::@github.com/rust-lang/rust.vim.git
 [submodule ".local/share/vim/pack/development/opt/vim-cmake"]
-	path = .local/share/vim/pack/development/opt/vim-cmake
+	path = .local/share/vimcommon/pack/dev/opt/vim-cmake
 	url = https://git::@github.com/cdelledonne/vim-cmake.git
 [submodule ".local/share/vim/pack/development/opt/vim-msbuild"]
-	path = .local/share/vim/pack/development/opt/vim-msbuild
+	path = .local/share/vimcommon/pack/dev/opt/vim-msbuild
 	url = https://git::@github.com/heaths/vim-msbuild.git
-[submodule ".local/share/vim/pack/development/opt/emmet-vim"]
-	path = .local/share/vim/pack/development/opt/emmet-vim
-	url = https://github.com/mattn/emmet-vim
-[submodule ".local/share/vim/pack/general/opt/editorconfig-vim"]
-	path = .local/share/vim/pack/general/opt/editorconfig-vim
-	url = https://git::@github.com/editorconfig/editorconfig-vim.git
 [submodule ".local/share/vim/pack/general/opt/vim-better-whitespace"]
 	path = .local/share/vim/pack/general/opt/vim-better-whitespace
 	url = https://git::@github.com/ntpeters/vim-better-whitespace.git
-[submodule ".local/share/vim/pack/general/opt/vim-codepainter"]
-	path = .local/share/vim/pack/general/opt/vim-codepainter
-	url = https://git::@github.com/lpinilla/vim-codepainter.git
 [submodule ".local/share/vim/pack/general/opt/vim-commentary"]
 	path = .local/share/vim/pack/general/opt/vim-commentary
 	url = https://git::@github.com/tpope/vim-commentary.git
 [submodule ".local/share/vim/pack/general/opt/vim-surround"]
-	path = .local/share/vim/pack/general/opt/vim-surround
+	path = .local/share/vimcommon/pack/general/start/vim-surround
 	url = https://git::@github.com/tpope/vim-surround.git
-[submodule ".local/share/vim/pack/general/opt/vim-easymotion"]
-	path = .local/share/vim/pack/general/opt/vim-easymotion
-	url = https://git::@github.com/easymotion/vim-easymotion.git
 [submodule ".local/share/vim/pack/general/opt/vim-fugitive"]
-	path = .local/share/vim/pack/general/opt/vim-fugitive
+	path = .local/share/vimcommon/pack/general/opt/vim-fugitive
 	url = https://git::@github.com/tpope/vim-fugitive.git
 [submodule ".local/share/vim/pack/general/opt/vim-ninja-feet"]
-	path = .local/share/vim/pack/general/opt/vim-ninja-feet
+	path = .local/share/vimcommon/pack/general/opt/vim-ninja-feet
 	url = https://git::@github.com/tommcdo/vim-ninja-feet.git
-[submodule ".local/share/vim/pack/general/opt/vim-textobj-user"]
-	path = .local/share/vim/pack/general/opt/vim-textobj-user
-	url = https://git::@github.com/kana/vim-textobj-user.git
-[submodule ".local/share/vim/pack/general/opt/vim-textobj-xmlattr"]
-	path = .local/share/vim/pack/general/opt/vim-textobj-xmlattr
-	url = https://git::@github.com/whatyouhide/vim-textobj-xmlattr.git
 [submodule ".local/share/vim/pack/themes/start/gruvbox-material"]
-	path = .local/share/vim/pack/themes/start/gruvbox-material
+	path = .local/share/vimcommon/pack/themes/opt/gruvbox-material
 	url = https://git::@github.com/sainnhe/gruvbox-material.git
 [submodule ".local/share/nvim/pack/general/start/nvim-lspconfig"]
 	path = .local/share/nvim/pack/general/start/nvim-lspconfig
 	url = https://github.com/neovim/nvim-lspconfig
 [submodule ".local/share/vim/pack/general/start/vim-unimpaired"]
-	path = .local/share/vim/pack/general/start/vim-unimpaired
+	path = .local/share/vimcommon/pack/general/opt/vim-unimpaired
 	url = https://github.com/tpope/vim-unimpaired
 [submodule ".local/share/vim/pack/general/start/vim-repeat"]
-	path = .local/share/vim/pack/general/start/vim-repeat
+	path = .local/share/vimcommon/pack/general/start/vim-repeat
 	url = https://git::@github.com/tpope/vim-repeat.git
 [submodule ".local/share/vim/pack/general/start/vim-tmux-navigator"]
-	path = .local/share/vim/pack/general/start/vim-tmux-navigator
+	path = .local/share/vimcommon/pack/general/opt/vim-tmux-navigator
 	url = https://github.com/christoomey/vim-tmux-navigator
 [submodule ".local/share/vim/pack/general/start/vim-dispatch"]
-	path = .local/share/vim/pack/general/start/vim-dispatch
+	path = .local/share/vimcommon/pack/general/start/vim-dispatch
 	url = https://github.com/tpope/vim-dispatch
 [submodule ".local/share/vim/pack/general/start/mru"]
-	path = .local/share/vim/pack/general/start/mru
+	path = .local/share/vimcommon/pack/general/opt/mru
 	url = https://github.com/yegappan/mru
-[submodule ".local/share/vim/pack/general/start/ctrlp.vim"]
-	path = .local/share/vim/pack/general/start/ctrlp.vim
-	url = https://github.com/kien/ctrlp.vim
-[submodule ".local/share/nvim/pack/general/start/telescope.nvim"]
-	path = .local/share/nvim/pack/general/start/telescope.nvim
-	url = https://github.com/nvim-telescope/telescope.nvim
-[submodule ".local/share/nvim/pack/general/start/plenary.nvim"]
-	path = .local/share/nvim/pack/general/start/plenary.nvim
-	url = https://github.com/nvim-lua/plenary.nvim
-[submodule ".local/share/nvim/pack/general/start/vim-dispatch"]
-	path = .local/share/nvim/pack/general/start/vim-dispatch
-	url = https://github.com/tpope/vim-dispatch
 [submodule ".local/share/nvim/pack/general/start/vim-dispatch-neovim"]
 	path = .local/share/nvim/pack/general/start/vim-dispatch-neovim
 	url = https://github.com/radenling/vim-dispatch-neovim
-[submodule ".local/share/nvim/pack/general/start/vim-tmux-navigator"]
-	path = .local/share/nvim/pack/general/start/vim-tmux-navigator
-	url = https://github.com/christoomey/vim-tmux-navigator
 [submodule ".local/share/nvim/pack/development/start/nvim-dap"]
 	path = .local/share/nvim/pack/development/start/nvim-dap
 	url = https://github.com/mfussenegger/nvim-dap

@@ -86,26 +50,20 @@
 	path = .local/share/nvim/pack/general/start/nvim-comment
 	url = https://github.com/terrortylor/nvim-comment
 [submodule ".local/share/nvim/pack/development/opt/vimspector"]
-	path = .local/share/nvim/pack/development/opt/vimspector
+	path = .local/share/vimcommon/pack/dev/opt/vimspector
 	url = https://github.com/puremourning/vimspector
 [submodule ".local/share/vim/pack/general/start/vim-checklist"]
-	path = .local/share/vim/pack/general/start/vim-checklist
+	path = .local/share/vimcommon/pack/general/start/vim-checklist
 	url = https://github.com/evansalter/vim-checklist
-[submodule ".local/share/nvim/pack/general/opt/vim-fugitive"]
-	path = .local/share/nvim/pack/general/opt/vim-fugitive
-	url = https://git::@github.com/tpope/vim-fugitive.git
-[submodule ".local/share/nvim/pack/general/start/vim-unimpaired"]
-	path = .local/share/nvim/pack/general/start/vim-unimpaired
-	url = https://github.com/tpope/vim-unimpaired
-[submodule ".local/share/nvim/pack/themes/start/gruvbox-material"]
-	path = .local/share/nvim/pack/themes/start/gruvbox-material
-	url = https://git::@github.com/sainnhe/gruvbox-material.git
-[submodule ".local/share/nvim/pack/general/start/Command-T"]
-	path = .local/share/nvim/pack/general/start/Command-T
-	url = https://github.com/wincent/Command-T
 [submodule ".config/nvim/vim-vinegar"]
 	path = .config/nvim/vim-vinegar
 	url = https://github.com/tpope/vim-vinegar
 [submodule ".local/share/nvim/pack/general/start/vim-vinegar"]
-	path = .local/share/nvim/pack/general/start/vim-vinegar
+	path = .local/share/vimcommon/pack/general/start/vim-vinegar
 	url = https://github.com/tpope/vim-vinegar
+[submodule ".local/share/vim/pack/general/opt/birck.vim"]
+	path = .local/share/vimcommon/pack/general/opt/birck.vim
+	url = https://git.sr.ht/~torresjrjr/birck.vim
+[submodule ".local/share/vim/pack/general/opt/vim-maildir"]
+	path = .local/share/vim/pack/general/opt/vim-maildir
+	url = https://github.com/ferranpm/vim-maildir
diff --git a/.local/share/nvim/pack/development/opt/vimspector b/.local/share/nvim/pack/development/opt/vimspector
@@ -1 +0,0 @@
-Subproject commit a17d1e12450d3a2e55bb442a1091a1cff99bc5e2
diff --git a/.local/share/nvim/pack/general/opt/vim-fugitive b/.local/share/nvim/pack/general/opt/vim-fugitive
@@ -1 +0,0 @@
-Subproject commit 9a13fc87c4ab83ea81e71ccad9b846a5eb31a998
diff --git a/.local/share/nvim/pack/general/start/Command-T b/.local/share/nvim/pack/general/start/Command-T
@@ -1 +0,0 @@
-Subproject commit 0356d6735f6360b52a898db398974fcf08de66ff
diff --git a/.local/share/nvim/pack/general/start/plenary.nvim b/.local/share/nvim/pack/general/start/plenary.nvim
@@ -1 +0,0 @@
-Subproject commit 986ad71ae930c7d96e812734540511b4ca838aa2
diff --git a/.local/share/nvim/pack/general/start/telescope.nvim b/.local/share/nvim/pack/general/start/telescope.nvim
@@ -1 +0,0 @@
-Subproject commit b5833a682c511885887373aad76272ad70f7b3c2
diff --git a/.local/share/nvim/pack/general/start/vim-dispatch b/.local/share/nvim/pack/general/start/vim-dispatch
@@ -1 +0,0 @@
-Subproject commit 00e77d90452e3c710014b26dc61ea919bc895e92
diff --git a/.local/share/nvim/pack/general/start/vim-tmux-navigator b/.local/share/nvim/pack/general/start/vim-tmux-navigator
@@ -1 +0,0 @@
-Subproject commit 9ca5bfe5bd274051b5dd796cc150348afc993b80
diff --git a/.local/share/nvim/pack/general/start/vim-unimpaired b/.local/share/nvim/pack/general/start/vim-unimpaired
@@ -1 +0,0 @@
-Subproject commit efdc6475f7ea789346716dabf9900ac04ee8604a
diff --git a/.local/share/nvim/pack/general/start/vim-vinegar b/.local/share/nvim/pack/general/start/vim-vinegar
@@ -1 +0,0 @@
-Subproject commit bb1bcddf43cfebe05eb565a84ab069b357d0b3d6
diff --git a/.local/share/nvim/pack/themes/start/gruvbox-material b/.local/share/nvim/pack/themes/start/gruvbox-material
@@ -1 +0,0 @@
-Subproject commit d4d5731854b5b029d33130748e33a654c216bfb4
diff --git a/.local/share/vim/pack/development/opt/emmet-vim b/.local/share/vim/pack/development/opt/emmet-vim
@@ -1 +0,0 @@
-Subproject commit 1b7e460de071b7ed45cae3b5bec47310e7d12ed5
diff --git a/.local/share/vim/pack/development/opt/rust.vim b/.local/share/vim/pack/development/opt/rust.vim
@@ -1 +0,0 @@
-Subproject commit c06a17151c69b9d61e60a28274932a28fd37c453
diff --git a/.local/share/vim/pack/development/opt/vim-cmake b/.local/share/vim/pack/development/opt/vim-cmake
@@ -1 +0,0 @@
-Subproject commit 844b85677d52d932432eb115236d9173ebe3664d
diff --git a/.local/share/vim/pack/development/opt/vim-msbuild b/.local/share/vim/pack/development/opt/vim-msbuild
@@ -1 +0,0 @@
-Subproject commit 4766d9a225c433e7ce2625bcc6263bfd028c4a50
diff --git a/.local/share/vim/pack/general/opt/editorconfig-vim b/.local/share/vim/pack/general/opt/editorconfig-vim
@@ -1 +0,0 @@
-Subproject commit 3078cd10b28904e57d878c0d0dab42aa0a9fdc89
diff --git a/.local/share/vim/pack/general/opt/vim-codepainter b/.local/share/vim/pack/general/opt/vim-codepainter
@@ -1 +0,0 @@
-Subproject commit 1ae0ee4f48e7e196ef90bc84ecbc56cad231e9df
diff --git a/.local/share/vim/pack/general/opt/vim-easymotion b/.local/share/vim/pack/general/opt/vim-easymotion
@@ -1 +0,0 @@
-Subproject commit d75d9591e415652b25d9e0a3669355550325263d
diff --git a/.local/share/vim/pack/general/opt/vim-fugitive b/.local/share/vim/pack/general/opt/vim-fugitive
@@ -1 +0,0 @@
-Subproject commit 6f07d7e6cd23b7a76dc461fdfb1984717d233806
diff --git a/.local/share/vim/pack/general/opt/vim-maildir b/.local/share/vim/pack/general/opt/vim-maildir
@@ -0,0 +1 @@
+Subproject commit 5fffc4b5ef0059dc07ed06970d7b14a581a3e35c
diff --git a/.local/share/vim/pack/general/opt/vim-ninja-feet b/.local/share/vim/pack/general/opt/vim-ninja-feet
@@ -1 +0,0 @@
-Subproject commit cb9b448dd468a338255aed474e6113ed115612c1
diff --git a/.local/share/vim/pack/general/opt/vim-surround b/.local/share/vim/pack/general/opt/vim-surround
@@ -1 +0,0 @@
-Subproject commit f51a26d3710629d031806305b6c8727189cd1935
diff --git a/.local/share/vim/pack/general/opt/vim-textobj-user b/.local/share/vim/pack/general/opt/vim-textobj-user
@@ -1 +0,0 @@
-Subproject commit 41a675ddbeefd6a93664a4dc52f302fe3086a933
diff --git a/.local/share/vim/pack/general/opt/vim-textobj-xmlattr b/.local/share/vim/pack/general/opt/vim-textobj-xmlattr
@@ -1 +0,0 @@
-Subproject commit 694a297f1d75fd527e87da9769f3c6519a87ebb1
diff --git a/.local/share/vim/pack/general/start/ctrlp.vim b/.local/share/vim/pack/general/start/ctrlp.vim
@@ -1 +0,0 @@
-Subproject commit 564176f01d7f3f7f8ab452ff4e1f5314de7b0981
diff --git a/.local/share/vim/pack/general/start/mru b/.local/share/vim/pack/general/start/mru
@@ -1 +0,0 @@
-Subproject commit 8e8220a005d070dbd01caae86e3139d83fc444c4
diff --git a/.local/share/vim/pack/general/start/vim-checklist b/.local/share/vim/pack/general/start/vim-checklist
@@ -1 +0,0 @@
-Subproject commit a63f22fdd1acfff7f4db3f79641135b9dc9a36fb
diff --git a/.local/share/vim/pack/general/start/vim-dispatch b/.local/share/vim/pack/general/start/vim-dispatch
@@ -1 +0,0 @@
-Subproject commit 00e77d90452e3c710014b26dc61ea919bc895e92
diff --git a/.local/share/vim/pack/general/start/vim-repeat b/.local/share/vim/pack/general/start/vim-repeat
@@ -1 +0,0 @@
-Subproject commit 24afe922e6a05891756ecf331f39a1f6743d3d5a
diff --git a/.local/share/vim/pack/general/start/vim-tmux-navigator b/.local/share/vim/pack/general/start/vim-tmux-navigator
@@ -1 +0,0 @@
-Subproject commit 9ca5bfe5bd274051b5dd796cc150348afc993b80
diff --git a/.local/share/vim/pack/general/start/vim-unimpaired b/.local/share/vim/pack/general/start/vim-unimpaired
@@ -1 +0,0 @@
-Subproject commit e4006d68cd4f390efef935bc09be0ce3bd022e72
diff --git a/.local/share/vim/pack/themes/start/gruvbox-material b/.local/share/vim/pack/themes/start/gruvbox-material
@@ -1 +0,0 @@
-Subproject commit fb27ccbd20cc1eda04e181f22c722977bdf9c934
diff --git a/.local/share/vimcommon/pack/dev/opt/vim-cmake b/.local/share/vimcommon/pack/dev/opt/vim-cmake
@@ -0,0 +1 @@
+Subproject commit 844b85677d52d932432eb115236d9173ebe3664d
diff --git a/.local/share/vimcommon/pack/dev/opt/vim-msbuild b/.local/share/vimcommon/pack/dev/opt/vim-msbuild
@@ -0,0 +1 @@
+Subproject commit 4766d9a225c433e7ce2625bcc6263bfd028c4a50
diff --git a/.local/share/vimcommon/pack/dev/opt/vimspector b/.local/share/vimcommon/pack/dev/opt/vimspector
@@ -0,0 +1 @@
+Subproject commit a17d1e12450d3a2e55bb442a1091a1cff99bc5e2
diff --git a/.local/share/vimcommon/pack/general/opt/birck.vim b/.local/share/vimcommon/pack/general/opt/birck.vim
@@ -0,0 +1 @@
+Subproject commit e316a915b34f42f448966df7f79d10d8a49706c5
diff --git a/.local/share/vimcommon/pack/general/opt/mru b/.local/share/vimcommon/pack/general/opt/mru
@@ -0,0 +1 @@
+Subproject commit 8e8220a005d070dbd01caae86e3139d83fc444c4
diff --git a/.local/share/vimcommon/pack/general/opt/vim-fugitive b/.local/share/vimcommon/pack/general/opt/vim-fugitive
@@ -0,0 +1 @@
+Subproject commit 6f07d7e6cd23b7a76dc461fdfb1984717d233806
diff --git a/.local/share/vimcommon/pack/general/opt/vim-ninja-feet b/.local/share/vimcommon/pack/general/opt/vim-ninja-feet
@@ -0,0 +1 @@
+Subproject commit cb9b448dd468a338255aed474e6113ed115612c1
diff --git a/.local/share/vimcommon/pack/general/opt/vim-tmux-navigator b/.local/share/vimcommon/pack/general/opt/vim-tmux-navigator
@@ -0,0 +1 @@
+Subproject commit afb45a55b452b9238159047ce7c6e161bd4a9907
diff --git a/.local/share/vimcommon/pack/general/opt/vim-unimpaired b/.local/share/vimcommon/pack/general/opt/vim-unimpaired
@@ -0,0 +1 @@
+Subproject commit e4006d68cd4f390efef935bc09be0ce3bd022e72
diff --git a/.local/share/vimcommon/pack/general/start/vim-checklist b/.local/share/vimcommon/pack/general/start/vim-checklist
@@ -0,0 +1 @@
+Subproject commit a63f22fdd1acfff7f4db3f79641135b9dc9a36fb
diff --git a/.local/share/vimcommon/pack/general/start/vim-dispatch b/.local/share/vimcommon/pack/general/start/vim-dispatch
@@ -0,0 +1 @@
+Subproject commit 00e77d90452e3c710014b26dc61ea919bc895e92
diff --git a/.local/share/vimcommon/pack/general/start/vim-repeat b/.local/share/vimcommon/pack/general/start/vim-repeat
@@ -0,0 +1 @@
+Subproject commit 24afe922e6a05891756ecf331f39a1f6743d3d5a
diff --git a/.local/share/vimcommon/pack/general/start/vim-surround b/.local/share/vimcommon/pack/general/start/vim-surround
@@ -0,0 +1 @@
+Subproject commit f51a26d3710629d031806305b6c8727189cd1935
diff --git a/.local/share/vimcommon/pack/general/start/vim-vinegar b/.local/share/vimcommon/pack/general/start/vim-vinegar
@@ -0,0 +1 @@
+Subproject commit bb1bcddf43cfebe05eb565a84ab069b357d0b3d6
diff --git a/.local/share/vimcommon/pack/themes/opt/gruvbox-material b/.local/share/vimcommon/pack/themes/opt/gruvbox-material
@@ -0,0 +1 @@
+Subproject commit 2807579bd0a9981575dbb518aa65d3206f04ea02
diff --git a/.profile b/.profile
@@ -99,4 +99,5 @@ chance "${XDG_CONFIG_HOME}/sh/unstaged"
 export LESS_TERMCAP_us=$'\E[0;31m'
 export LESS_TERMCAP_ue=$'\E[0m'
 export CLICOLOR=1
-export LSCOLORS="hxgxfxxxbxxxxxxxxxxxxx"
+export LSCOLORS="xxexcxdxbxegxdxbagxcxd"
+export LS_COLORS="di=0:ln=34:so=32:pi=33:ex=31:bd=34;46:cd=0;43:su=0;41:sg=30;46:tw=0;42:ow=0;43"