11 KiB
ADLee's Dotfiles
Personal configuration files for a fast, consistent dev environment across Linux/macOS.
┌[alee@battlestation]─[~/.dotfiles ⎇ main]
└%
✨ Features
| Feature | Description |
|---|---|
| Setup Wizard | Beautiful TUI installer with feature selection |
| Dynamic MOTD | System info on shell start (uptime, CPU, memory, updates) |
| Zsh Theme | Git status, command timer, root detection |
| Command Palette | Raycast-style fuzzy launcher (Ctrl+Space) |
| Smart Suggestions | Typo correction + alias recommendations |
| Shell Analytics | Track command usage, get insights |
| Secrets Vault | Encrypted storage for API keys |
| Password Managers | Unified CLI for 1Password, LastPass, Bitwarden |
| Dotfiles Sync | Auto-sync across machines |
| Espanso | 100+ text expansion snippets |
| Snapper | Btrfs snapshot helpers (Arch/CachyOS) |
🚀 Quick Start
One-liner Install
curl -fsSL https://raw.githubusercontent.com/adlee-was-taken/dotfiles/main/install.sh | bash
Interactive Wizard (Recommended)
git clone https://github.com/adlee-was-taken/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.sh --wizard
Standard Install
git clone https://github.com/adlee-was-taken/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.sh
📁 Repository Layout
dotfiles/
├── install.sh # Main installer
├── dotfiles.conf # Central configuration
├── zsh/
│ ├── .zshrc # Shell config
│ ├── themes/adlee.zsh-theme
│ └── functions/
│ ├── snapper.zsh # Btrfs snapshots
│ ├── smart-suggest.zsh # Typo correction
│ └── command-palette.zsh
├── espanso/ # Text expansion
│ └── match/base.yml # 100+ snippets
├── bin/ # Utility scripts
│ ├── setup-wizard.sh # TUI installer
│ ├── dotfiles-doctor.sh # Health checker
│ ├── dotfiles-sync.sh # Multi-machine sync
│ ├── shell-stats.sh # Analytics
│ └── vault.sh # Secrets manager
├── git/.gitconfig.template
├── vim/.vimrc
├── tmux/.tmux.conf
└── docs/
🎮 Command Palette
Press Ctrl+Space or Ctrl+P to open the fuzzy command launcher:
╭──────────────────────────────────────────╮
│ ❯ git │
├──────────────────────────────────────────┤
│ ⎇ git status │
│ ⎇ git pull main │
│ ⚡ gs (alias → git status) │
│ ↺ git commit -m "..." │
│ ★ Edit .zshrc │
╰──────────────────────────────────────────╯
Searches: aliases, functions, history, bookmarks, git commands, docker commands, quick actions
Keybindings:
Enter- ExecuteCtrl+E- Edit before runningCtrl+Y- Copy to clipboard
Directory Bookmarks
bookmark projects ~/projects # Save
bookmark list # List all
jump projects # Go to bookmark
j # Fuzzy select
🔧 Smart Suggestions
Automatic typo correction:
$ gti status
✗ Command not found: gti
→ Did you mean: git?
$ dokcer ps
✗ Command not found: dokcer
→ Did you mean: docker?
Alias recommendations:
💡 Tip: You've typed 'docker-compose up -d' 15 times
Consider adding: alias dcu='docker-compose up -d'
Quick fix with fuck:
$ gti status
✗ Command not found: gti
$ fuck
Running: git status
📊 Shell Analytics
shell-stats.sh
╔═══════════════════════════════════════════════════════════════════╗
║ Shell Analytics Dashboard ║
╠═══════════════════════════════════════════════════════════════════╣
║ Total commands: 4,832 ║
║ Unique commands: 847 ║
║ ║
║ Top Commands ║
║ git 847 ████████████████████████░░░░░░ ║
║ cd 412 ████████████░░░░░░░░░░░░░░░░░░ ║
║ ls 398 ███████████░░░░░░░░░░░░░░░░░░░ ║
╚═══════════════════════════════════════════════════════════════════╝
shell-stats.sh --suggest # Alias suggestions
shell-stats.sh --heatmap # Activity by hour
shell-stats.sh --git # Git breakdown
shell-stats.sh --dirs # Most visited directories
🔐 Secrets Vault
Encrypted storage for API keys and tokens:
vault set GITHUB_TOKEN ghp_xxxxxxxxxxxx
vault set AWS_SECRET_KEY # Prompts (hidden input)
vault get GITHUB_TOKEN
vault list # Shows keys only
vault delete OLD_KEY
Export to environment:
eval $(vault shell) # Load all secrets
Uses age or gpg encryption. Secrets auto-load on shell start.
🔑 Password Manager Integration
Unified CLI for 1Password, LastPass, and Bitwarden:
pw list # List all items
pw get github # Get password
pw get github username # Get specific field
pw otp github # Get TOTP code
pw copy aws # Copy password to clipboard
pw search mail # Search items
pwf # Fuzzy search + copy (requires fzf)
Supports:
- 1Password (
op) -INSTALL_1PASSWORD="true" - LastPass (
lpass) -INSTALL_LASTPASS="true" - Bitwarden (
bw) -INSTALL_BITWARDEN="true"
🖥️ Dynamic MOTD
System info displayed on shell start:
┌──────────────────────────────────────────────────────────────┐
│ ✦ alee@battlestation Mon Dec 15 14:30│
├──────────────────────────────────────────────────────────────┤
│ ▲ up:4d 7h ◆ cpu:12% ◇ mem:8.2/32G ⊡ 234G free │
├──────────────────────────────────────────────────────────────┤
│ ◉4 containers ⎇2 dirty ↑3 updates ●dotfiles:✓ │
└──────────────────────────────────────────────────────────────┘
Configure in dotfiles.conf:
ENABLE_MOTD="true"
MOTD_STYLE="compact" # compact, mini, or off
🔄 Dotfiles Sync
Keep dotfiles synchronized across machines:
dotfiles-sync.sh # Interactive sync
dotfiles-sync.sh --status # Show status
dotfiles-sync.sh --push # Push changes
dotfiles-sync.sh --pull # Pull changes
dotfiles-sync.sh --watch 300 # Auto-sync every 5 min
On shell start, you'll see:
⚠ Dotfiles: 3 update(s) available
Run: dotfiles-sync.sh --pull
⌨️ Espanso Snippets
All triggers use .. prefix:
| Category | Examples |
|---|---|
| Date/Time | ..date → 2025-12-15, ..ts → ISO timestamp |
| Git | ..gstat, ..gcm, ..branch (current branch) |
| Docker | ..dps, ..dcup, ..dlog |
| Symbols | ..shrug → ¯\_(ツ)_/¯, ..check → ✓ |
| Code | ..bash → script template, ..python → main template |
Full list: docs/ESPANSO.md
🎨 Theme Features
┌[user@hostname]─[~/projects ⎇ main *]
└%
- Git integration – Branch name with dirty indicator (
*) - Command timer – Shows elapsed time for commands >10s
- Smart paths – Truncates long directories
- Root detection – Red prompt for root, blue for users
🩺 Health Check
dotfiles-doctor.sh # Run diagnostics
dotfiles-doctor.sh --fix # Auto-fix issues
━━━ Symlinks ━━━
✓ Symlink valid: .zshrc
✓ Symlink valid: .gitconfig
✓ Symlink valid: adlee.zsh-theme
━━━ Zsh Plugins ━━━
✓ Plugin installed: zsh-autosuggestions
✓ Plugin installed: zsh-syntax-highlighting
━━━ Summary ━━━
Passed: 12
Warnings: 1
Failed: 0
⚙️ Configuration
All settings in dotfiles.conf:
# Identity
USER_FULLNAME="Your Name"
USER_EMAIL="you@example.com"
GIT_USER_NAME="" # Falls back to USER_FULLNAME
# Features
INSTALL_ZSH_PLUGINS="true"
INSTALL_FZF="ask"
INSTALL_ESPANSO="ask"
# Advanced
ENABLE_SMART_SUGGESTIONS="true"
ENABLE_COMMAND_PALETTE="true"
ENABLE_VAULT="true"
DOTFILES_AUTO_SYNC_CHECK="true"
🔄 Updating
cd ~/.dotfiles && git pull && ./install.sh
# or
update-dotfiles.sh
Check version:
dotfiles-version.sh
🗑️ Uninstalling
./install.sh --uninstall # Remove symlinks
./install.sh --uninstall --purge # Also delete ~/.dotfiles
📚 Documentation
- Setup Guide - Detailed installation instructions
- Espanso Reference - All text expansion snippets
- Snapper Guide - Btrfs snapshot management
🛠️ Install Options
./install.sh # Standard install
./install.sh --wizard # Interactive TUI
./install.sh --skip-deps # Skip dependency check
./install.sh --uninstall # Remove symlinks
./install.sh --help # All options
📋 Requirements
- OS: Linux (Ubuntu, Arch, Fedora) or macOS
- Shell: Zsh (installed automatically)
- Optional: fzf (for command palette), age/gpg (for vault)
🤝 Forking
- Fork the repo
- Edit
dotfiles.confwith your settings - Customize files as needed
- The installer will use your fork's URLs
📄 License
MIT – See LICENSE
Author: Aaron D. Lee
Repo: https://github.com/adlee-was-taken/dotfiles