]> git.netwichtig.de Git - user/henk/vcsh/zsh.git/blobdiff - .zshrc
migrate to zgenom: should be simpler than zinit, the scheduler was annoying
[user/henk/vcsh/zsh.git] / .zshrc
diff --git a/.zshrc b/.zshrc
index 4793503c3288665702c43781b50b224b67aceb3e..16045ff6eb4bc583b74d6ab4986d192f54d6f7d2 100644 (file)
--- a/.zshrc
+++ b/.zshrc
@@ -1,55 +1,45 @@
+# zprof only makes sense at the very top
 # zmodload zsh/zprof
 
-source ~/.zsh_zinit
 
-# source /usr/share/autojump/autojump.sh
+# exports are usually independent and standalone
+# so they can stay at the top
 
-fpath=(~/.zsh_functions $fpath)
+# where to write history
+export HISTFILE=~/.zsh_history
+export HISTSIZE=1000000000
+export SAVEHIST=1000000000
 
-autoload henkspngpostproc
-autoload henkspwgen
-autoload new_hs_project
-autoload vifind
-autoload movies_biggest
-autoload movies_forgotten
-autoload movies_newest
-autoload movies_oldest
-autoload movies_smallest
-autoload mpvshuffledir
-autoload pause_stardew
+export ANSIBLE_NOCOWS=1
+export ANSIBLE_STRATEGY=mitogen_linear
 
-autoload -Uz vcs_info
-autoload -Uz edit-command-line
-autoload -Uz zcalc
-autoload -Uz zargs
-
-# source ~/.zsh_taskwarrior
-
-# source ~/.zsh_functions
-# source ~/.zsh_functions_media
-# source ~/.zsh_functions_taskwarrior
+# what is that for exactly? maybe taskwarrior? or timewarrior?
+REPORTTIME=10
 
-source ~/.zsh_aliases
-source ~/.zsh_local
-source ~/.zsh_qemu
+## 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
 
-source ~/.env_*
+# zsh you-should-use
+export YSU_MODE=ALL
 
-#zle -N zle-line-init
-#zle -N zle-keymap-select
-zle -N edit-command-line
+# I want sbin executables available
+export PATH=${PATH}:/usr/local/sbin:/sbin:/usr/sbin
+export PATH=${PATH}:~/bin
 
-export HISTFILE=~/.zsh_history
-export HISTSIZE=1000000000
-export SAVEHIST=1000000000
+# colors for newt/whiptail (for debconf, needrestart, etc.)
+# works better with selenized colorscheme
+export NEWT_COLORS='checkbox=yellow,;roottext=yellow,'
 
-REPORTTIME=10
+# where zsh looks for functions
+fpath=(~/.zsh_functions $fpath)
 
-#HENKSPROMPTHEADER=$'%F{red}%D{%a}%f %F{green}%D{%F %T Wk %V}%f %F{blue}%D{%s}%f %F{yellow}%n@%m%f\n'
 
+# 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/henksfiles/workinprogress/Dokumente/bewerbung
+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
@@ -57,10 +47,30 @@ hash -d doc=/usr/share/doc
 hash -d TODO=~/Data/henksfiles/TODO/
 hash -d fortunes=~/Data/henksfiles/workinprogress/Dokumente/fortunes/
 
-## 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
 
+# 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
+source "${HOME}/.zgenom/zgenom.zsh"
+# Check for plugin and zgenom updates every 7 days
+# This does not increase the startup time.
+zgenom autoupdate
+
+
+# mostly static stuff, env vars
+# zinit load 'https://github.com/joel-porquet/zsh-dircolors-solarized'
+# zinit load "https://github.com/greymd/tmux-xpanes"
+zgenom load 'https://github.com/joel-porquet/zsh-dircolors-solarized'
+zgenom 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
 
@@ -95,20 +105,97 @@ setopt PRINT_EXIT_VALUE
 
 setopt AUTO_CONTINUE
 setopt NO_BG_NICE
-#setopt LONG_LIST_JOBS
+# 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
+# CONFLICTS WITH ZGENOM
+# setopt NO_UNSET
+
+
+# load before completion system initialization
+# zinit load 'https://github.com/zsh-users/zsh-completions'
+zgenom load 'https://github.com/zsh-users/zsh-completions'
+
+# initialize completion system before loading plugins and external configs
+source ~/.zsh_comprc
 
-export YSU_MODE=ALL
-export tzvt_set_tmux_window_status=true
 
-export PATH=${PATH}:/usr/local/sbin:/sbin:/usr/sbin
+# 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
 
 
-#task awaiting
+#this mainly sets vars, binds keys, does zle stuff
+# zinit load 'https://github.com/laurenkt/zsh-vimto'
+zgenom load 'https://github.com/laurenkt/zsh-vimto'
 
-source ~/.zsh_comprc
+# functions and an autoload, should be fine here
+# zinit load 'https://github.com/MichaelAquilina/zsh-you-should-use'
+zgenom 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'
+zgenom 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
+source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
+
+
+# commands to run after initialization is complete
+#task awaiting
 cat ~/.motd
 # zprof