I want my configuration to be:
- Simple: Everything should be organized, easy to understand, and easy to modify.
- Minimal: When possible, don't add extra tools that aren't regularly used. Installing an entire plugin manager for one plugin is probably overkill.
- Portable: This repository should be able to be used on any machine, so use tools that are cross-platform and, when not possible, make it easy to pick and choose which are used on which system.
files: Contains all the files that will be symlinked to the home directory.scripts: Contains the install scripts that can be used to automatically install the configuration.
.zshenvsets environment variables that should be available to allzshinvocations, including scripts and non-login, non-interactive shells..zshrcloads individual configuration modules. It has variables to set the order in which modules are loaded..zsh/is a directory that contains the individual configuration modules. All*.zshfiles in this directory are loaded..bin/is a directory that contains scripts that are added to thePATH. Use this for scripts that are better suited to be stand-alone executables thanzshfunctions. For example, if they should useset -eor something other thanzsh.
Note
I don't use bash as a login or interactive shell, but I keep a minimal bash configuration for compatibility.
.bashrcsets very basic environment variables so tools usingbashcan access things like thePAGER,EDITOR, andXDG_CONFIG_HOME..bash_profilesimply sources.bashrc.