- Vim Script 96.4%
- Shell 3.6%
Dotfiles
A comprehensive collection of configuration files for a development environment including Zsh, Vim, Neovim, Tmux, WezTerm, and more.
Quick Start
Prerequisites
Ensure you have the following installed:
git(with submodule support)stow(GNU Stow for symlink management)zsh(Z shell)vimtmux(terminal multiplexer)
Installation script for Ubuntu/Debian:
sudo apt update && sudo apt install -y git stow zsh vim neovim tmux
Installation
-
Clone the repository with all submodules:
cd ~ && git clone --recurse-submodules https://codeberg.org/jacqueline/dotfiles.git && cd dotfiles -
Stow the configurations you want:
# Essential configurations stow zsh # Zsh shell configuration with powerlevel10k theme stow p10k # Powerlevel10k theme configuration stow vim # Vim editor with plugins stow tmux # Tmux terminal multiplexer stow wezterm # WezTerm terminal emulator stow git # Git configuration with credential helpers stow z # Z directory jumper -
Set Zsh as your default shell:
chsh -s $(which zsh) -
Restart your terminal or source the new configuration:
source ~/.zshrc
What's Included
Shell Environment
- Zsh with Oh My Zsh framework
- Powerlevel10k theme for a beautiful, informative prompt
- Z - smart directory jumping
- Custom aliases and functions for productivity
- Azure CLI and Terraform completion
- Kubernetes tools (kubectl, kubectx, kubens) with aliases
Editors
- Vim with extensive plugin ecosystem via Pathogen
- NERDTree, CtrlP, FZF, Airline, Fugitive, and more
- Language support for Terraform, Ansible, Bicep, Vagrant
- Neovim - Modern distributions (LunarVim/LazyVim)
- See README-neovim.md for complete setup guides
Terminal Tools
- Tmux configuration for session management
- WezTerm modern terminal emulator config
- Custom functions for file encryption/decryption
- Ripgrep + FZF integration for file searching
Development Tools
- Python development with pyenv integration
- Node.js with NVM support
- Git configuration and aliases
- Kubernetes development tools and shortcuts
Post-Installation Setup
1. Oh My Zsh Installation
If Oh My Zsh isn't installed:
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
2. Azure CLI Completion (if using Azure)
ln -s /etc/bash_completion.d/azure-cli ~/.oh-my-zsh/custom/az.zsh
3. Python Development
# Install and set global Python version
pyenv install 3.13.3
pyenv global 3.13.3
4. SSH Keys & Git Configuration
-
Copy your SSH keys to
~/.ssh/ -
Configure Git with your credentials:
git config --global user.name "Your Name" git config --global user.email "your.email@example.com"
5. Powerlevel10k Configuration
If you want to reconfigure the prompt theme:
p10k configure
6. Create Environment File
Create ~/.env for environment-specific variables and ~/.zshrc_secrets for sensitive configurations that shouldn't be in version control.
7. Neovim Setup (Optional)
For modern Neovim configurations with LazyVim or LunarVim, see the dedicated README-neovim.md guide which includes:
- Complete LazyVim and LunarVim installation instructions
- Comprehensive shortcuts and keybindings reference
- Python development setup with LSP, linting, and formatting
- GitHub Copilot integration
- Plugin management and customization
- Troubleshooting guides
Updating
Update all configurations and submodules:
cd ~/dotfiles
git pull
git submodule update --remote --recursive
Directory Structure
dotfiles/
├── zsh/ # Zsh configuration
├── p10k/ # Powerlevel10k theme config
├── vim/ # Vim configuration with plugins
├── tmux/ # Tmux configuration
├── wezterm/ # WezTerm terminal config
├── git/ # Git configuration with credential helpers
├── z/ # Z directory jumper (submodule)
├── powerlevel10k/ # Powerlevel10k theme (submodule)
└── scripts/ # Utility scripts
Customization
Adding New Configurations
- Create a new directory for your app:
mkdir myapp - Add your config files:
myapp/.myapprc - Stow it:
stow myapp
Managing Vim Plugins
Vim plugins are managed as git submodules in vim/.vim/bundle/:
# Add a new plugin
git submodule add https://github.com/user/plugin.git vim/.vim/bundle/plugin
# Remove a plugin
git submodule deinit -f vim/.vim/bundle/plugin
git rm -f vim/.vim/bundle/plugin
git commit -m "Remove plugin"
Customizing Zsh
- Add personal aliases to
~/.zshrc_secrets(not tracked) - Modify
zsh/.zshrcfor permanent changes - Custom functions can be added to the functions section
Troubleshooting
Zsh Theme Not Loading
# Ensure powerlevel10k is properly initialized
source ~/dotfiles/powerlevel10k/powerlevel10k.zsh-theme
Vim Plugins Not Working
# Update all vim plugins
cd ~/dotfiles
git submodule update --init --recursive
Stow Conflicts
If stow reports conflicts with existing files:
# Backup existing files and try again
mv ~/.zshrc ~/.zshrc.backup
stow zsh
Permission Issues
# Fix ownership if needed
sudo chown -R $USER:$USER ~/dotfiles
Features Highlight
Custom Functions
vimrg()- Search files with ripgrep and open in vim with FZFencrypt_file()/decrypt_file()- File encryption utilitiesset_namespace()- Quick Kubernetes namespace switching
Kubernetes Shortcuts
k→kubectlkx→kubectx(context switching)kn→kubens(namespace switching)ke→ Get events sorted by timenodes→ Show pods with their nodes
Development Shortcuts
h→ Search command historyc→ Copy to clipboard (Linux)v,vi,vim→ Various vim shortcuts
Contributing
Feel free to fork this repository and customize it for your needs. If you have improvements or bug fixes, pull requests are welcome!
License
This dotfiles collection is personal configuration. Feel free to use any parts that are helpful for your own setup.