# zprof only makes sense at the very top # zmodload zsh/zprof # exports are usually independent and standalone # so they can stay at the top # where to write history export HISTFILE=~/.zsh_history export HISTSIZE=1000000000 export SAVEHIST=1000000000 export ANSIBLE_NOCOWS=1 export ANSIBLE_STRATEGY=mitogen_linear # what is that for exactly? maybe taskwarrior? or timewarrior? REPORTTIME=10 ## define word characters (for stuff like backward-word, forward-word, backward-kill-word,..) ## these are NOT separators but chars considered part of a word #WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' # the default # zsh you-should-use export YSU_MODE=ALL # I want sbin executables available export PATH=${PATH}:/usr/local/sbin:/sbin:/usr/sbin export PATH=${PATH}:~/bin # colors for newt/whiptail (for debconf, needrestart, etc.) # works better with selenized colorscheme export NEWT_COLORS='checkbox=yellow,;roottext=yellow,' # where zsh looks for functions fpath=(~/.zsh_functions $fpath) # hashed directories are usually independent and standalone # so they can stay at the top hash -d diary=~/Data/henksfiles/workinprogress/Dokumente/diary hash -d lifedocs=~/Data/henksfiles/workinprogress/Dokumente/Leben hash -d bewerbung=~/Data/personal/henk/workinprogress/Dokumente/Arbeit/bewerbung hash -d rezepte=~/Data/henksfiles/workinprogress/Dokumente/rezepte/cuisine hash -d templates=~/Data/henksfiles/workinprogress/templates hash -d gitignore=~/Data/public/software/gitignore hash -d doc=/usr/share/doc hash -d TODO=~/Data/henksfiles/TODO/ hash -d fortunes=~/Data/henksfiles/workinprogress/Dokumente/fortunes/ # aliases are usually independent and standalone source ~/.zsh_aliases # TODO break this up or make functions or get rid? source ~/.zsh_qemu # load plugin manager after all 'static' stuff is done source ~/Data/public/software/zinit/zinit.zsh # mostly static stuff, env vars zinit load 'https://github.com/joel-porquet/zsh-dircolors-solarized' zinit load "https://github.com/greymd/tmux-xpanes" # options are usually independent and standalone # so they can stay at the top setopt AUTO_CD setopt CHASE_LINKS setopt AUTO_NAME_DIRS setopt BRACE_CCL #setopt EXTENDED_GLOB setopt MARK_DIRS setopt NUMERIC_GLOB_SORT setopt RC_EXPAND_PARAM #setopt WARN_CREATE_GLOBAL setopt GLOB_DOTS # remove previous entries from history setopt HIST_IGNORE_ALL_DUPS # do not write lines starting with a space to history file setopt HIST_IGNORE_SPACE # Remove superfluous blanks setopt HIST_REDUCE_BLANKS # expand history expansion for verification setopt HIST_VERIFY # save timestamp and runtime as well setopt EXTENDED_HISTORY # write line to history file when finished, not when started, to have correct runtime setopt INC_APPEND_HISTORY_TIME setopt NO_CLOBBER setopt CORRECT setopt CORRECT_ALL #unsetopt NOMATCH setopt PRINT_EXIT_VALUE setopt AUTO_CONTINUE setopt NO_BG_NICE # display PID when suspending processes as well setopt LONG_LIST_JOBS # Report the status of background jobs immediately, rather than waiting until just before printing a prompt. setopt NOTIFY # Whenever a command completion or spelling correction is attempted, make sure the entire command path is hashed first. This makes the first completion slower but avoids false reports of spelling errors. setopt HASH_LIST_ALL # If unset, the cursor is set to the end of the word if completion is started. Otherwise it stays there and completion is done from both ends. setopt COMPLETE_IN_WORD # use zsh field splitting setopt NO_SH_WORD_SPLIT # unset parameters should cause an error # CONFLICTS WITH ZINIT # setopt NO_UNSET # load before completion system initialization zinit load 'https://github.com/zsh-users/zsh-completions' # initialize completion system before loading plugins and external configs source ~/.zsh_comprc # TODO reconsider this # source /usr/share/autojump/autojump.sh # autoload all functions defined by me # since only filenames are required we # * follow symlinks # * work only on plainfiles # * take only the filename part without dir autoload ~/.zsh_functions/[^_]*(-.:t) autoload -Uz vcs_info autoload -Uz zcalc autoload -Uz zargs # spawn editor on current command line autoload -Uz edit-command-line zle -N edit-command-line bindkey -M vicmd '^X^E' edit-command-line bindkey -M viins '^X^E' edit-command-line #this mainly sets vars, binds keys, does zle stuff zinit load 'https://github.com/laurenkt/zsh-vimto' # functions and an autoload, should be fine here zinit load 'https://github.com/MichaelAquilina/zsh-you-should-use' # source ~/.zsh_taskwarrior # source ~/.zsh_functions # source ~/.zsh_functions_media # source ~/.zsh_functions_taskwarrior # TODO break this up source ~/.zsh_local # TODO break this up source ~/.env_* typeset -U path #zle -N zle-line-init #zle -N zle-keymap-select # keybindings might have been changed by plugins, etc. # so they go more to the bottom # should probably be closer to the bottom than the top? zinit load 'https://github.com/nojhan/liquidprompt' # needs to be loaded close to the end because it hooks into other stuff # see https://github.com/zsh-users/zsh-syntax-highlighting zinit load 'https://github.com/zsh-users/zsh-syntax-highlighting' # commands to run after initialization is complete #task awaiting cat ~/.motd # zprof