ADLee's Dotfiles

Personal configuration files for a fast, consistent dev environment across Linux/macOS.

License: MIT Shell

┌[alee@battlestation]─[~/.dotfiles ⎇ main]
└%

Features

Feature Description
Setup Wizard Beautiful TUI installer with feature selection
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
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
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 - Execute
  • Ctrl+E - Edit before running
  • Ctrl+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.

🔄 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

🛠️ 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

  1. Fork the repo
  2. Edit dotfiles.conf with your settings
  3. Customize files as needed
  4. The installer will use your fork's URLs

📄 License

MIT See LICENSE


Author: Aaron D. Lee
Repo: https://github.com/adlee-was-taken/dotfiles

Description
My janky zsh/oh-my-zsh customization, theme, custom aliases and tools.
Readme 1.1 MiB
Languages
Shell 100%