+# 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
+
+
+# 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'
+zgenom 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'
+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
+for f in ~/.env_*(N)
+do
+ source $f
+done
+
+
+#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
+
+source /usr/share/doc/fzf/examples/key-bindings.zsh
+source /usr/share/doc/fzf/examples/completion.zsh