A minimalistic zsh configuration.
- zsh 5.3+
- git 2.22+
The config follows the XDG Base Directory specification.
You need the following env vars defined in ~/.zshenv
:
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_DATA_HOME="$HOME/.local/share"
export ZDOTDIR="$XDG_CONFIG_HOME"/zsh
export HISTFILE="$XDG_DATA_HOME"/zsh/history
Then you can install the config as such:
CFG_DIR="$XDG_CONFIG_HOME"/zsh
DATA_DIR="$XDG_DATA_HOME"/zsh
rm -ri "$CFG_DIR"
mkdir -p "$DATA_DIR"
git clone --depth=1 --recurse-submodules --remote-submodules \
https://github.com/alexandru-dinu/zsh-config.git $CFG_DIR
$DATA_DIR
contains persistent, non-config files, e.g.:
bookmarks history zcompcache/ zcompdump
Finally, config.zsh
needs to be sourced in $ZDOTDIR/.zshrc
:
plugins=(fzf zshmarks zsh-autosuggestions)
source $ZDOTDIR/config.zsh
- Async git info using async.zsh.
- One clean theme, showing git and conda / venv info.
- Vi-mode is enabled by default.
- Plugins can be added in the plugins directory, each one having an entrypoint
X/X.plugin.zsh
. - Enabling a plugin is done by adding it to the
plugins
array defined inzshrc
. - The following plugins are enabled by default:
- fzf for fuzzy searching.
- zshmarks for directory bookmarks.
- zsh-autosuggestions for faster history completions.