Personal dotfiles configuration for use in devcontainers and GitHub Codespaces.
- Zsh Shell: Automatically installs and sets Zsh as the default shell
- Oh My Zsh: Installs Oh My Zsh with auto-update enabled
- Pure Prompt: Beautiful, minimal prompt theme
- Custom Aliases: Pre-configured aliases for git, docker, and common commands
- Flexible Plugin System: Default plugins with support for project-specific additions
Add this to your devcontainer configuration:
{
"postCreateCommand": "bash -c \"$(curl -fsSL https://raw.githubusercontent.com/kieraneglin/devcontainer-dotfiles/master/install.sh)\""
}To add project-specific Zsh plugins, set the ADDITIONAL_ZSH_PLUGINS environment variable:
{
"containerEnv": {
"ADDITIONAL_ZSH_PLUGINS": "rails\npython\nnpm"
},
"postCreateCommand": "bash -c \"$(curl -fsSL https://raw.githubusercontent.com/kieraneglin/devcontainer-dotfiles/master/install.sh)\""
}- Clone this repository
- Run the install script:
./install.sh
The following Zsh plugins are installed by default:
git- Git aliases and functionssudo- ESC twice to add sudo to commandhistory- History aliasescolored-man-pages- Colorize man pagescommand-not-found- Suggest packages for unknown commandsz- Jump to frequently used directories
Edit the aliases file to add your personal aliases. The file is well-commented with examples.
You can add additional plugins in two ways:
- Per-project: Set the
ADDITIONAL_ZSH_PLUGINSenvironment variable (see installation examples above) - Globally: Edit the
zshrcfile and add plugins to theDEFAULT_PLUGINSarray
All configuration files can be customized:
zshrc- Main Zsh configurationaliases- Custom command aliasesinstall.sh- Installation script
.
├── README.md # This file
├── install.sh # Installation script
├── zshrc # Zsh configuration
└── aliases # Custom aliases
- Linux-based container (Ubuntu, Debian, Alpine, etc.)
- Internet connection for downloading dependencies
- Sudo access (for installing packages)