about summary refs log tree commit diff stats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/ksh/00-opts.ksh1
-rw-r--r--config/ksh/diraliases10
-rw-r--r--config/ksh/exports.ksh (renamed from config/zsh/exports.zsh)5
-rw-r--r--config/ksh/functions.ksh6
-rw-r--r--config/ksh/kshrc22
-rw-r--r--config/ksh/zz-prompt.ksh32
-rw-r--r--config/lf/lfrc20
-rw-r--r--config/ncmpcpp/config4
-rw-r--r--config/newsboat/config2
-rw-r--r--config/nvim/colors/asmanian_blood.vim42
-rw-r--r--config/nvim/init.vim40
-rw-r--r--config/shrc3
-rw-r--r--config/wal/colorschemes/dark/base16-causalagency.json25
-rw-r--r--config/wal/templates/6cord.toml7
-rw-r--r--config/wal/templates/colors-wal-dmenu.h4
-rw-r--r--config/wal/templates/colors-wal-dwm.h6
-rw-r--r--config/wal/templates/dunstrc4
-rw-r--r--config/wal/templates/zathurarc1
-rw-r--r--config/youtube-dl/config2
-rw-r--r--config/youtube-dl/config-music4
l---------config/zsh/.zshrc1
-rw-r--r--config/zsh/00-opts.zsh3
-rw-r--r--config/zsh/binds.zsh12
-rw-r--r--config/zsh/functions.zsh2
-rw-r--r--config/zsh/themes/p10k.zsh856
-rw-r--r--config/zsh/zshrc53
26 files changed, 144 insertions, 1023 deletions
diff --git a/config/ksh/00-opts.ksh b/config/ksh/00-opts.ksh
new file mode 100644
index 0000000..4b7ff4c
--- /dev/null
+++ b/config/ksh/00-opts.ksh
@@ -0,0 +1 @@
+set -o vi
diff --git a/config/ksh/diraliases b/config/ksh/diraliases
new file mode 100644
index 0000000..f4546a5
--- /dev/null
+++ b/config/ksh/diraliases
@@ -0,0 +1,10 @@
+#!/bin/ksh
+alias -d "src=$HOME/src"\
+	"vcs=$HOME/src/vcs"\
+	"me=$HOME/src/me"\
+	"ports=/usr/ports"\
+	"conf=$XDG_CONFIG_HOME"\
+	"data=$XDG_DATA_HOME"\
+	"write=$HOME/doc/writing"\
+	"crit=$HOME/doc/writing/critique"\
+	"bin=$HOME/.local/bin"
diff --git a/config/zsh/exports.zsh b/config/ksh/exports.ksh
index 48ec72b..c2ec25d 100644
--- a/config/zsh/exports.zsh
+++ b/config/ksh/exports.ksh
@@ -1,7 +1,10 @@
-. $XDG_CONFIG_HOME/shrc
 # exports for convenience
 export GITHUB="https://github.com"
+# programs
+export IRC_SERVERS_FILE="$HOME/.local/share/ircservers"
 # make pfetch show what i want
 export PF_INFO="ascii title os host shell editor wm pkgs uptime palette"
+# color
+export CLICOLOR=1
 # fix manpath so local man pages work
 export MANPATH="/usr/share/man:/usr/X11R6/man:/usr/local/man:$XDG_DATA_HOME/man"
diff --git a/config/ksh/functions.ksh b/config/ksh/functions.ksh
new file mode 100644
index 0000000..e5d2668
--- /dev/null
+++ b/config/ksh/functions.ksh
@@ -0,0 +1,6 @@
+mc() {
+	mkdir "$1" && cd "$1";
+}
+mpvpin() {
+	mpv --input-ipc-server=/tmp/mpv-socket$(date +%s) --quiet --title "PIN" "$1" >/dev/null 2>&1 &
+}
diff --git a/config/ksh/kshrc b/config/ksh/kshrc
new file mode 100644
index 0000000..abf9bf0
--- /dev/null
+++ b/config/ksh/kshrc
@@ -0,0 +1,22 @@
+#!/bin/ksh
+export XDG_CACHE_HOME=${XDG_CACHE_HOME:=~/.cache}
+export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:=~/.config}
+export XDG_DATA_HOME=${XDG_DATA_HOME:=~/.local/share}
+. $XDG_CONFIG_HOME/shrc
+KSHCONFIG="$XDG_CONFIG_HOME/ksh"
+if ! echo "$PATH"|grep -q ".local/bin"; then
+  export PATH="$HOME/.local/bin:$PATH"
+fi
+
+HISTFILE=$XDG_DATA_HOME/ksh/histfile
+HISTSIZE=5000
+HISTCONTROL="ignoredups"
+TMPDIR=$XDG_CACHE_HOME/ksh
+
+#load ksh external configs
+for file in $KSHCONFIG/*.ksh; do
+	. "$file"
+done
+. $XDG_CONFIG_HOME/lf/lfcd.sh
+[[ -f "$KSHCONFIG/diraliases" ]] && . "$KSHCONFIG/diraliases"
+[[ -f "$XDG_CONFIG_HOME/aliasrc" ]] && . "$XDG_CONFIG_HOME/aliasrc"
diff --git a/config/ksh/zz-prompt.ksh b/config/ksh/zz-prompt.ksh
new file mode 100644
index 0000000..b7f80cf
--- /dev/null
+++ b/config/ksh/zz-prompt.ksh
@@ -0,0 +1,32 @@
+#!/bin/ksh
+SEP="|"
+_PS1='\[\033['
+_END='m\]'
+
+_CLEAR='0'
+_BRIGHT='1'
+_DIM='2'
+_UNDER='4'
+_BLINK='5'
+_REVERSE='7'
+_HIDDEN='8'
+
+_FG_BLACK='30'
+_FG_RED='31'
+_FG_GREEN='32'
+_FG_YELLOW='33'
+_FG_BLUE='34'
+_FG_MAGENTA='35'
+_FG_CYAN='36'
+_FG_WHITE='37'
+
+_BG_BLACK='40'
+_BG_RED='41'
+_BG_GREEN='42'
+_BG_YELLOW='43'
+_BG_BLUE='44'
+_BG_MAGENTA='45'
+_BG_CYAN='46'
+_BG_WHITE='47'
+PS1='$_PS1$_FG_BLACK;$_BG_GREEN$_END$?$_PS1$_CLEAR$_END$SEP$_PS1$_FG_BLACK;$_BG_MAGENTA$_END\A$_PS1$_CLEAR$_END$SEP$_PS1$_BRIGHT;$_FG_RED$_END\u$_PS1$_CLEAR;$_FG_GREEN$_END@$_PS1$_BRIGHT;$_FG_BLUE$_END\h$_PS1$_CLEAR$_END:$_PS1$_BRIGHT;$_FG_CYAN$_END\w$_PS1$_CLEAR;$_FG_GREEN$_END\$$_PS1$_CLEAR$_END '
+export PS1
diff --git a/config/lf/lfrc b/config/lf/lfrc
index 21634d4..e5e58cd 100644
--- a/config/lf/lfrc
+++ b/config/lf/lfrc
@@ -3,30 +3,14 @@ set shell sh
 set shellopts '-eu'
 set ifs "\n"
 
+set promptfmt "\033[1;31m%u\033[0;32m@\033[1;34m%h\033[0m:\033[1;36m%w/\033[0m\033[1m%f\033[0m"
 # cmds
 cmd open ${{
-    case $(file -bi $f) in
-	text/troff) man ./ $f;;
-        text/*) $EDITOR $fx;;
-	image/x-xcf|image/svg+xml) gimp $f >/dev/null 2>&1 & ;;
-	image/vnd.djvu|application/epub+zip|application/pdf) zathura $f >/dev/null 2>&1 & ;;
-	image/*) sxiv -ai >/dev/null 2>&1 & ;;
-	audio/*) mpv --input-ipc-server=/tmp/mpvsoc$(date +%%s) --quiet $f >/dev/null 2>&1 & ;;
-	video/*) mpv --input-ipc-server=/tmp/mpvsoc$(date +%%s) $f ;;
-        *) for f in $fx; do lh $f > /dev/null 2>&1 & done;;
-    esac
+	opener $f
 }}
 
 cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1
 
-cmd delete ${{
-	set -f
-	printf "%s\n\t" "$fx"
-	printf "delete?[y/n]"
-	read ans
-	[ $ans = "y" ] && rm -rf $fx
-}}
-
 # binds
 map D delete
 map a push %mkdir<space>
diff --git a/config/ncmpcpp/config b/config/ncmpcpp/config
index 04c319f..ffeb996 100644
--- a/config/ncmpcpp/config
+++ b/config/ncmpcpp/config
@@ -321,7 +321,7 @@ progressbar_look = ->
 ##
 media_library_primary_tag = album_artist
 #
-media_library_albums_split_by_date = no
+media_library_albums_split_by_date = yes
 #
 ## Available values: wrapped, normal.
 ##
@@ -430,7 +430,7 @@ ignore_leading_the = yes
 #
 #block_search_constraints_change_if_items_found = yes
 #
-#mouse_support = yes
+mouse_support = no
 #
 #mouse_list_scroll_whole_page = yes
 #
diff --git a/config/newsboat/config b/config/newsboat/config
index aeb6ddf..233cd8b 100644
--- a/config/newsboat/config
+++ b/config/newsboat/config
@@ -33,6 +33,6 @@ color article cyan default
 browser lh
 macro , open-in-browser
 macro t set browser "youtube-dl --add-metadata -ic"; open-in-browser ; set browser lh
-macro a set browser "youtube-dl --config-location ~/.config/youtube-dl/config-audio --add-metadata -xic -f bestaudio/best"; open-in-browser ; set browser lh
+macro a set browser "youtube-dl --add-metadata -ic --config-location ~/.config/youtube-dl/config-music"; open-in-browser ; set browser lh
 macro v set browser "mpv"; open-in-browser ; set browser lh
 macro w set browser "w3m"; open-in-browser ; set browser lh
diff --git a/config/nvim/colors/asmanian_blood.vim b/config/nvim/colors/asmanian_blood.vim
deleted file mode 100644
index 90df688..0000000
--- a/config/nvim/colors/asmanian_blood.vim
+++ /dev/null
@@ -1,42 +0,0 @@
-
-set background=dark
-
-hi Normal       guifg=#b4b0b0 guibg=#080404 gui=none
-hi NonText      guifg=#b4b0b0 guibg=#181414 gui=none
-hi SpecialKey   guifg=#b4b0b0 guibg=#282424 gui=bold
-
-hi Comment      guifg=#686460 guibg=#080404 gui=none
-hi Todo         guifg=#686460 guibg=#080404 gui=underline,italic
-hi Search       guifg=#000000 guibg=#00f0f0 gui=underline,italic
-hi Visual                     guibg=#282020
-hi MatchParen   guifg=#ffffff guibg=#904030 gui=none
-
-hi Title        guifg=#ffffff guibg=#202020 gui=underline
-hi Underlined   guifg=#b4b0b0 guibg=#080404 gui=underline
-
-hi CursorColumn guifg=#f4f0f0 guibg=#201c1c gui=none
-hi CursorLine   guifg=#f4f0f0 guibg=#201c1c gui=none
-
-hi StatusLine   guifg=#f8e0d0 guibg=#301810 gui=bold
-hi StatusLineNC guifg=#503830 guibg=#200800 gui=none
-hi VertSplit    guifg=#200800 guibg=#301810 gui=none
-hi LineNr       guifg=#848070 guibg=#181414 gui=none
-hi Folded       guifg=#484040 guibg=#080404 gui=bold,italic
-
-hi Define       guifg=#607080 guibg=#080404 gui=italic
-hi Function     guifg=#60b050 guibg=#080404 gui=italic
-hi PreProc      guifg=#a090a0 guibg=#080404 gui=italic
-hi Define       guifg=#806080 guibg=#080404 gui=italic
-hi Identifier   guifg=#c0b060 guibg=#080404 gui=italic
-
-hi Statement    guifg=#506090 guibg=#080404 gui=underline
-hi Repeat       guifg=#906050 guibg=#080404 gui=underline
-hi Conditional  guifg=#609050 guibg=#080404 gui=underline
-hi Exception    guifg=#903020 guibg=#080404 gui=underline
-
-hi Type         guifg=#705850 guibg=#080404 gui=italic
-hi String       guifg=#a06050 guibg=#080404 gui=italic
-hi Special      guifg=#a06050 guibg=#181414 gui=italic
-hi Number       guifg=#60d060 guibg=#080404 gui=none
-hi Constant     guifg=#60d060 guibg=#080404 gui=none
-
diff --git a/config/nvim/init.vim b/config/nvim/init.vim
index 41450bb..0632b5d 100644
--- a/config/nvim/init.vim
+++ b/config/nvim/init.vim
@@ -10,8 +10,6 @@ call plug#begin('~/.local/share/nvim/plugged')
 Plug 'gregsexton/matchtag'
 " lightline.vim
 Plug 'itchyny/lightline.vim'
-" wal.vim
-Plug 'dylanaraps/wal.vim'
 " vim-fugitive
 Plug 'tpope/vim-fugitive'
 " vim-gitgutter
@@ -20,20 +18,23 @@ Plug 'airblade/vim-gitgutter'
 Plug 'tpope/vim-surround'
 " JsBeautify
 Plug 'maksimr/vim-jsbeautify'
-" recognize color tags
-Plug 'lilydjwg/colorizer'
 " syntax checking
 Plug 'vim-syntastic/syntastic'
+" lf integration
+Plug 'ptzz/lf.vim'
+" req for lf.vim
+Plug 'rbgrouleff/bclose.vim'
+"""plugin graveyard
+" END PLUGINS
+"" recognize color tags
+"Plug 'lilydjwg/colorizer'
 "" VimCompletesMe
 "Plug 'ajh17/VimCompletesMe'
-" END PLUGINS
 call plug#end()
 
 " end of vim-plug related lines
 
-"colo wal
-colo asmanian_blood
-set tgc
+colo delek
 
 " productivity binds
 
@@ -79,26 +80,29 @@ let g:syntastic_check_on_open = 1
 let g:syntastic_check_on_wq = 0
 
 let g:syntastic_c_checkers = ["cppcheck"]
+let g:syntastic_cpp_checkers = ["cppcheck"]
 let g:syntastic_sh_checkers = ["shellcheck", "sh"]
 
 " lightline config
 set noshowmode
 let g:lightline = {
 	\ 'colorscheme': 'selenized_dark',
-	\ 'separator': {
-	\	'left': '',
-	\	'right': ''
-	\	},
-	\ 'subseparator': {
-	\	'left': '',
-	\	'right': ''
-	\	},
 	\ }
 
+" lf config
+let g:lf_replace_netrw = 1
+
 " betterize
 set path+=**
 
+cno w!! exe 'sil! w !doas tee % >/dev/null' <bar> e!
+nno <space> :noh<return><space>
 " add a ctags shortcut like a shitty goblin
-command! MakeTags !ectags -R .
+com! MakeTags !ectags -R .
 " make make work when im learning c
-autocmd BufRead $HOME/src/c-practice/*.c set makeprg=cc\ --std=c89\ %
+autocmd BufRead $HOME/src/me/c-practice/*.c set makeprg=pcc\ -ansi\ %
+" calcurse notes should be treated as markdown
+autocmd BufRead,BufNewFile /tmp/calcurse* set filetype=markdown
+autocmd BufRead,BufNewFile ~/.local/share/calcurse/notes/* set filetype=markdown
+" ksh should work
+autocmd FileType ksh let g:is_kornshell = 1
diff --git a/config/shrc b/config/shrc
index a3cc31c..bc5162e 100644
--- a/config/shrc
+++ b/config/shrc
@@ -16,7 +16,7 @@ export READER="zathura"
 export MAILER="neomutt"
 export MUSIC="ncmpcpp"
 export RSS="newsboat"
-export ISH="zsh"
+export ISH="ksh"
 export SCR="maim"
 export LOCK="slock"
 export LESS='-iMRS -x2'
@@ -31,4 +31,3 @@ export LESSHISTFILE="-"
 export GOPATH="$HOME/.local/go"
 export CARGO_HOME="$XDG_DATA_HOME/cargo"
 export MEDNAFEN_HOME="$XDG_CONFIG_HOME/mednafen"
-export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
diff --git a/config/wal/colorschemes/dark/base16-causalagency.json b/config/wal/colorschemes/dark/base16-causalagency.json
new file mode 100644
index 0000000..8b21dfd
--- /dev/null
+++ b/config/wal/colorschemes/dark/base16-causalagency.json
@@ -0,0 +1,25 @@
+{
+    "special": {
+        "background": "#14130e",
+        "foreground": "#b7a980",
+        "cursor": "#72694f"
+    },
+    "colors": {
+        "color0": "#161510",
+        "color1": "#a32810",
+        "color2": "#727a18",
+        "color3": "#a37720",
+        "color4": "#3d6266",
+        "color5": "#7a4955",
+        "color6": "#557a55",
+        "color7": "#8e8463",
+        "color8": "#4c4635",
+        "color9": "#cc3214",
+        "color10": "#8e991e",
+        "color11": "#cc9528",
+        "color12": "#4c7b7f",
+        "color13": "#995b6b",
+        "color14": "#6b996b",
+        "color15": "#ccbc8e"
+    }
+}
diff --git a/config/wal/templates/6cord.toml b/config/wal/templates/6cord.toml
index f267982..52b5321 100644
--- a/config/wal/templates/6cord.toml
+++ b/config/wal/templates/6cord.toml
@@ -1,11 +1,14 @@
+# comment to get vim to recognize the ft
+token = ""
 [ properties ]
-	true-color = true
+	true-color = false
 	default-name-color = "{color7}"
 	mention-color = "{color5}"
 	mention-self-color = "{color14}"
 	compact-mode = false
 	syntax-highlight-colorscheme = "native"
 	show-emoji-urls = false
-	obfuscate-words = false
 	shorten-url = false
+	command-prefix = "[${{CHANNEL}}] "
+	default-status = ""
 
diff --git a/config/wal/templates/colors-wal-dmenu.h b/config/wal/templates/colors-wal-dmenu.h
index afcbb8d..d139d56 100644
--- a/config/wal/templates/colors-wal-dmenu.h
+++ b/config/wal/templates/colors-wal-dmenu.h
@@ -1,6 +1,6 @@
 static const char *colors[SchemeLast][2] = {{
 	/*     fg         bg       */
-	[SchemeNorm] = {{ "{color13}", "{color0}" }},
-	[SchemeSel] = {{ "{color13}", "{color4}" }},
+	[SchemeNorm] = {{ "{color4}", "{color0}" }},
+	[SchemeSel] = {{ "{color1}", "{color0}" }},
 	[SchemeOut] = {{ "{color13}", "{color8}" }},
 }};
diff --git a/config/wal/templates/colors-wal-dwm.h b/config/wal/templates/colors-wal-dwm.h
index 133c7a3..eeea645 100644
--- a/config/wal/templates/colors-wal-dwm.h
+++ b/config/wal/templates/colors-wal-dwm.h
@@ -1,9 +1,9 @@
-static const char norm_fg[] = "{color13}";
+static const char norm_fg[] = "{color4}";
 static const char norm_bg[] = "{color0}";
 static const char norm_border[] = "{color8}";
 
-static const char sel_fg[] = "{color13}";
-static const char sel_bg[] = "{color4}";
+static const char sel_fg[] = "{color1}";
+static const char sel_bg[] = "{color0}";
 static const char sel_border[] = "{color9}";
 
 static const char *colors[][3]      = {{
diff --git a/config/wal/templates/dunstrc b/config/wal/templates/dunstrc
index cea407f..61972d6 100644
--- a/config/wal/templates/dunstrc
+++ b/config/wal/templates/dunstrc
@@ -24,7 +24,7 @@
     idle_threshold = 120
 
     ### Text ###
-    font = Terminus 9
+    font = Terminus Medium 8
     line_height = 0
 
     markup = full
@@ -59,7 +59,7 @@
     history_length = 20
 
     ### Misc/Advanced ###
-    dmenu = /usr/local/bin/dmenu -fn "Terminus:style=Regular:pixelsize=12" -nb "{color0}" -nf "{color13}" -sb "{color4}" -sf "{color13}" -p dunst:
+    dmenu = /usr/local/bin/dmenu -p dunst:
     browser = /usr/local/bin/firefox -new-tab
     always_run_script = true
     title = Dunst
diff --git a/config/wal/templates/zathurarc b/config/wal/templates/zathurarc
index ebfd44a..ebb74ca 100644
--- a/config/wal/templates/zathurarc
+++ b/config/wal/templates/zathurarc
@@ -32,3 +32,4 @@ set render-loading-fg "{color15}"
 set window-title-home-tilde true
 set statusbar-basename true
 set selection-clipboard clipboard
+set font "SauceCodePro Nerd Font Mono 10"
diff --git a/config/youtube-dl/config b/config/youtube-dl/config
index 46041ac..0b55e08 100644
--- a/config/youtube-dl/config
+++ b/config/youtube-dl/config
@@ -2,7 +2,7 @@
 # always use axel
 --external-downloader axel
 # coherent output format
---output ~/vid/%(uploader)s:%(title)s.%(ext)s
+--output ~/vid/%(uploader)s/%(title)s.%(ext)s
 # always merge into mkv
 --merge-output-format mkv
 # embed subtitles if they are to be written
diff --git a/config/youtube-dl/config-music b/config/youtube-dl/config-music
index a5cf801..5860766 100644
--- a/config/youtube-dl/config-music
+++ b/config/youtube-dl/config-music
@@ -1,6 +1,6 @@
 # only download audio stream
 --format bestaudio
 # always use axel
---external-downloader axel
+#--external-downloader axel
 # coherent output format
---output ~/mus/%(uploader)s/%(album)s/S%(track_number)s-%(track)s.%(ext)s
+--output ~/mus/%(uploader)s/%(album)s/S%(track_number)02d-%(track)s.%(ext)s
diff --git a/config/zsh/.zshrc b/config/zsh/.zshrc
deleted file mode 120000
index c8b42f4..0000000
--- a/config/zsh/.zshrc
+++ /dev/null
@@ -1 +0,0 @@
-zshrc
\ No newline at end of file
diff --git a/config/zsh/00-opts.zsh b/config/zsh/00-opts.zsh
deleted file mode 100644
index 4573008..0000000
--- a/config/zsh/00-opts.zsh
+++ /dev/null
@@ -1,3 +0,0 @@
-setopt append_history auto_pushd hist_ignore_dups inc_append_history
-setopt interactive_comments list_packed no_auto_menu no_autocd
-setopt no_beep no_share_history pushd_ignore_dups
diff --git a/config/zsh/binds.zsh b/config/zsh/binds.zsh
deleted file mode 100644
index 02c0fc7..0000000
--- a/config/zsh/binds.zsh
+++ /dev/null
@@ -1,12 +0,0 @@
-autoload up-line-or-beginning-search down-line-or-beginning-search edit-command-line
-zle -N up-line-or-beginning-search
-zle -N down-line-or-beginning-search
-zle -N edit-command-line
-bindkey -v
-bindkey -a "!" edit-command-line
-[[ -n "$terminfo[kpp]"   ]] && bindkey "$terminfo[kpp]"   up-line-or-beginning-search   # PAGE UP
-[[ -n "$terminfo[knp]"   ]] && bindkey "$terminfo[knp]"   down-line-or-beginning-search # PAGE DOWN
-[[ -n "$terminfo[khome]" ]] && bindkey "$terminfo[khome]" beginning-of-line             # HOME
-[[ -n "$terminfo[kend]"  ]] && bindkey "$terminfo[kend]"  end-of-line                   # END
-[[ -n "$terminfo[kdch1]" ]] && bindkey "$terminfo[kdch1]" delete-char                   # DELETE
-[[ -n "$terminfo[kbs]"   ]] && bindkey "$terminfo[kbs]"   backward-delete-char          # BACKSPACE
diff --git a/config/zsh/functions.zsh b/config/zsh/functions.zsh
deleted file mode 100644
index fca5709..0000000
--- a/config/zsh/functions.zsh
+++ /dev/null
@@ -1,2 +0,0 @@
-mc() { mkdir $1 && cd $1 }
-pw() { "$(which -p pw)" "$1" "$2" & }
diff --git a/config/zsh/themes/p10k.zsh b/config/zsh/themes/p10k.zsh
deleted file mode 100644
index db7e1a9..0000000
--- a/config/zsh/themes/p10k.zsh
+++ /dev/null
@@ -1,856 +0,0 @@
-# Generated by Powerlevel10k configuration wizard on 2019-10-24 at 12:41 PDT.
-# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh.
-# Wizard options: nerdfont-complete + powerline, small icons, rainbow,
-# slanted separators, slanted heads, flat tails, 2 lines, disconnected, no frame,
-# compact, few icons, concise.
-# Type `p10k configure` to generate another config.
-#
-# Config for Powerlevel10k with powerline prompt style with colorful background.
-# Type `p10k configure` to generate your own config based on it.
-#
-# Tip: Looking for a nice color? Here's a one-liner to print colormap.
-#
-#   for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
-
-# Temporarily change options.
-'builtin' 'local' '-a' 'p10k_config_opts'
-[[ ! -o 'aliases'         ]] || p10k_config_opts+=('aliases')
-[[ ! -o 'sh_glob'         ]] || p10k_config_opts+=('sh_glob')
-[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
-'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
-
-() {
-  emulate -L zsh
-  setopt no_unset extended_glob
-  zmodload zsh/langinfo
-  if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
-    local LC_ALL=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}
-  fi
-
-  # Unset all configuration options. This allows you to apply configuration changes without
-  # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`.
-  unset -m 'POWERLEVEL9K_*'
-
-  # The list of segments shown on the left. Fill it with the most important segments.
-  typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
-      # =========================[ Line #1 ]=========================
-      os_icon                 # os identifier
-      prompt_char             # prompt symbol
-      dir                     # current directory
-      vcs                     # git status
-      # =========================[ Line #2 ]=========================
-      newline
-      # prompt_char             # prompt symbol
-  )
-
-  # The list of segments shown on the right. Fill it with less important segments.
-  # Right prompt on the last prompt line (where you are typing your commands) gets
-  # automatically hidden when the input line reaches it. Right prompt above the
-  # last prompt line gets hidden if it would overlap with left prompt.
-  typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
-      # =========================[ Line #1 ]=========================
-      status                  # exit code of the last command
-      command_execution_time  # duration of the last command
-      background_jobs         # presence of background jobs
-      # virtualenv            # python virtual environment (https://docs.python.org/3/library/venv.html)
-      # anaconda              # conda environment (https://conda.io/)
-      # pyenv                 # python environment (https://github.com/pyenv/pyenv)
-      # nodenv                # node.js version from nodenv (https://github.com/nodenv/nodenv)
-      # nvm                   # node.js version from nvm (https://github.com/nvm-sh/nvm)
-      # nodeenv               # node.js environment (https://github.com/ekalinin/nodeenv)
-      # node_version          # node.js version
-      # go_version            # go version (https://golang.org)
-      # rust_version          # rustc version (https://www.rust-lang.org)
-      # dotnet_version        # .NET version (https://dotnet.microsoft.com)
-      # rbenv                 # ruby version from rbenv (https://github.com/rbenv/rbenv)
-      # rvm                   # ruby version from rvm (https://rvm.io)
-      # kubecontext           # current kubernetes context (https://kubernetes.io/)
-      # terraform             # terraform workspace (https://www.terraform.io)
-      # aws                   # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
-      # aws_eb_env            # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
-      # azure                 # azure account name (https://docs.microsoft.com/en-us/cli/azure)
-      context                 # user@hostname
-      # nordvpn               # nordvpn connection status, linux only (https://nordvpn.com/)
-      # ranger                # ranger shell (https://github.com/ranger/ranger)
-      # vpn_ip                # virtual private network indicator
-      # ram                   # free RAM
-      # load                  # CPU load
-      # time                  # current time
-      # =========================[ Line #2 ]=========================
-      newline
-      # public_ip             # public IP address
-      # proxy                 # system-wide http/https/ftp proxy
-      # battery               # internal battery
-      # example               # example user-defined segment (see prompt_example function below)
-  )
-
-  # To disable default icons for all segments, set POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION=''.
-  #
-  # To enable default icons for all segments, don't define POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION
-  # or set it to '${P9K_VISUAL_IDENTIFIER}'.
-  #
-  # To remove trailing space from all default icons, set POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION
-  # to '${P9K_VISUAL_IDENTIFIER% }'.
-  #
-  # To enable default icons for one segment (e.g., dir), set
-  # POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'.
-  #
-  # To assign a specific icon to one segment (e.g., dir), set
-  # POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='⭐'.
-  #
-  # To assign a specific icon to a segment in a given state (e.g., dir in state NOT_WRITABLE),
-  # set POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'.
-  #
-  # Note: You can use $'\u2B50' instead of '⭐'. It's especially convenient when specifying
-  # icons that your text editor cannot render. Don't forget to put $ and use single quotes when
-  # defining icons via Unicode codepoints.
-  #
-  # Note: Many default icons cannot be displayed with system fonts. You'll need to install a
-  # capable font to use them. See POWERLEVEL9K_MODE below.
-  typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER// }'
-
-  # This option makes a difference only when default icons are enabled for all or some prompt
-  # segments (see POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION above). LOCK_ICON can be printed as
-  # $'\uE0A2', $'\uE138' or $'\uF023' depending on POWERLEVEL9K_MODE. The correct value of this
-  # parameter depends on the provider of the font your terminal is using.
-  #
-  #   Font Provider                    | POWERLEVEL9K_MODE
-  #   ---------------------------------+-------------------
-  #   Powerline                        | powerline
-  #   Font Awesome                     | awesome-fontconfig
-  #   Adobe Source Code Pro            | awesome-fontconfig
-  #   Source Code Pro                  | awesome-fontconfig
-  #   Awesome-Terminal Fonts (regular) | awesome-fontconfig
-  #   Awesome-Terminal Fonts (patched) | awesome-patched
-  #   Nerd Fonts                       | nerdfont-complete
-  #   Other                            | compatible
-  #
-  # If this looks overwhelming, either stick with a preinstalled system font and set
-  # POWERLEVEL9K_MODE=compatible, or install the recommended Powerlevel10k font from
-  # https://github.com/romkatv/powerlevel10k/#recommended-meslo-nerd-font-patched-for-powerlevel10k
-  # and set POWERLEVEL9K_MODE=nerdfont-complete.
-  typeset -g POWERLEVEL9K_MODE=nerdfont-complete
-
-  # When set to true, icons appear before content on both sides of the prompt. When set
-  # to false, icons go after content. If empty or not set, icons go before content in the left
-  # prompt and after content in the right prompt.
-  #
-  # You can also override it for a specific segment:
-  #
-  #   POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false
-  #
-  # Or for a specific segment in specific state:
-  #
-  #   POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false
-  typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=
-
-  # Add an empty line before each prompt.
-  typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
-
-  # Connect left prompt lines with these symbols. You'll probably want to use the same color
-  # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below.
-  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=
-  typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX=
-  typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX=
-  # Connect right prompt lines with these symbols.
-  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX=
-  typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX=
-  typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX=
-
-  # Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or
-  # '─'. The last two make it easier to see the alignment between left and right prompt and to
-  # separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
-  # for more compact prompt if using using this option.
-  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '
-  typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND=
-  if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then
-    # The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE
-    # ornaments defined above.
-    typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=242
-    # Start filler from the edge of the screen if there are no left segments on the first line.
-    typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}'
-    # End filler on the edge of the screen if there are no right segments on the first line.
-    typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}'
-  fi
-
-  # Separator between same-color segments on the left.
-  typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\uE0B9'
-  # Separator between same-color segments on the right.
-  typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\uE0B9'
-  # Separator between different-color segments on the left.
-  typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B8'
-  # Separator between different-color segments on the right.
-  typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0BE'
-  # The right end of left prompt.
-  typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B8'
-  # The left end of right prompt.
-  typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0BE'
-  # The left end of left prompt.
-  typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=''
-  # The right end of right prompt.
-  typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL=''
-  # Left prompt terminator for lines without any segments.
-  typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
-
-  #################################[ os_icon: os identifier ]##################################
-  # OS identifier color.
-  # typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=255
-  # typeset -g POWERLEVEL9K_OS_ICON_BACKGROUND=0
-  # Make the icon bold.
-  typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='${P9K_CONTENT// }'
-
-  ################################[ prompt_char: prompt symbol ]################################
-  # Transparent background.
-  typeset -g POWERLEVEL9K_PROMPT_CHAR_BACKGROUND=8
-  # Green prompt symbol if the last command succeeded.
-  typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS}_FOREGROUND=76
-  # Red prompt symbol if the last command failed.
-  typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS}_FOREGROUND=196
-  # Default prompt symbol.
-  # typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯'
-  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION=' INSERT '
-  # Prompt symbol in command vi mode.
-  # typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮'
-  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION=' NORMAL '
-  # Prompt symbol in visual vi mode.
-  # typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='Ⅴ'
-  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION=' VISUAL '
-  # Prompt symbol in overwrite vi mode.
-  # typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶'
-  typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION=' REPLACE '
-  typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true
-  # No line terminator if prompt_char is the last segment.
-  typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
-  # No line introducer if prompt_char is the first segment.
-  typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=
-  # No surrounding whitespace.
-  typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE=
-
-  ##################################[ dir: current directory ]##################################
-  # Current directory background color.
-  # typeset -g POWERLEVEL9K_DIR_BACKGROUND=4
-  # Default current directory foreground color.
-  typeset -g POWERLEVEL9K_DIR_FOREGROUND=254
-  # If directory is too long, shorten some of its segments to the shortest possible unique
-  # prefix. The shortened directory can be tab-completed to the original.
-  typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique
-  # Replace removed segment suffixes with this symbol.
-  typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=
-  # Color of the shortened directory segments.
-  typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=250
-  # Color of the anchor directory segments. Anchor segments are never shortened. The first
-  # segment is always an anchor.
-  typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=255
-  # Display anchor directory segments in bold.
-  typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true
-  # Don't shorten directories that contain any of these files. They are anchors.
-  local anchor_files=(
-    .bzr
-    .citc
-    .git
-    .hg
-    .node-version
-    .python-version
-    .ruby-version
-    .shorten_folder_marker
-    .svn
-    .terraform
-    CVS
-    Cargo.toml
-    composer.json
-    go.mod
-    package.json
-  )
-  typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
-  # Don't shorten this many last directory segments. They are anchors.
-  typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
-  # Shorten directory if it's longer than this even if there is space for it. The value can
-  # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty,
-  # directory will be shortened only when prompt doesn't fit or when other parameters demand it
-  # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below).
-  typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80
-  # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this
-  # many columns for typing commands.
-  typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40
-  # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least
-  # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands.
-  typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50
-  # If set to true, embed a hyperlink into the directory. Useful for quickly
-  # opening a directory in the file manager simply by clicking the link.
-  # Can also be handy when the directory is shortened, as it allows you to see
-  # the full directory that was used in previous commands.
-  typeset -g POWERLEVEL9K_DIR_HYPERLINK=false
-
-  # Enable special styling for non-writable directories.
-  typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=true
-  # Show this icon when the current directory is not writable. POWERLEVEL9K_DIR_SHOW_WRITABLE
-  # above must be set to true for this parameter to have effect.
-  # typeset -g POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  # Custom prefix.
-  # typeset -g POWERLEVEL9K_DIR_PREFIX='in '
-
-  # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons for different directories.
-  # It must be an array with 3 * N elements. Each triplet consists of:
-  #
-  #   1. A pattern against which the current directory is matched. Matching is done with
-  #      extended_glob option enabled.
-  #   2. Directory class for the purpose of styling.
-  #   3. Icon.
-  #
-  # Triplets are tried in order. The first triplet whose pattern matches $PWD wins. If there
-  # are no matches, the directory will have no icon.
-  #
-  # Example:
-  #
-  #   typeset -g POWERLEVEL9K_DIR_CLASSES=(
-  #       '~/work(/*)#'  WORK     '(╯°□°)╯︵ ┻━┻'
-  #       '~(/*)#'       HOME     '⌂'
-  #       '*'            DEFAULT  '')
-  #
-  # With these settings, the current directory in the prompt may look like this:
-  #
-  #   (╯°□°)╯︵ ┻━┻ ~/work/projects/important/urgent
-  #
-  # Or like this:
-  #
-  #   ⌂ ~/best/powerlevel10k
-  #
-  # You can also set different colors for directories of different classes. Remember to override
-  # FOREGROUND, SHORTENED_FOREGROUND and ANCHOR_FOREGROUND for every directory class that you wish
-  # to have its own color.
-  #
-  #   typeset -g POWERLEVEL9K_DIR_WORK_BACKGROUND=4
-  #   typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=254
-  #   typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=250
-  #   typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=255
-  #
-  typeset -g POWERLEVEL9K_DIR_CLASSES=()
-
-  #####################################[ vcs: git status ]######################################
-  # Versio control system colors.
-  # typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2
-  # typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3
-  # typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2
-  # typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3
-  # typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=8
-
-  # Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
-  typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\uF126 '
-  POWERLEVEL9K_VCS_BRANCH_ICON=${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}
-
-  # Untracked files icon. It's really a question mark, your font isn't broken.
-  # Change the value of this parameter to show a different icon.
-  typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'
-  POWERLEVEL9K_VCS_UNTRACKED_ICON=${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}
-
-  # Formatter for Git status.
-  #
-  # Example output: master ⇣42⇡42 *42 merge ~42 +42 !42 ?42.
-  #
-  # You can edit the function to customize how Git status looks.
-  #
-  # VCS_STATUS_* parameters are set by gitstatus plugin. See reference:
-  # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.
-  function my_git_formatter() {
-    emulate -L zsh
-
-    if [[ -n $P9K_CONTENT ]]; then
-      # If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from
-      # gitstatus plugin). VCS_STATUS_* parameters are not available in this case.
-      typeset -g my_git_format=$P9K_CONTENT
-      return
-    fi
-
-    # Styling for different parts of Git status.
-    local       meta='%7F' # white foreground
-    local      clean='%0F' # black foreground
-    local   modified='%0F' # black foreground
-    local  untracked='%0F' # black foreground
-    local conflicted='%1F' # red foreground
-
-    local res
-    local where  # branch name, tag or commit
-    if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then
-      res+="${clean}${POWERLEVEL9K_VCS_BRANCH_ICON}"
-      where=${(V)VCS_STATUS_LOCAL_BRANCH}
-    elif [[ -n $VCS_STATUS_TAG ]]; then
-      res+="${meta}#"
-      where=${(V)VCS_STATUS_TAG}
-    else
-      res+="${meta}@"
-      where=${VCS_STATUS_COMMIT[1,8]}
-    fi
-
-    # If local branch name or tag is at most 32 characters long, show it in full.
-    # Otherwise show the first 12 … the last 12.
-    (( $#where > 32 )) && where[13,-13]="…"
-    res+="${clean}${where//\%/%%}"  # escape %
-
-    # Show tracking branch name if it differs from local branch.
-    if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then
-      res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}"  # escape %
-    fi
-
-    # ⇣42 if behind the remote.
-    (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
-    # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
-    (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
-    (( VCS_STATUS_COMMITS_AHEAD  )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
-    # *42 if have stashes.
-    (( VCS_STATUS_STASHES        )) && res+=" ${clean}*${VCS_STATUS_STASHES}"
-    # 'merge' if the repo is in an unusual state.
-    [[ -n $VCS_STATUS_ACTION     ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}"
-    # ~42 if have merge conflicts.
-    (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}"
-    # +42 if have staged changes.
-    (( VCS_STATUS_NUM_STAGED     )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}"
-    # !42 if have unstaged changes.
-    (( VCS_STATUS_NUM_UNSTAGED   )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}"
-    # ?42 if have untracked files. It's really a question mark, your font isn't broken.
-    # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon.
-    # Remove the next line if you don't want to see untracked files at all.
-    (( VCS_STATUS_NUM_UNTRACKED  )) && res+=" ${untracked}${POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}"
-
-    typeset -g my_git_format=$res
-  }
-  functions -M my_git_formatter 2>/dev/null
-
-  # Disable the default Git status formatting.
-  typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true
-  # Install our own Git status formatter.
-  typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}'
-  # Enable counters for staged, unstaged, etc.
-  typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1
-
-  # Custom icon.
-  typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION=
-  # Custom prefix.
-  # typeset -g POWERLEVEL9K_VCS_PREFIX='on '
-
-  # Show status of repositories of these types. You can add svn and/or hg if you are
-  # using them. If you do, your prompt may become slow even when your current directory
-  # isn't in an svn or hg reposotiry.
-  typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
-
-  ##########################[ status: exit code of the last command ]###########################
-  # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and
-  # style them independently from the regular OK and ERROR state.
-  typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true
-
-  # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as
-  # it will signify success by turning green.
-  typeset -g POWERLEVEL9K_STATUS_OK=false
-  typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔'
-  # typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2
-  # typeset -g POWERLEVEL9K_STATUS_OK_BACKGROUND=0
-
-  # Status when some part of a pipe command fails but the overall exit status is zero. It may look
-  # like this: 1|0.
-  typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true
-  typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔'
-  # typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2
-  # typeset -g POWERLEVEL9K_STATUS_OK_PIPE_BACKGROUND=0
-
-  # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as
-  # it will signify error by turning red.
-  typeset -g POWERLEVEL9K_STATUS_ERROR=false
-  typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='↵'
-  # typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=3
-  # typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=1
-
-  # Status when the last command was terminated by a signal.
-  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true
-  # Use terse signal names: "INT" instead of "SIGINT(2)".
-  typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false
-  typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='↵'
-  # typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=3
-  # typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_BACKGROUND=1
-
-  # Status when some part of a pipe command fails and the overall exit status is also non-zero.
-  # It may look like this: 1|0.
-  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true
-  typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='↵'
-  # typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=3
-  # typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_BACKGROUND=1
-
-  ###################[ command_execution_time: duration of the last command ]###################
-  # Execution time color.
-  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=0
-  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=3
-  # Show duration of the last command if takes longer than this many seconds.
-  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
-  # Show this many fractional digits. Zero means round to seconds.
-  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
-  # Duration format: 1d 2h 3m 4s.
-  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
-  # Custom icon.
-  typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION=
-  # Custom prefix.
-  # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='took '
-
-  #######################[ background_jobs: presence of background jobs ]#######################
-  # Background jobs color.
-  # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=6
-  # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=0
-  # Don't show the number of background jobs.
-  typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
-  # Icon to show when there are background jobs.
-  typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER// }'
-
-  ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########
-  # NordVPN connection indicator color.
-  # typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=7
-  # typeset -g POWERLEVEL9K_NORDVPN_BACKGROUND=4
-  # Hide NordVPN connection indicator when not connected.
-  typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION=
-  typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION=
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]##################
-  # Ranger shell color.
-  # typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3
-  # typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ######################################[ ram: free RAM ]#######################################
-  # RAM color.
-  # typeset -g POWERLEVEL9K_RAM_FOREGROUND=0
-  # typeset -g POWERLEVEL9K_RAM_BACKGROUND=3
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ######################################[ load: CPU load ]######################################
-  # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15.
-  typeset -g POWERLEVEL9K_LOAD_WHICH=5
-  # Load color when load is under 50%.
-  # typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=0
-  # typeset -g POWERLEVEL9K_LOAD_NORMAL_BACKGROUND=2
-  # Load color when load is between 50% and 70%.
-  # typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=0
-  # typeset -g POWERLEVEL9K_LOAD_WARNING_BACKGROUND=3
-  # Load color when load is over 70%.
-  # typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=0
-  # typeset -g POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND=1
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ##################################[ context: user@hostname ]##################################
-  # Default context color.
-  typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=3
-  typeset -g POWERLEVEL9K_CONTEXT_BACKGROUND=0
-  # Default context format: %n is username, %m is hostname.
-  typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'
-
-  # Context color when running with privileges.
-  typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1
-  typeset -g POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND=0
-  # Context format when running with privileges: %n is username, %m is hostname.
-  typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%n@%m'
-
-  # Don't show context unless running with privileges or in SSH.
-  # Tip: Remove the next line to always show context.
-  typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
-
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐'
-  # Custom prefix.
-  # typeset -g POWERLEVEL9K_CONTEXT_PREFIX='with '
-
-  ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]###
-  # Python virtual environment color.
-  # typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=0
-  # typeset -g POWERLEVEL9K_VIRTUALENV_BACKGROUND=4
-  # Don't show Python version next to the virtual environment name.
-  typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
-  # Separate environment name from Python version only with a space.
-  typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  #####################[ anaconda: conda environment (https://conda.io/) ]######################
-  # Anaconda environment color.
-  # typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=0
-  # typeset -g POWERLEVEL9K_ANACONDA_BACKGROUND=4
-  # Don't show Python version next to the anaconda environment name.
-  typeset -g POWERLEVEL9K_ANACONDA_SHOW_PYTHON_VERSION=false
-  # Separate environment name from Python version only with a space.
-  typeset -g POWERLEVEL9K_ANACONDA_{LEFT,RIGHT}_DELIMITER=
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################
-  # Pyenv color.
-  # typeset -g POWERLEVEL9K_PYENV_FOREGROUND=0
-  # typeset -g POWERLEVEL9K_PYENV_BACKGROUND=4
-  # Don't show the current Python version if it's the same as global.
-  typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########
-  # Nodenv color.
-  # typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2
-  # typeset -g POWERLEVEL9K_NODENV_BACKGROUND=0
-  # Don't show node version if it's the same as global: $(nodenv version-name) == $(nodenv global).
-  typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
-  # Nvm color.
-  # typeset -g POWERLEVEL9K_NVM_FOREGROUND=70
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############
-  # Nodeenv color.
-  # typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2
-  # typeset -g POWERLEVEL9K_NODEENV_BACKGROUND=0
-  # Don't show Node version next to the environment name.
-  typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false
-  # Separate environment name from Node version only with a space.
-  typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER=
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ##############################[ node_version: node.js version ]###############################
-  # Node version color.
-  # typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=7
-  # typeset -g POWERLEVEL9K_NODE_VERSION_BACKGROUND=2
-  # Show node version only when in a directory tree containing package.json.
-  typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  #######################[ go_version: go version (https://golang.org) ]########################
-  # Go version color.
-  # typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=255
-  # typeset -g POWERLEVEL9K_GO_VERSION_BACKGROUND=2
-  # Show go version only when in a go project subdirectory.
-  typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  #################[ rust_version: rustc version (https://www.rust-lang.org) ]##################
-  # Rust version color.
-  # typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=0
-  # typeset -g POWERLEVEL9K_RUST_VERSION_BACKGROUND=208
-  # Show rust version only when in a rust project subdirectory.
-  typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################
-  # .NET version color.
-  # typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=7
-  # typeset -g POWERLEVEL9K_DOTNET_VERSION_BACKGROUND=5
-  # Show .NET version only when in a .NET project subdirectory.
-  typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############
-  # Rbenv color.
-  # typeset -g POWERLEVEL9K_RBENV_FOREGROUND=0
-  # typeset -g POWERLEVEL9K_RBENV_BACKGROUND=1
-  # Don't show ruby version if it's the same as global: $(rbenv version-name) == $(rbenv global).
-  typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  #######################[ rvm: ruby version from rvm (https://rvm.io) ]########################
-  # Rvm color.
-  # typeset -g POWERLEVEL9K_RVM_FOREGROUND=0
-  # typeset -g POWERLEVEL9K_RVM_BACKGROUND=240
-  # Don't show @gemset at the end.
-  typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false
-  # Don't show ruby- at the front.
-  typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ################[ terraform: terraform workspace (https://www.terraform.io) ]#################
-  # Terraform color.
-  # typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=4
-  # typeset -g POWERLEVEL9K_TERRAFORM_BACKGROUND=0
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
-  # AWS profile color.
-  # typeset -g POWERLEVEL9K_AWS_FOREGROUND=7
-  # typeset -g POWERLEVEL9K_AWS_BACKGROUND=1
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_AWS_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#
-  # AWS Elastic Beanstalk environment color.
-  # typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2
-  # typeset -g POWERLEVEL9K_AWS_EB_ENV_BACKGROUND=0
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########
-  # Azure account name color.
-  # typeset -g POWERLEVEL9K_AZURE_FOREGROUND=7
-  # typeset -g POWERLEVEL9K_AZURE_BACKGROUND=4
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
-  # Kubernetes context classes for the purpose of using different colors, icons and expansions with
-  # different contexts.
-  #
-  # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element
-  # in each pair defines a pattern against which the current kubernetes context gets matched.
-  # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
-  # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters,
-  # you'll see this value in your prompt. The second element of each pair in
-  # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The
-  # first match wins.
-  #
-  # For example, given these settings:
-  #
-  #   typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
-  #     '*prod*'  PROD
-  #     '*test*'  TEST
-  #     '*'       DEFAULT)
-  #
-  # If your current kubernetes context is "deathray-testing/default", its class is TEST
-  # because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'.
-  #
-  # You can define different colors, icons and content expansions for different classes:
-  #
-  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=0
-  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_BACKGROUND=2
-  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
-  #   typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
-  typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
-      # '*prod*'  PROD    # These values are examples that are unlikely
-      # '*test*'  TEST    # to match your needs. Customize them as needed.
-      '*'       DEFAULT)
-  typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=7
-  typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_BACKGROUND=5
-  # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext
-  # segment. Parameter expansions are very flexible and fast, too. See reference:
-  # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
-  #
-  # Within the expansion the following parameters are always available:
-  #
-  # - P9K_CONTENT                The content that would've been displayed if there was no content
-  #                              expansion defined.
-  # - P9K_KUBECONTEXT_NAME       The current context's name. Corresponds to column NAME in the
-  #                              output of `kubectl config get-contexts`.
-  # - P9K_KUBECONTEXT_CLUSTER    The current context's cluster. Corresponds to column CLUSTER in the
-  #                              output of `kubectl config get-contexts`.
-  # - P9K_KUBECONTEXT_NAMESPACE  The current context's namespace. Corresponds to column NAMESPACE
-  #                              in the output of `kubectl config get-contexts`. If there is no
-  #                              namespace, the parameter is set to "default".
-  #
-  # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS),
-  # the following extra parameters are available:
-  #
-  # - P9K_KUBECONTEXT_CLOUD_NAME     Either "gke" or "eks".
-  # - P9K_KUBECONTEXT_CLOUD_ACCOUNT  Account/project ID.
-  # - P9K_KUBECONTEXT_CLOUD_ZONE     Availability zone.
-  # - P9K_KUBECONTEXT_CLOUD_CLUSTER  Cluster.
-  #
-  # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example,
-  # if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01":
-  #
-  #   - P9K_KUBECONTEXT_CLOUD_NAME=gke
-  #   - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account
-  #   - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a
-  #   - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
-  #
-  # If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01":
-  #
-  #   - P9K_KUBECONTEXT_CLOUD_NAME=eks
-  #   - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012
-  #   - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1
-  #   - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
-  typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=
-  # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME.
-  POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'
-  # Append the current context's namespace if it's not "default".
-  POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'
-
-  # Custom prefix.
-  # typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at '
-
-  ###############################[ public_ip: public IP address ]###############################
-  # Public IP color.
-  # typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=7
-  # typeset -g POWERLEVEL9K_PUBLIC_IP_BACKGROUND=0
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ########################[ vpn_ip: virtual private network indicator ]#########################
-  # VPN IP color.
-  # typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=0
-  # typeset -g POWERLEVEL9K_VPN_IP_BACKGROUND=6
-  # When on VPN, show just an icon without the IP address.
-  typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
-  # Regular expression for the VPN network interface. Run ifconfig while on VPN to see the
-  # name of the interface.
-  typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(wg|(.*tun))[0-9]*'
-  # Icon to show when on VPN.
-  typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER// }'
-
-  #########################[ proxy: system-wide http/https/ftp proxy ]##########################
-  # Proxy color.
-  # typeset -g POWERLEVEL9K_PROXY_FOREGROUND=4
-  # typeset -g POWERLEVEL9K_PROXY_BACKGROUND=0
-  # Custom icon.
-  # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
-  ################################[ battery: internal battery ]#################################
-  # Show battery in red when it's below this level and not connected to power supply.
-  typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20
-  typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1
-  # Show battery in green when it's charging or fully charged.
-  typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=2
-  # Show battery in yellow when it's discharging.
-  typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3
-  # Battery pictograms going from low to high level of charge.
-  typeset -g POWERLEVEL9K_BATTERY_STAGES=$'\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578'
-  # Don't show the remaining time to charge/discharge.
-  typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
-  # typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=0
-
-  ####################################[ time: current time ]####################################
-  # Current time color.
-  # typeset -g POWERLEVEL9K_TIME_FOREGROUND=0
-  # typeset -g POWERLEVEL9K_TIME_BACKGROUND=7
-  # Format for the current time: 09:51:02. See `man 3 strftime`.
-  typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
-  # If set to true, time will update when you hit enter. This way prompts for the past
-  # commands will contain the start times of their commands as opposed to the default
-  # behavior where they contain the end times of their preceding commands.
-  typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
-  # Custom icon.
-  typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION=
-  # Custom prefix.
-  # typeset -g POWERLEVEL9K_TIME_PREFIX='at '
-
-  # Example of a user-defined prompt segment. Function prompt_example will be called on every
-  # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
-  # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user.
-  #
-  # Type `p10k help segment` for documentation and a more sophisticated example.
-  function prompt_example() {
-    p10k segment -b red -f yellow -i '⭐' -t 'hello, %n'
-  }
-
-  # User-defined prompt segments can be customized the same way as built-in segments.
-  # typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=4
-  typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
-}
-
-(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
-'builtin' 'unset' 'p10k_config_opts'
diff --git a/config/zsh/zshrc b/config/zsh/zshrc
deleted file mode 100644
index 559b1ca..0000000
--- a/config/zsh/zshrc
+++ /dev/null
@@ -1,53 +0,0 @@
-export XDG_CACHE_HOME=${XDG_CACHE_HOME:=~/.cache}
-export XDG_CONFIG_HOME=${XDG_CONFIG_HOME:=~/.config}
-export XDG_DATA_HOME=${XDG_DATA_HOME:=~/.local/share}
-if printf "$PATH"|grep -q ".local/bin"; then
-	export PATH="$PATH:$HOME/.local/bin"
-fi
-
-HISTFILE=$XDG_DATA_HOME/zsh/histfile
-HISTSIZE=5000
-SAVEHIST=5000
-
-typeset -A ZPLGM
-ZPLG_HOME=$XDG_CACHE_HOME/zsh/zplugin
-ZPLGM[HOME_DIR]=$ZPLG_HOME
-ZPLGM[ZCOMPDUMP_PATH]=$XDG_CACHE_HOME/zsh/zcompdump
-ZPLGM[COMPLETIONS_DIR]=$XDG_DATA_HOME/zsh/completions
-if [[ ! -f $ZPLG_HOME/bin/zplugin.zsh ]]; then
-	git clone https://github.com/zdharma/zplugin $ZPLG_HOME/bin
-	zcompile $ZPLG_HOME/bin/zplugin.zsh
-fi
-autoload -Uz _zplugin
-(( ${+_comps} )) && _comps[zplugin]=_zplugin
-source $ZPLG_HOME/bin/zplugin.zsh
-load=light
-
-#load zsh external configs
-for file in $ZDOTDIR/*.zsh; do
-	source "$file"
-done
-#make fpath not contain all the completions I don't use (enable completions using "zplugin creinstall [PATH_TO_COMPLETIONS_FOLDER]")
-if [[ -d /usr/local/share/zsh ]]; then
-fpath=($XDG_DATA_HOME/zsh/completions /usr/local/share/zsh/site-functions /usr/local/share/zsh/$ZSH_VERSION/functions/Calendar /usr/local/share/zsh/$ZSH_VERSION/functions/Chpwd /usr/local/share/zsh/$ZSH_VERSION/functions/Completion /usr/local/share/zsh/$ZSH_VERSION/functions/Exceptions /usr/local/share/zsh/$ZSH_VERSION/functions/MIME /usr/local/share/zsh/$ZSH_VERSION/functions/Exceptions /usr/local/share/zsh/$ZSH_VERSION/functions/Math /usr/local/share/zsh/$ZSH_VERSION/functions/Exceptions /usr/local/share/zsh/$ZSH_VERSION/functions/Misc /usr/local/share/zsh/$ZSH_VERSION/functions/TCP /usr/local/share/zsh/$ZSH_VERSION/functions/VCS_Info /usr/local/share/zsh/$ZSH_VERSION/functions/VCS_Info/Backends /usr/local/share/zsh/$ZSH_VERSION/functions/Zftp /usr/local/share/zsh/$ZSH_VERSION/functions/Zle)
-else
-fpath=($XDG_DATA_HOME/zsh/completions /usr/share/zsh/site-functions /usr/share/zsh/$ZSH_VERSION/functions/Calendar /usr/share/zsh/$ZSH_VERSION/functions/Chpwd /usr/share/zsh/$ZSH_VERSION/functions/Completion /usr/share/zsh/$ZSH_VERSION/functions/Exceptions /usr/share/zsh/$ZSH_VERSION/functions/MIME /usr/share/zsh/$ZSH_VERSION/functions/Exceptions /usr/share/zsh/$ZSH_VERSION/functions/Math /usr/share/zsh/$ZSH_VERSION/functions/Exceptions /usr/share/zsh/$ZSH_VERSION/functions/Misc /usr/share/zsh/$ZSH_VERSION/functions/TCP /usr/share/zsh/$ZSH_VERSION/functions/VCS_Info /usr/share/zsh/$ZSH_VERSION/functions/VCS_Info/Backends /usr/share/zsh/$ZSH_VERSION/functions/Zftp /usr/share/zsh/$ZSH_VERSION/functions/Zle)
-fi
-# load shortcutrc and aliasrc to grab cross-shell niceties
-[ -f "$XDG_CONFIG_HOME/shortcutrc" ] && source "$XDG_CONFIG_HOME/shortcutrc"
-[ -f "$XDG_CONFIG_HOME/aliasrc" ] && source "$XDG_CONFIG_HOME/aliasrc"
-# plugin loading goes here:
-# theme
-zplugin ice silent depth=1
-zplugin $load romkatv/powerlevel10k
-# Ctrl-R functionality
-zplugin $load zdharma/history-search-multi-word
-# completions
-zplugin ice blockf
-zplugin $load zsh-users/zsh-completions
-# good, fast syntax highlighting
-zplugin ice silent wait!1 atload"ZPLGM[COMPINIT_OPTS]=-C; zpcompinit"
-zplugin $load zdharma/fast-syntax-highlighting
-
-# theme config loading
-[ -f "$ZDOTDIR/themes/p10k.zsh" ] && source "$ZDOTDIR/themes/p10k.zsh"