Minimalistic plugin manager for ZSH.
It was developed as a drop-in replacement for zplug and Antigen. They both have serious problems and are not maintained anymore.
- No crashes or double plugin loading when re-sourcing
.zshrc
- Unlike Antigen, Miniplug does not pollute your
$PATH
- Only bare minimum for managing plugins
- ZSH
- Git
awk
(gawk
)
To install Miniplug you need to download miniplug.zsh
file and source it in your .zshrc
:
curl \
-sL --create-dirs \
https://git.sr.ht/~yerinalexey/miniplug/blob/master/miniplug.zsh \
-o $HOME/.local/share/miniplug.zsh
# Add to zshrc:
source "$HOME/.local/share/miniplug.zsh"
You can download this file anywhere,
$HOME/.local/share/miniplug.zsh
is just an example
After miniplug.zsh
file is sourced, you'll get access to miniplug
CLI
utility. Define plugins using miniplug plugin <URL>
. Or define a theme using
miniplug theme <URL>
(theme can be set only once)
<URL>
can be URL to Git repo or Github'suser/repo
After plugins are defined, you can download them using miniplug install
and
source them using miniplug load
(should be added to .zshrc
).
source "$HOME/.local/share/miniplug.zsh"
# Define a plugin
miniplug plugin 'zsh-users/zsh-syntax-highlighting'
# Define a theme
miniplug theme 'dracula/zsh'
# Source plugins
miniplug load
Plugins will be downloaded to $XDG_DATA_HOME/miniplug
(or ~/.local/share/miniplug
if not set)
by default. To change that location, set MINIPLUG_HOME
environment variable
to a new path:
export MINIPLUG_HOME="$HOME/.config/zsh/plugins"
To update plugins you can run:
miniplug update
If you want to force plugin not to update, you can detach repo's HEAD
by running this snippet in plugin folder ($MINIPLUG_HOME/user/repo
):
git checkout "$(git log --format=%H | head -1)"
After that, plugin will be skipped when you run miniplug update