A pluggable framework for the Z shell (zsh) that simplifies configuration management, supports shared bytecode, and allows user-level customization.
- Overview
- Directory Structure
- Supported Environments
- Installation
- Default Behavior
- Customization
- Versioning
- Contribution
- License
- Authors
DOT_ZSH is designed to:
- Utilize
zcompile
for precompiled bytecode to improve zsh startup performance. - Allow shared system-wide bytecode while enabling individual users to add custom snippets.
- Provide a modular structure for easily adding plugins.
The main directory structure of DOT_ZSH is as follows:
.
├── dot_zsh/
│ ├── lib/
│ │ Contains core files for loading and basic settings.
│ ├── plugins/
│ Holds independent .zsh plugin files for modular functionality.
├── install_dotzsh.sh
│ Installer script to set up DOT_ZSH in the specified directory.
├── dot_zshrc
A template for the `.zshrc` file to be placed in the user's home directory.
DOT_ZSH is confirmed to work on:
- Red Hat Enterprise Linux 5 or later
- CentOS 5 or later
- Scientific Linux 5 or later
- Debian GNU/Linux 5 or later
- Ubuntu 8.04 LTS or later
- Solaris 10 or later
- macOS 10.5 or later
Supported zsh versions:
- zsh 4.2 and later (including future releases)
It should also work on most GNU/Linux and UNIX-compatible environments.
Run the install_dotzsh.sh
script to install DOT_ZSH:
~/dot_zsh/install_dotzsh.sh
This installs DOT_ZSH to /usr/local/etc/zsh
. Root privileges (via sudo
) are required.
~/dot_zsh/install_dotzsh.sh ~/.zsh nosudo
This installs DOT_ZSH to ~/.zsh
, bypassing the need for sudo
.
After installation, copy dot_zshrc
to your home directory:
cp ~/dot_zsh/dot_zshrc ~/.zshrc
DOT_ZSH:
- Optionally launches GNU Screen at startup if the file
$HOME/.run_screen_on_startup
exists. - Aliases are primarily set in
plugins/alias.zsh
. - For environments requiring a proxy, configure
plugins/proxy.zsh
. Proxy settings are commented out by default.
DOT_ZSH allows user-specific customization by overriding the default configuration.
Create a .zsh/lib
directory in your home directory to override core files:
~/.zsh/lib
For example, you can modify load.zsh
, base.zsh
, or screen.zsh
.
Create a .zsh/plugins
directory in your home directory for user-specific plugins:
~/.zsh/plugins
Files in these user-level directories take precedence over the system-level files.
DOT_ZSH uses the <year>.<month>
versioning format starting from version 11.12
.
Example: 24.12
Contributions are welcome! Here’s how you can help:
- Fork the repository.
- Add or improve a feature, or fix an issue.
- Submit a pull request with clear documentation and changes.
Please ensure your code is well-structured and documented.
This project is licensed under the GNU Lesser General Public License v3 (LGPLv3). You are free to use, modify, and distribute this project under the terms of the license.
774