Personal configuration files for shell, development tools, and Emacs.
✨ Modular Configuration - Organized shell configs in separate files (env, path, aliases)
🔄 Automatic Backups - Creates timestamped backups before overwriting files
✅ Validation - Verifies source files exist before creating symlinks
🧪 Testing Suite - Run ./test.sh to verify installation
🛡️ Safe Installation - Detects existing tools and skips reinstallation
📦 Easy Uninstall - Remove symlinks and restore backups with ./uninstall.sh
git clone https://github.com/YOUR-USERNAME/dotfiles.git ~/Git/dotfiles
cd ~/Git/dotfiles
./install.shThe installer will:
- Check for required dependencies (git, curl, wget)
- Optionally install tools (ZSH, Go, Doom Emacs)
- Create backups of existing configs in
~/.dotfiles-backup/ - Create symlinks to your dotfiles
.profile- Main shell configuration, loads modular configs.bashrc- Bash-specific settings.zshrc- ZSH configuration with Oh My Zshshell/- Modular configuration directory:env.sh- Environment variables (Go, Android, Java)path.sh- Consolidated PATH configurationaliases.sh- Command aliases
- Emacs/Doom - Doom Emacs configuration in
emacs/.doom.d/ - Go - Latest Go installation in
~/.local/go - ZSH - With Oh My Zsh framework
./install.shInteractive installer that:
- Validates dependencies
- Offers optional tool installation
- Creates symlinks with backup
- Links shell modules
Go Language:
./tools/golang.shInstalls latest Go version to ~/.local/go
ZSH + Oh My Zsh:
./tools/zsh.shInstalls ZSH and Oh My Zsh framework
Doom Emacs:
./emacs/install.shInstalls Emacs (if needed) and Doom Emacs
./test.shVerifies:
- Symlinks are valid
- Tools are installed
- PATH is configured correctly
- Shell modules exist
./uninstall.shRemoves all symlinks and optionally restores backups
The modular shell configuration manages:
- Go:
$HOME/.local/go/binand$HOME/go/bin - Android SDK: Auto-detected in
$HOME/workspace/android-sdk - Java: Auto-detected from common JDK paths
- Flutter/Dart: Auto-detected if installed
- Doom Emacs:
$HOME/.emacs.d/bin
dotfiles/
├── install.sh # Main installer
├── uninstall.sh # Uninstaller
├── test.sh # Test suite
├── .profile # Main shell config
├── .bashrc # Bash config
├── .zshrc # ZSH config
├── shell/ # Modular configs
│ ├── env.sh # Environment variables
│ ├── path.sh # PATH configuration
│ └── aliases.sh # Aliases
├── emacs/ # Emacs configuration
│ ├── install.sh # Doom installer
│ └── .doom.d/ # Doom config
└── tools/ # Tool installers
├── golang.sh # Go installer
└── zsh.sh # ZSH installer
Backups are automatically created in ~/.dotfiles-backup/ with timestamps:
.profile_20260116_130845.bashrc_20260116_130845- etc.
- For detailed org-mode documentation, see README.org
- The installer prompts before overwriting existing files
- Tools check for existing installations to avoid duplicates
- All scripts use
set -euo pipefailfor safety - Paths are auto-detected when possible for portability
Command not found after installation:
source ~/.profileOr open a new terminal session.
Test failures:
Run ./test.sh to diagnose issues and see detailed error messages.
Restore from backup:
./uninstall.sh # Offers to restore latest backupsSee LICENSE