It's like a shell, okay?
~/.carapace/
|- bundles/
|- base/
|- modules/
|- install/
|- generated/
|- backup/
|- docs/
| |- templates/
|- zshrc-update
~/.host/
|...
~/.path-carapace
Bundles are groups of modules related in purpose. This allows different module-sets to be stored in separate repositories (such as for work-related settings in a company that requires use of a private git server). The modules in each bundle folder are symlinked into the modules/
folder.
Modules are the main content of the Carapace system (see Module Documentation for more details). Modules within this folder will be evaluated in lexicographical order. A common practice is prefixing each module name with a two digit number (10MyModule
) to more precisely define inclusion and execution order.
This bundle contains the standard set of functionality included with Carapace.
NOTE: No modules should live in this folder, each module should be part of a bundle.
The modules defined here are evaluated in lexicographical order during installation to build out the final shell system.
There is a folder of scripts to assist with installation in $HOME/.carapace/install/
. These will manage the installation process.
Many files are generated from module-level components. These all live in the $HOME/.carapace/generated/
folder.
If installation would overwrite any existing files (usually with symlinks), the original file will be saved in $HOME/.carapace/backup
and suffixed with a timestamp.
Carapace system documentation is stored in this folder.
Documentation that will be symlinked or copied on install (such as crontab headers and .host
readmes).
This is the script that will be run on each login (symlinked to $HOME/.zshrc
). It checks for Carapace updates, and then executes the generated zshrc file.
The $HOME/.host
folder contains files specific to this host. Nothing in here is tracked by Carapace, and all files are optional. If a file does exist, it will be referenced/included by the installation process.
See Host and Host Config readmes for more details.
This file contains a source-able path setting that is built over the course of initialization. If you're having trouble with some executables (such as i3 running audio commands, etc.), your script may want to source this file to get an updated, valid path.
A few environment variables are set by the Carapace system:
Variable | Contents |
---|---|
CARAPACE |
The path to the $HOME/.carapace directory |
CARAPACE_MODULES |
A comma separated list of modules (minus the numeric prefix) that have been successfully installed. |
The following files may be generated in $HOME/.carapace/generated
:
generated-crontab
generated-gitconfig
generated-gitignore
generated-i3config
generated-profile
generated-ssh_config
generated-vimrc
generated-zshrc