My personal development environment configuration, managed with GNU Stow
- 🎯 Overview
- 🛠️ Tools & Applications
- 🚀 Quick Start
- 🔒 Security & Secrets
- 📁 Structure
- 🎨 Features
- 🤝 Contributing
This repository contains my personal dotfiles and development environment configuration. It's designed to be:
- 🔧 Modular: Each tool has its own package for selective installation
- 🔒 Secure: Secrets are managed with templates and environment variables
- 🏃 Portable: Works across different Linux distributions
- ⚡ Efficient: Optimized for software development workflows
| Tool | Description | Config Location |
|---|---|---|
| Kitty | GPU-accelerated terminal emulator | terminal/.config/kitty/ |
| Zsh | Modern shell with Powerlevel10k theme | zsh/ |
| Tmux | Terminal multiplexer for session management | tmux/ |
| Atuin | Magical shell history with sync | terminal/.config/atuin/ |
| Tool | Description | Config Location |
|---|---|---|
| Neovim | Modern Vim-based editor with LazyVim | code/.config/nvim/ |
| Lazygit | Simple terminal UI for git commands | git/.config/lazygit/ |
| GitHub Copilot | AI-powered code completion | code/.config/github-copilot/ |
| OpenCode | Advanced development assistant | code/.config/opencode/ |
- Rose Pine theme for Kitty terminal
- Powerlevel10k for Zsh prompt
- LazyVim setup with modern plugins
Install GNU Stow:
# Ubuntu/Debian
sudo apt-get install stow
# Arch Linux
sudo pacman -S stow
# macOS
brew install stow- Clone the repository:
git clone https://github.com/William9923/dotfiles.git ~/dotfiles
cd ~/dotfiles- Set up secrets (first time only):
# Copy the example file and add your actual secrets
cp .env.example zsh/.zsh_secrets
vi zsh/.zsh_secrets # Add your API keys and tokens- Generate config files from templates:
./setup-secrets.sh- Apply configurations with Stow:
# Install everything
stow code git terminal tmux zsh
# Or install selectively
stow code # Neovim, OpenCode, GitHub Copilot
stow git # Git and Lazygit configuration
stow terminal # Kitty and Atuin
stow tmux # Tmux configuration
stow zsh # Zsh shell and Powerlevel10k- Restart your shell:
exec zshThis dotfiles repository uses a template-based approach for handling secrets:
- Templates (
.tmplfiles) are committed to git with${VARIABLE}placeholders - Real config files are generated locally with actual secrets
- Secrets file (
zsh/.zsh_secrets) is never committed
// opencode.json.tmpl (committed)
{
"mcp": {
"ref-tools": {
"url": "https://api.ref.tools/mcp?apiKey=${REF_API_KEY}"
}
}
}
// opencode.json (generated locally, gitignored)
{
"mcp": {
"ref-tools": {
"url": "https://api.ref.tools/mcp?apiKey=your-actual-key"
}
}
}# Edit your secrets
nano zsh/.zsh_secrets
# Regenerate config files
./setup-secrets.sh
# Check what will be committed (should be no secrets!)
git statusdotfiles/
├── 🔧 code/
│ └── .config/
│ ├── nvim/ # Neovim configuration (LazyVim)
│ ├── opencode/ # OpenCode AI assistant
│ └── github-copilot/ # GitHub Copilot settings
├── 📝 git/
│ ├── .gitconfig # Git configuration
│ └── .config/lazygit/ # Lazygit TUI settings
├── 💻 terminal/
│ └── .config/
│ ├── kitty/ # Kitty terminal emulator
│ └── atuin/ # Shell history search
├── 🖥️ tmux/
│ └── .tmux.conf # Tmux configuration
├── 🐚 zsh/
│ ├── .zshrc # Zsh configuration
│ ├── .zshenv # Zsh environment
│ ├── .p10k.zsh # Powerlevel10k config
│ └── .zsh_secrets # Secrets (gitignored)
├── 🔒 .env.example # Template for secrets
├── ⚙️ setup-secrets.sh # Setup script
└── 📖 README.md # This file
- Smart autocompletion with zsh-autosuggestions
- Fast directory navigation with zsh-z
- Beautiful prompt with Powerlevel10k
- Command history search with Atuin
- LazyVim - Modern Neovim configuration
- LSP support for multiple languages
- Git integration with LazyGit
- AI assistance with GitHub Copilot and OpenCode
- GPU acceleration with Kitty
- Session management with Tmux
- Rose Pine theme for consistent aesthetics
Happy coding! 🚀