zoppo is a configuration framework for Zsh; it enriches the command line interface environment with sane defaults, aliases, functions, auto completion, and prompt themes.
As an italian saying goes: "chi va con lo zoppo, impara a zoppicare", we realized we were walking with a cripple and are now going to become crippled ourselves.
zoppo will work with any recent release of Zsh, but the minimum recommended version is 4.3.10.
wget -O- https://raw.github.com/zoppo/zoppo/master/bin/installer.zsh | zsh -s -- -y
wget -O- https://raw.github.com/zoppo/zoppo/master/bin/installer.zsh | zsh -s
-
Launch Zsh:
zsh
-
Clone the repository:
git clone --branch default --recursive git://github.com/zoppo/zoppo.git "${ZDOTDIR:-$HOME}/.zoppo"
-
Create a new Zsh configuration by copying the Zsh configuration files provided:
setopt EXTENDED_GLOB for rcfile in "${ZDOTDIR:-$HOME}"/.zoppo/templates/^README.md(.N); do cp "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" done
-
Set Zsh as your default shell:
chsh -s /bin/zsh
-
Restart Zsh
exec zsh
If you have administrator privileges, you must fix an Apple-introduced problem
in Mac OS X 10.5 Leopard by executing the following command, or BASH and Zsh
will have the wrong PATH
when executed non-interactively.
sudo chmod ugo-x /usr/libexec/path_helper
path_helper
is intended to make it easier for installers to add new paths to
the environment without having to edit shell configuration files by adding
a file with a path to the /etc/paths.d
directory.
Unfortunately, path_helper
always reads paths from /etc/paths
set by Apple
then paths from /etc/paths.d
set by third party installers, and lastly paths
from the PATH
environment variable set by the parent process, which
ultimately is set by the user with export PATH=...
Thus, it reorders path
priorities, and user /bin
directories meant to override system /bin
directories end up at the tail of the array.
If you are not able to find certain commands after switching to zoppo,
modify the PATH
variable in ~/.zshenv
then run zoppo:restart
.
zoppo has many features disabled by default. Read the source code and accompanying README files to learn of what is available.
- Browse
/plugins
to see what is available. - Load the plugins you need in
~/.zopporc
then runzoppo:restart
.
- For a list of prompts, type
prompt -l
. - To preview a prompt, type
prompt -p name
. - Load the theme you like in
~/.zopporc
then runzoppo:restart
.
The project is managed via Git. It is highly recommend that you commit your changes and push them to GitHub to not lose them. If you do not know how to use Git, follow this tutorial and bookmark this reference.
If you make changes to the core and think they could be useful for others don't hesistate to open an issue or a pull request showing off the thing. It will be discussed unless clearly useful and pertinent to belonging to the core.
The same reasoning can be applied to existing plugins, don't hesitate to open an issue or pull request. That applies to prompts too, just open an issue or pull request.
If you want to write plugins for your personal use, it's suggested that you create your own plugins directory and add it to the plugins path, it will be automatically used so you don't have to fiddle with git.
To add it just put in the ~/.zopporc
:
zdefault +a ':zoppo:path' plugins '/your/plugins/path'
If you want to write your own prompt and don't want to have it merged upstream, you can do the same with prompts, just add your prompts path to the path:
zdefault +a ':zoppo:path' prompts '/your/prompts/path'
The Zsh Reference Card and the zsh-lovers man page are indispensable.
Everything is under WTFPL unless otherwise noted.