X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=README.md;h=d79f82f4dd53304cff41e5c5e82dfac108978f6d;hb=23e52508a920ae18677a9cebc9522dedf2209b4c;hp=948648d25ebb56bad3dc67c54ddbc89a69ed8f50;hpb=905b44a440007becc14de166f0dfb2208b1397f3;p=ax-zsh.git diff --git a/README.md b/README.md index 948648d..d79f82f 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,72 @@ AX-ZSH: Alex' Modular ZSH Configuration ======================================= -AX-ZSH is a modular configuration system for the Z shell. If provides sane -defaults and is extendable by plugins. +AX-ZSH is a modular configuration system for the Z shell (ZSH). +It provides sane defaults and is extendable by plugins. Installation ------------ -To install AX-ZSH, call the `install.sh` script inside of the source directory. -This script creates the `~/.axzsh` symbolic link to the source directory and -creates links for `~/.zprofile`, `~/.zshrc`, `~/.zlogin`, and `~/.zlogout` -(don't worry, already existing files are backed up). +To install AX-ZSH, either download a source archive or use Git to clone it. +Afterwards use the `install.sh` script inside of the source directory to set +up the `~/.axzsh` directory. -Then you have to restart your ZSH session. +When using Git it is best to directly clone the AX-ZSH repository into the +`~/.axzsh` directory and call `install.sh` from this location. +Clone repository from _GitHub_ (https://github.com/alexbarton/ax-zsh): -Configuration -------------- + $ git clone https://github.com/alexbarton/ax-zsh.git ~/.axzsh + +Then run the installer script: + + $ ~/.axzsh/install.sh + +The `install.sh` script creates symbolic links for `~/.zprofile`, `~/.zshrc`, +`~/.zlogin`, and `~/.zlogout` (don't worry, already existing files are backed +up). + +Now close and restart all your running ZSH session to activate AX-ZSH. + +To update AX-ZSH run `axzshctl upgrade`. -AX-ZSH can be configured using settings in a `$HOME/.zshenv` file. -The following configuration variables are supported: +AX-ZSH & Local ZSH Configuration +-------------------------------- -* `AXZSH_PLUGIN_D`: Optional directory for additional plugins. -* `axzsh_default_plugins`: Array of default plugins, that will be loaded in - addition to the core plugins. You can reset this array to disable(!) loading - of these default plugins. Currently these plugins are loaded by default: - * byebye - * correction - * grep - * history - * less - * ls - * prompt - * ssh - * std_aliases - * std_env - * std_options -* `axzsh_plugins`: Optional array of addiutional (non-core and non-default) - plugins to load. +Plugins are loaded when they are linked into the `$AXZSH/active_plugins/` +directory; see the _Customization_ section below for how to activate them. -Example for a `$HOME/.zshenv` file: +Don't modify `~/.zprofile`, `~/.zshrc`, `~/.zlogin`, or `~/.zlogout`! These +are links to "AX-ZSH"-private files that can become overwritten when updating. + +You can use the following files for local ZSH configuration: + +1. AX-ZSH doesn't use `~/.zshenv` in any way. So you can use this file for your + own purposes (for example, to set up some environment variables that AX-ZSH + relies on). + +2. AX-ZSH reads the optional files `~/.zprofile.local`, `~/.zshrc.local`, + `~/.zlogin.local`, and `~/.zlogout.local` after its own core initialization + files when present. + + +Customization +------------- -``` -# Add additinal custom plugin search path -export AXZSH_PLUGIN_D="/opt/ax-zsh-plugins" +Use the `axzshctl` tool to enable, disable, and reset plugins. AXZSH +initializes an alias which points to the actual location in `~/.axzsh/bin/`. -# Disable all default plugins -axzsh_default_plugins=() +See `axzshctl --help` for details. -# Add additional plugins -axzsh_plugins=( - editor_select - homebrew -) -``` +You can link custom plugins stored in arbitrary directories using `axzshctl` +by specifying the complete path name. Or you can place additional plugins into +the `~/.axzsh/custom_plugins` folder which is searched by the `axzshctl` tool +by default. -Note: it should *not* be necessary to disable the default plugins! The above -is an example only! +In addition you can set the `AXZSH_PLUGIN_D` variable (and `ZSH_CUSTOM` like +"OhMyZsh") to specify additional plugin search directories. Environment Variables @@ -78,5 +86,6 @@ Validated and/or set up by core plugins: * `PS1` * `SHORT_HOST` * `TERM` +* `XDG_RUNTIME_DIR` * `XDG_CACHE_HOME` * `ZSH_CACHE_DIR`