Initial (re)-commit - dotfiles - arsenal of config files, ready to be cloned in new (virtual) machines.
HTML git clone git://git.drkhsh.at/dotfiles.git
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
---
DIR commit f6f8dfa3027d0e02756599716c7eb96fbcd5e6dd
HTML Author: drkhsh <me@drkhsh.at>
Date: Sat, 7 Jan 2023 01:06:13 +0100
Initial (re)-commit
Diffstat:
A .gitmodules | 6 ++++++
A bash/.bashrc | 49 +++++++++++++++++++++++++++++++
A git/.gitconfig | 16 ++++++++++++++++
A mksh/.mkshrc | 32 +++++++++++++++++++++++++++++++
A vim/.vim/colors/cyberpunk-neon.vim | 178 +++++++++++++++++++++++++++++++
A vim/.vim/pack/themes/start/dracula | 1 +
A vim/.vim/pack/themes/start/gruvbox | 1 +
A vim/.vimrc | 63 +++++++++++++++++++++++++++++++
A zsh/.zshrc | 99 +++++++++++++++++++++++++++++++
9 files changed, 445 insertions(+), 0 deletions(-)
---
DIR diff --git a/.gitmodules b/.gitmodules
@@ -0,0 +1,6 @@
+[submodule "gruvbox"]
+ path = vim/.vim/pack/themes/start/gruvbox
+ url = https://github.com/morhetz/gruvbox.git
+[submodule "dracula"]
+ path = vim/.vim/pack/themes/start/dracula
+ url = https://github.com/dracula/vim.git
DIR diff --git a/bash/.bashrc b/bash/.bashrc
@@ -0,0 +1,49 @@
+bind 'set bell-style none'
+
+# history
+HISTSIZE=10000
+HISTFILE=~/.bash_history
+shopt -s histappend
+PROMPT_COMMAND='history -a' # save hist immediately
+export HISTCONTROL=ignorespace:ignoredups
+
+# exists helper
+_exists() {
+ hash $1 2> /dev/null
+}
+
+# aliases
+alias mkdir="mkdir -p"
+alias df="df -h"
+alias du="du -h"
+alias ..='cd ..'
+alias ...='cd ../..'
+_exists vim && alias vi="vim"
+_exists doas && alias sudo="doas"
+alias stopwatch="time cat"
+
+# env vars
+export MANWIDTH=80
+export LESSHISTFILE=-
+_exists vim && export EDITOR="vim"
+_exists less && export PAGER="less"
+_exists brave-bin && export BROWSER="brave-bin"
+_exists brave-browser && export BROWSER="brave-browser"
+_exists systemctl && export SYSTEMD_PAGER=
+
+# deeply nested folders
+function up {
+ if [[ "$#" < 1 ]] ; then
+ cd ..
+ else
+ CDSTR=""
+ for i in {1..$1} ; do
+ CDSTR="../$CDSTR"
+ done
+ cd $CDSTR
+ fi
+}
+
+# starship prompt
+_exists starship && eval "$(starship init bash)"
+
DIR diff --git a/git/.gitconfig b/git/.gitconfig
@@ -0,0 +1,16 @@
+[user]
+ email = me@drkhsh.at
+ name = drkhsh
+
+[alias]
+ a = add
+ c = commit
+ p = push
+ s = status
+ d = diff
+ o = checkout
+ f = fetch
+ b = branch
+ l = log
+ m = merge
+ r = rebase
DIR diff --git a/mksh/.mkshrc b/mksh/.mkshrc
@@ -0,0 +1,32 @@
+# history
+HISTFILE=~/.mksh_history
+HISTSIZE=10000
+
+alias mkdir="mkdir -p"
+alias df="df -h"
+alias du="du -h"
+alias ..='cd ..'
+alias ...='cd ../..'
+alias vi="vim"
+alias stopwatch="time cat"
+
+# env vars
+export MANWIDTH=80
+export LESSHISTFILE=-
+export EDITOR="vim"
+export PAGER="less"
+export SYSTEMD_PAGER=
+
+# deeply nested folders
+function up {
+ if [[ "$#" < 1 ]] ; then
+ cd ..
+ else
+ CDSTR=""
+ for i in {1..$1} ; do
+ CDSTR="../$CDSTR"
+ done
+ cd $CDSTR
+ fi
+}
+
DIR diff --git a/vim/.vim/colors/cyberpunk-neon.vim b/vim/.vim/colors/cyberpunk-neon.vim
@@ -0,0 +1,178 @@
+" cyberpunk-neon.vim -- Vim color scheme.
+" Author: Roberto Michán Sánchez (Roboron) (robertoms258@gmail.com)
+" Webpage: https://github.com/Roboron3042/Cyberpunk-Neon
+" Description: A dark theme with a cyberpunk/outrun feeling
+
+hi clear
+
+if exists("syntax_on")
+ syntax reset
+endif
+
+let colors_name = "cyberpunk-neon"
+
+if ($TERM =~ '256' || &t_Co >= 256) || has("gui_running")
+ hi ColorColumn ctermbg=9 ctermfg=233 cterm=NONE guibg=#ff0000 guifg=#000b1e gui=NONE
+ hi CursorColumn ctermbg=NONE ctermfg=201 cterm=NONE guibg=NONE guifg=#ea00d9 gui=NONE
+ hi SpellLocal ctermbg=44 ctermfg=233 cterm=NONE guibg=#0abdc6 guifg=#000b1e gui=NONE guisp=#ea00d9
+ hi SpellRare ctermbg=13 ctermfg=201 cterm=NONE guibg=#711c91 guifg=#ea00d9 gui=NONE guisp=#0abdc6
+ hi Visual ctermbg=13 ctermfg=44 cterm=bold guibg=#711c91 guifg=#0abdc6 gui=bold
+ hi Comment ctermbg=NONE ctermfg=25 cterm=bold guibg=NONE guifg=#005faf gui=bold
+ hi Constant ctermbg=NONE ctermfg=208 cterm=NONE guibg=NONE guifg=#f57800 gui=NONE
+ hi Cursor ctermbg=NONE ctermfg=201 cterm=NONE guibg=NONE guifg=#ea00d9 gui=NONE
+ hi CursorLine ctermbg=201 ctermfg=233 cterm=NONE guibg=#ea00d9 guifg=#000b1e gui=NONE
+ hi CursorLineNr ctermbg=201 ctermfg=233 cterm=NONE guibg=#ea00d9 guifg=#000b1e gui=NONE
+ hi DiffAdd ctermbg=NONE ctermfg=10 cterm=NONE guibg=NONE guifg=#00ff00 gui=NONE
+ hi DiffAdded ctermbg=NONE ctermfg=10 cterm=NONE guibg=NONE guifg=#00ff00 gui=NONE
+ hi DiffChange ctermbg=NONE ctermfg=255 cterm=NONE guibg=NONE guifg=#d7d7d5 gui=NONE
+ hi DiffChanged ctermbg=NONE ctermfg=255 cterm=NONE guibg=NONE guifg=#d7d7d5 gui=NONE
+ hi DiffDelete ctermbg=NONE ctermfg=9 cterm=NONE guibg=NONE guifg=#ff0000 gui=NONE
+ hi DiffRemoved ctermbg=NONE ctermfg=9 cterm=NONE guibg=NONE guifg=#ff0000 gui=NONE
+ hi DiffText ctermbg=NONE ctermfg=44 cterm=NONE guibg=NONE guifg=#0abdc6 gui=NONE
+ hi Directory ctermbg=NONE ctermfg=10 cterm=bold guibg=NONE guifg=#00ff00 gui=bold
+ hi Error ctermbg=NONE ctermfg=9 cterm=NONE guibg=NONE guifg=#ff0000 gui=NONE
+ hi ErrorMsg ctermbg=9 ctermfg=233 cterm=bold guibg=#ff0000 guifg=#000b1e gui=bold
+ hi Exception ctermbg=NONE ctermfg=9 cterm=bold guibg=NONE guifg=#ff0000 gui=bold
+ hi FoldColumn ctermbg=10 ctermfg=233 cterm=NONE guibg=#00ff00 guifg=#000b1e gui=NONE
+ hi Folded ctermbg=10 ctermfg=233 cterm=NONE guibg=#00ff00 guifg=#000b1e gui=NONE
+ hi Function ctermbg=NONE ctermfg=201 cterm=bold guibg=NONE guifg=#ea00d9 gui=bold
+ hi Identifier ctermbg=NONE ctermfg=13 cterm=bold guibg=NONE guifg=#711c91 gui=bold
+ hi IncSearch ctermbg=201 ctermfg=233 cterm=NONE guibg=#ea00d9 guifg=#000b1e gui=NONE
+ hi Keyword ctermbg=NONE ctermfg=201 cterm=bold guibg=NONE guifg=#ea00d9 gui=bold
+ hi LineNr ctermbg=NONE ctermfg=44 cterm=NONE guibg=NONE guifg=#0abdc6 gui=NONE
+ hi MatchParen ctermbg=25 ctermfg=44 cterm=NONE guibg=#005faf guifg=#0abdc6 gui=NONE
+ hi ModeMsg ctermbg=NONE ctermfg=44 cterm=bold guibg=NONE guifg=#0abdc6 gui=bold
+ hi MoreMsg ctermbg=NONE ctermfg=44 cterm=bold guibg=NONE guifg=#0abdc6 gui=bold
+ hi NonText ctermbg=NONE ctermfg=201 cterm=NONE guibg=NONE guifg=#ea00d9 gui=NONE
+ hi Normal ctermbg=233 ctermfg=44 cterm=NONE guibg=#000b1e guifg=#0abdc6 gui=NONE
+
+ set background=dark
+
+ hi Operator ctermbg=NONE ctermfg=201 cterm=bold guibg=NONE guifg=#ea00d9 gui=bold
+ hi Pmenu ctermbg=25 ctermfg=44 cterm=NONE guibg=#005faf guifg=#0abdc6 gui=NONE
+ hi PmenuSbar ctermbg=25 ctermfg=NONE cterm=NONE guibg=#005faf guifg=NONE gui=NONE
+ hi PmenuSel ctermbg=13 ctermfg=44 cterm=bold guibg=#711c91 guifg=#0abdc6 gui=bold
+ hi PmenuThumb ctermbg=44 ctermfg=233 cterm=NONE guibg=#0abdc6 guifg=#000b1e gui=NONE
+ hi PreProc ctermbg=NONE ctermfg=13 cterm=bold guibg=NONE guifg=#711c91 gui=bold
+ hi Question ctermbg=NONE ctermfg=44 cterm=NONE guibg=NONE guifg=#0abdc6 gui=NONE
+ hi Search ctermbg=201 ctermfg=233 cterm=bold guibg=#ea00d9 guifg=#000b1e gui=bold
+ hi SignColumn ctermbg=10 ctermfg=233 cterm=NONE guibg=clear guifg=#000b1e gui=NONE
+ hi Special ctermbg=NONE ctermfg=13 cterm=NONE guibg=NONE guifg=#711c91 gui=NONE
+ hi SpecialKey ctermbg=NONE ctermfg=green cterm=NONE guibg=NONE guifg=green gui=NONE
+ hi SpellBad ctermbg=9 ctermfg=233 cterm=NONE guibg=#ff0000 guifg=#000b1e gui=NONE
+ hi SpellCap ctermbg=10 ctermfg=233 cterm=NONE guibg=#00ff00 guifg=#000b1e gui=NONE guisp=#000080
+ hi Statement ctermbg=NONE ctermfg=10 cterm=bold guibg=NONE guifg=#00ff00 gui=bold
+ hi StatusLine ctermbg=25 ctermfg=44 cterm=bold guibg=#005faf guifg=#0abdc6 gui=bold
+ hi StatusLineNC ctermbg=13 ctermfg=201 cterm=NONE guibg=#711c91 guifg=#ea00d9 gui=NONE
+ hi StatusLineTerm ctermbg=25 ctermfg=44 cterm=bold guibg=#005faf guifg=#0abdc6 gui=bold
+ hi StatusLineTermNC ctermbg=13 ctermfg=201 cterm=NONE guibg=#711c91 guifg=#ea00d9 gui=NONE
+ hi String ctermbg=NONE ctermfg=208 cterm=NONE guibg=NONE guifg=#f57800 gui=NONE
+ hi TabLine ctermbg=25 ctermfg=44 cterm=bold guibg=#005faf guifg=#0abdc6 gui=bold
+ hi TabLineFill ctermbg=25 ctermfg=44 cterm=bold guibg=#005faf guifg=#0abdc6 gui=bold
+ hi TabLineSel ctermbg=13 ctermfg=44 cterm=bold guibg=#711c91 guifg=#0abdc6 gui=bold
+ hi Title ctermbg=NONE ctermfg=208 cterm=NONE guibg=NONE guifg=#f57800 gui=NONE
+ hi Todo ctermbg=201 ctermfg=233 cterm=NONE guibg=#ea00d9 guifg=#000b1e gui=NONE
+ hi ToolbarLine ctermbg=4 ctermfg=44 cterm=NONE guibg=#000080 guifg=#0abdc6 gui=NONE
+ hi ToolbarButton ctermbg=25 ctermfg=44 cterm=NONE guibg=#005faf guifg=#0abdc6 gui=NONE
+ hi Type ctermbg=NONE ctermfg=201 cterm=bold guibg=NONE guifg=#ea00d9 gui=bold
+ hi Underlined ctermbg=NONE ctermfg=44 cterm=underline guibg=NONE guifg=#0abdc6 gui=underline
+ hi VertSplit ctermbg=25 ctermfg=NONE cterm=NONE guibg=#005faf guifg=NONE gui=NONE
+ hi WarningMsg ctermbg=NONE ctermfg=9 cterm=NONE guibg=NONE guifg=#ff0000 gui=NONE
+ hi WildMenu ctermbg=208 ctermfg=233 cterm=NONE guibg=#f57800 guifg=#000b1e gui=NONE
+ hi htmlTagName ctermbg=NONE ctermfg=13 cterm=bold guibg=NONE guifg=#711c91 gui=bold
+
+elseif &t_Co == 8 || $TERM !~# '^linux' || &t_Co == 16
+ set t_Co=16
+
+ hi ColorColumn ctermbg=red ctermfg=black cterm=NONE
+ hi CursorColumn ctermbg=NONE ctermfg=magenta cterm=NONE
+ hi SpellLocal ctermbg=cyan ctermfg=black cterm=NONE
+ hi SpellRare ctermbg=darkmagenta ctermfg=magenta cterm=NONE
+ hi Visual ctermbg=darkmagenta ctermfg=cyan cterm=bold
+ hi Comment ctermbg=NONE ctermfg=blue cterm=bold
+ hi Constant ctermbg=NONE ctermfg=darkyellow cterm=NONE
+ hi Cursor ctermbg=NONE ctermfg=magenta cterm=NONE
+ hi CursorLine ctermbg=magenta ctermfg=black cterm=NONE
+ hi CursorLineNr ctermbg=magenta ctermfg=black cterm=NONE
+ hi DiffAdd ctermbg=NONE ctermfg=green cterm=NONE
+ hi DiffAdded ctermbg=NONE ctermfg=green cterm=NONE
+ hi DiffChange ctermbg=NONE ctermfg=white cterm=NONE
+ hi DiffChanged ctermbg=NONE ctermfg=white cterm=NONE
+ hi DiffDelete ctermbg=NONE ctermfg=red cterm=NONE
+ hi DiffRemoved ctermbg=NONE ctermfg=red cterm=NONE
+ hi DiffText ctermbg=NONE ctermfg=cyan cterm=NONE
+ hi Directory ctermbg=NONE ctermfg=green cterm=bold
+ hi Error ctermbg=NONE ctermfg=red cterm=NONE
+ hi ErrorMsg ctermbg=red ctermfg=black cterm=bold
+ hi Exception ctermbg=NONE ctermfg=red cterm=bold
+ hi FoldColumn ctermbg=green ctermfg=black cterm=NONE
+ hi Folded ctermbg=green ctermfg=black cterm=NONE
+ hi Function ctermbg=NONE ctermfg=magenta cterm=bold
+ hi Identifier ctermbg=NONE ctermfg=darkmagenta cterm=bold
+ hi IncSearch ctermbg=magenta ctermfg=black cterm=NONE
+ hi Keyword ctermbg=NONE ctermfg=magenta cterm=bold
+ hi LineNr ctermbg=NONE ctermfg=cyan cterm=NONE
+ hi MatchParen ctermbg=blue ctermfg=cyan cterm=NONE
+ hi ModeMsg ctermbg=NONE ctermfg=cyan cterm=bold
+ hi MoreMsg ctermbg=NONE ctermfg=cyan cterm=bold
+ hi NonText ctermbg=NONE ctermfg=magenta cterm=NONE
+ hi Normal ctermbg=black ctermfg=cyan cterm=NONE
+
+ set background=dark
+
+ hi Operator ctermbg=NONE ctermfg=magenta cterm=bold
+ hi Pmenu ctermbg=blue ctermfg=cyan cterm=NONE
+ hi PmenuSbar ctermbg=blue ctermfg=NONE cterm=NONE
+ hi PmenuSel ctermbg=darkmagenta ctermfg=cyan cterm=bold
+ hi PmenuThumb ctermbg=cyan ctermfg=black cterm=NONE
+ hi PreProc ctermbg=NONE ctermfg=darkmagenta cterm=bold
+ hi Question ctermbg=NONE ctermfg=cyan cterm=NONE
+ hi Search ctermbg=magenta ctermfg=black cterm=bold
+ hi SignColumn ctermbg=green ctermfg=black cterm=NONE
+ hi Special ctermbg=NONE ctermfg=darkmagenta cterm=NONE
+ hi SpecialKey ctermbg=NONE ctermfg=green cterm=NONE
+ hi SpellBad ctermbg=red ctermfg=black cterm=NONE
+ hi SpellCap ctermbg=green ctermfg=black cterm=NONE
+ hi Statement ctermbg=NONE ctermfg=green cterm=bold
+ hi StatusLine ctermbg=blue ctermfg=cyan cterm=bold
+ hi StatusLineNC ctermbg=darkmagenta ctermfg=magenta cterm=NONE
+ hi StatusLineTerm ctermbg=blue ctermfg=cyan cterm=bold
+ hi StatusLineTermNC ctermbg=darkmagenta ctermfg=magenta cterm=NONE
+ hi String ctermbg=NONE ctermfg=darkyellow cterm=NONE
+ hi TabLine ctermbg=blue ctermfg=cyan cterm=bold
+ hi TabLineFill ctermbg=blue ctermfg=cyan cterm=bold
+ hi TabLineSel ctermbg=darkmagenta ctermfg=cyan cterm=bold
+ hi Title ctermbg=NONE ctermfg=darkyellow cterm=NONE
+ hi Todo ctermbg=magenta ctermfg=black cterm=NONE
+ hi ToolbarLine ctermbg=darkblue ctermfg=cyan cterm=NONE
+ hi ToolbarButton ctermbg=blue ctermfg=cyan cterm=NONE
+ hi Type ctermbg=NONE ctermfg=magenta cterm=bold
+ hi Underlined ctermbg=NONE ctermfg=cyan cterm=underline
+ hi VertSplit ctermbg=blue ctermfg=NONE cterm=NONE
+ hi WarningMsg ctermbg=NONE ctermfg=red cterm=NONE
+ hi WildMenu ctermbg=darkyellow ctermfg=black cterm=NONE
+ hi htmlTagName ctermbg=NONE ctermfg=darkmagenta cterm=bold
+endif
+
+hi link Number Constant
+
+let g:terminal_ansi_colors = [
+ \ '#000b1e',
+ \ '#800000',
+ \ '#008000',
+ \ '#f57800',
+ \ '#000080',
+ \ '#711c91',
+ \ '#008080',
+ \ '#808080',
+ \ '#808080',
+ \ '#ff0000',
+ \ '#00ff00',
+ \ '#ffff00',
+ \ '#005faf',
+ \ '#ea00d9',
+ \ '#0abdc6',
+ \ '#d7d7d5',
+ \ ]
+
+" Generated with RNB (https://github.com/romainl/vim-rnb)
DIR diff --git a/vim/.vim/pack/themes/start/dracula b/vim/.vim/pack/themes/start/dracula
@@ -0,0 +1 @@
+Subproject commit eb577d47b0cfc9191bf04c414b4042d5f1a980f8
DIR diff --git a/vim/.vim/pack/themes/start/gruvbox b/vim/.vim/pack/themes/start/gruvbox
@@ -0,0 +1 @@
+Subproject commit bf2885a95efdad7bd5e4794dd0213917770d79b7
DIR diff --git a/vim/.vimrc b/vim/.vimrc
@@ -0,0 +1,63 @@
+set nocompatible " must be first
+set lazyredraw
+set encoding=utf8
+set history=1000
+set autoread
+
+filetype plugin indent on
+syntax enable
+
+" theme
+set background=dark
+
+packadd! dracula
+colorscheme dracula
+
+"packadd! gruvbox
+"colorscheme gruvbox
+
+"colorscheme cyberpunk-neon
+"set termguicolors
+
+set number
+set ruler
+set wildmenu
+set showmode
+set showmatch
+set mat=1 " blink 1/10s
+set mouse=a " enable
+
+set ignorecase
+set smartcase
+set incsearch
+set hlsearch
+set magic
+
+set shiftwidth=4
+set tabstop=4
+set noexpandtab " no comment
+set autoindent
+set smarttab
+set smartindent
+set copyindent
+set preserveindent
+
+" fixes x11 clipboard
+set clipboard=unnamedplus
+
+set textwidth=80
+set nowrap
+set cursorline
+
+" color 80 columns limit
+set colorcolumn=80
+highlight ColorColumn ctermbg=18
+
+" backspace/cursor keys wrap to previous/next line
+set backspace=indent,eol,start
+set whichwrap+=<,>,[,],h,l
+
+" highlight extra whitespace
+highlight ExtraWhitespace ctermbg=red guibg=red
+match ExtraWhitespace /\s\+$/
+
DIR diff --git a/zsh/.zshrc b/zsh/.zshrc
@@ -0,0 +1,99 @@
+setopt nobeep
+setopt interactive_comments
+setopt correct
+setopt chase_links
+setopt chase_dots
+
+# history
+HISTSIZE=10000
+SAVEHIST=10000
+HISTFILE=~/.zsh_history
+setopt append_history
+setopt share_history
+setopt extended_history
+setopt histignoredups
+setopt histignorealldups
+setopt histignorespace
+setopt hist_reduce_blanks
+setopt inc_append_history
+setopt hist_verify
+
+# completion
+autoload -U compinit
+compinit
+setopt auto_menu
+unsetopt menu_complete
+setopt completealiases
+zstyle ':completion::complete:*' use-cache 1
+zstyle ":completion:*" menu select
+zstyle ":completion:*" rehash true # complete new commands
+zstyle ':completion:*' group-name '' # group results
+zstyle ':completion:*' squeeze-slashes true # expand // to /
+zstyle ':completion:*:*:*:*:descriptions' format '%F{green}-- %d --%f'
+zstyle ':completion:*:messages' format ' %F{purple} -- %d --%f'
+zstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%f'
+zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
+zstyle ":completion:*:processes" command "ps -au$USER"
+zstyle ":completion:*:processes-names" command "ps c -u ${USER} -o command | uniq"
+
+# fix keys in st
+bindkey "^[[P" delete-char
+bindkey "^[[H" beginning-of-line
+bindkey "^[[4~" end-of-line
+
+# bash-like search
+bindkey '^R' history-incremental-pattern-search-backward
+
+# up / down arrow search
+autoload -U up-line-or-beginning-search
+autoload -U down-line-or-beginning-search
+zle -N up-line-or-beginning-search
+zle -N down-line-or-beginning-search
+bindkey "^[[A" up-line-or-beginning-search
+bindkey "^[[B" down-line-or-beginning-search
+
+# exists helper
+_exists() { (( $+commands[$1] )) }
+
+# convenience
+alias mkdir="mkdir -p"
+alias df="df -h"
+alias du="du -h"
+alias ..='cd ..'
+alias ...='cd ../..'
+_exists vim && alias vi="vim"
+_exists doas && alias sudo="doas"
+alias stopwatch="time cat"
+
+# global aliases
+alias -g ~c="| wc -l"
+alias -g ~n="> /dev/null 2>&1"
+alias -g ~s="| curl -F 'sprunge=<-' http://sprunge.us"
+
+# env vars
+export MANWIDTH=80
+export LESSHISTFILE=-
+_exists vim && export EDITOR="vim"
+_exists less && export PAGER="less"
+_exists brave-bin && export BROWSER="brave-bin"
+_exists brave-browser && export BROWSER="brave-browser"
+_exists systemctl && export SYSTEMD_PAGER=
+
+# deeply nested folders
+function up {
+ if [[ "$#" < 1 ]] ; then
+ cd ..
+ else
+ CDSTR=""
+ for i in {1..$1} ; do
+ CDSTR="../$CDSTR"
+ done
+ cd $CDSTR
+ fi
+}
+
+# starship prompt
+_exists starship && eval "$(starship init zsh)"
+
+# undefine exists helper
+unfunction _exists