2025-12-19 22:46:16 -05:00
2025-12-19 19:44:20 -05:00
2025-12-16 08:53:28 -05:00
2025-12-15 21:39:56 -05:00
2025-12-19 22:46:16 -05:00
2025-12-15 16:17:06 -05:00
2025-12-15 16:17:06 -05:00
2025-12-16 08:53:28 -05:00
2025-12-19 21:54:18 -05:00
2025-12-16 08:53:28 -05:00
2025-12-14 00:13:08 -05:00
2025-12-16 08:53:28 -05:00

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
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
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
│   ├── aliases.zsh            # Dotfiles command aliases
│   ├── themes/adlee.zsh-theme
│   └── functions/
│       ├── snapper.zsh        # Btrfs snapshots
│       ├── smart-suggest.zsh  # Typo correction
│       ├── command-palette.zsh
│       ├── motd.zsh           # Dynamic MOTD
│       └── password-manager.zsh
├── espanso/                   # Text expansion
│   └── match/base.yml         # 100+ snippets
├── bin/                       # Core scripts (linked to ~/.local/bin)
│   ├── dotfiles-doctor.sh     # Health checker
│   ├── dotfiles-sync.sh       # Multi-machine sync
│   ├── dotfiles-stats.sh      # Shell analytics
│   ├── dotfiles-update.sh     # Update dotfiles
│   ├── dotfiles-vault.sh      # Secrets manager
│   └── dotfiles-version.sh    # Version info
├── setup/                     # Setup scripts (not linked)
│   ├── setup-wizard.sh        # TUI installer
│   └── setup-espanso.sh       # Espanso personalization
├── 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

dotfiles-stats.sh
# or use aliases:
dfstats
stats
╔═══════════════════════════════════════════════════════════════════╗
║  Shell Analytics Dashboard                                        ║
╠═══════════════════════════════════════════════════════════════════╣
║  Total commands:  4,832                                           ║
║  Unique commands: 847                                             ║
║                                                                   ║
║  Top Commands                                                     ║
║  git          847  ████████████████████████░░░░░░                 ║
║  cd           412  ████████████░░░░░░░░░░░░░░░░░░                 ║
║  ls           398  ███████████░░░░░░░░░░░░░░░░░░░                 ║
╚═══════════════════════════════════════════════════════════════════╝
dotfiles-stats.sh --suggest    # Alias suggestions
dotfiles-stats.sh --heatmap    # Activity by hour
dotfiles-stats.sh --git        # Git breakdown
dotfiles-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
# Full command: dotfiles-vault.sh

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
# Aliases: dfd, doctor, dffix
━━━ 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

dotfiles-update.sh
# or aliases:
dfu
dfupdate

Check version:

dotfiles-version.sh
# or: dfv

🎯 Command Aliases

All dotfiles commands have convenient aliases:

Alias Command Description
dfd dotfiles-doctor.sh Health check
dffix dotfiles-doctor.sh --fix Auto-fix issues
dfs dotfiles-sync.sh Sync dotfiles
dfpush dotfiles-sync.sh --push Push changes
dfpull dotfiles-sync.sh --pull Pull changes
dfu dotfiles-update.sh Update dotfiles
dfv dotfiles-version.sh Version info
dfstats dotfiles-stats.sh Shell analytics
dfcompile dotfiles-compile.sh Compile zsh for speed
vault dotfiles-vault.sh Secrets manager
reload source ~/.zshrc Reload shell
dfc dotfiles-cli CLI with subcommands
dotfiles cd ~/.dotfiles Go to dotfiles dir

🗑️ 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%