AUTO_CONTINUE LONG_LIST_JOBS \
NO_HIST_SAVE_BY_COPY HIST_IGNORE_DUPS SHARE_HISTORY HIST_REDUCE_BLANKS
-### imports
-autoload -Uz zmv
-autoload -Uz zmathfunc && zmathfunc
-
### exports
## common
export EDITOR=${$(whence -p nvim vim vi micro nano emacs)[(f)1]}
export PYTHONSTARTUP=${XDG_CONFIG_HOME:-~/.config}/pythonrc
## vim
export VIMINIT='let$MYVIMRC=($XDG_CONFIG_HOME??($HOME."/.config"))."/vim/.vimrc"|execute"source"$MYVIMRC'
-## wayland/sway
-# XXX: only do this if we're actually in wayland, but without a start script
-export XDG_SESSION_TYPE=wayland
-export QT_QPA_PLATFORM=wayland-egl
-export QT_WAYLAND_DISABLE_WINDOWDECORATION=-1
-export SDL_VIDEODRIVER=wayland
-export TERMINAL=${$(whence -p konsole footclient urxvt xterm)[(f)1]}
+## wayland/gui env
+export XDG_SESSION_TYPE=${XDG_SESSION_TYPE:-wayland}
+export QT_QPA_PLATFORM=${QT_QPA_PLATFORM:-wayland-egl}
+export QT_WAYLAND_DISABLE_WINDOWDECORATION=${QT_WAYLAND_DISABLE_WINDOWDECORATION:--1}
+export SDL_VIDEODRIVER=${SDL_VIDEODRIVER:-wayland}
+export TERMINAL=${TERMINAL:-$(whence -p konsole footclient urxvt xterm)[(f)1]}
+
+### imports
+autoload -Uz zmv
+autoload -Uz zmathfunc && zmathfunc
+
+## vcs
+zstyle ':vcs_info:*' enable git
+#zstyle ':vcs_info:git*' check-for-changes true #too slow
+zstyle ':vcs_info:git*:dotfiles' check-for-changes true
+zstyle ':vcs_info:git*' check-for-staged-changes true
+autoload -Uz vcs_info
+
+## compinit
+zstyle ':completion:*' auto-description '[arg] %d'
+zstyle ':completion:*' expand suffix
+zstyle ':completion:*' format '# %d'
+zstyle ':completion:*' group-name ''
+zstyle ':completion:*' ignore-parents parent
+zstyle ':completion:*' insert-unambiguous false
+zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
+zstyle ':completion:*' list-prompt '%B%i%b'
+zstyle ':completion:*' list-suffixes true
+zstyle ':completion:*' matcher-list '' 'm:{[:lower:]}={[:upper:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} r:|[._-]=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*'
+zstyle ':completion:*' menu select=1
+zstyle ':completion:*' original false
+zstyle ':completion:*' select-prompt '%B%l%b'
+zstyle ':completion:*' verbose true
+autoload -Uz compinit
+cache=${XDG_CACHE_HOME:-~/.cache}/zsh
+[[ -d $cache ]] || mkdir -p $cache
+compinit -d $cache/.zcompdump
+unset cache
### keys
bindkey -v
key[$k]=$terminfo[$v]
done; unset k v
}
+
## load history search
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
zle -N up-line-or-beginning-search
done
unset a k v
-### abbreviation aliases
+### aliases
+## builtins
+alias rehash='_sev_setpath; rehash'
+## utils
alias h='fc -l -25'
alias j='jobs -l'
alias l='ls -AF'
alias pa=$ps
alias spa="sudo $ps"
unset ps
-
-### specialized aliases
-## go up directories
+## git
+alias gdh='git diff HEAD'
+alias ga='git add'
+alias gc='git commit'
+alias gca='git commit --amend'
+alias gp='git push'
+## cd/zoxide
function up {
\cd $(printf '../%.0s' {1..${1:-1}})
}
alias u=up
-## zoxide
if [[ -v commands[zoxide] ]] {
- eval "$(zoxide init zsh)"
- alias cd=zoxide
+ # https://github.com/ajeetdsouza/zoxide/issues/513
+ eval "${$(zoxide init zsh):s#_files -/#_cd#}"
+ alias cd=z
}
-## git
-alias ga=git add
-alias gdh=git diff HEAD
### hooks
autoload -Uz add-zsh-hook
### system-specific configs and aliases
case $OSTYPE; in
freebsd*)
- # colors
+ ## colors
export CLICOLOR=
export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30'
## install port dependencies from pkg (like pkgsrc `bmake bin-install')
# XXX: should probably use package-depends where possible, breaks when
- # port name is different to package name
- # (eg. graphics/sdl20 == sdl2, devel/glib20 == glib2, etc)
+ # port name is different to package name
+ # (eg. graphics/sdl20 == sdl2, devel/glib20 == glib2, etc)
function portpkg {
case "$1" {
build|run)
function vol {}
esac
-### modules & styles
-## vcs
-zstyle ':vcs_info:*' enable git
-#zstyle ':vcs_info:git*' check-for-changes true #too slow
-zstyle ':vcs_info:git*:dotfiles' check-for-changes true
-zstyle ':vcs_info:git*' check-for-staged-changes true
-autoload -Uz vcs_info
-
-## compinit
-zstyle ':completion:*' auto-description '[arg] %d'
-zstyle ':completion:*' expand suffix
-zstyle ':completion:*' format '# %d'
-zstyle ':completion:*' group-name ''
-zstyle ':completion:*' ignore-parents parent
-zstyle ':completion:*' insert-unambiguous false
-zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
-zstyle ':completion:*' list-prompt '%B%i%b'
-zstyle ':completion:*' list-suffixes true
-zstyle ':completion:*' matcher-list '' 'm:{[:lower:]}={[:upper:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} r:|[._-]=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*'
-zstyle ':completion:*' menu select=1
-zstyle ':completion:*' original false
-zstyle ':completion:*' select-prompt '%B%l%b'
-zstyle ':completion:*' verbose true
-autoload -Uz compinit
-cache=${XDG_CACHE_HOME:-~/.cache}/zsh
-[[ -d $cache ]] || mkdir -p $cache
-compinit -d $cache/.zcompdump
-unset cache
-
### prompt
autoload -Uz promptinit && promptinit
prompt arrows