14 KiB
ADLee's Dotfiles (Arch/CachyOS)
Personal configuration files for a fast, productive dev environment on Arch Linux and CachyOS.
┌[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 | Two-line prompt with 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 and get insights |
| Secrets Vault | Encrypted storage for API keys and sensitive data |
| LastPass CLI | Unified password manager integration |
| Dotfiles Sync | Keep configuration in sync across machines |
| Snapper Integration | Btrfs snapshot management with limine-snapper-sync |
| Tmux Workspaces | Project templates with pre-configured layouts |
| SSH Manager | Save and manage SSH connections with tmux integration |
🚀 Quick Start
One-liner Install
git clone https://github.com/adlee-was-taken/dotfiles.git ~/.dotfiles && cd ~/.dotfiles && ./install.sh
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
📋 System Requirements
- OS: Arch Linux or CachyOS
- Editors: Vim (required), Neovim (optional)
- Password Manager: LastPass
- Shell: Zsh (installed by script)
- Package Manager: Pacman (built-in)
📁 Repository Layout
dotfiles/
├── install.sh # Main installer script
├── dotfiles.conf # Central configuration
├── zsh/
│ ├── .zshrc # Shell configuration
│ ├── aliases.zsh # Command aliases
│ ├── themes/adlee.zsh-theme # Prompt theme
│ └── functions/
│ ├── command-palette.zsh # Ctrl+Space launcher
│ ├── motd.zsh # System info display
│ ├── smart-suggest.zsh # Typo correction
│ ├── password-manager.zsh # LastPass integration
│ ├── snapper.zsh # Btrfs snapshots
│ ├── ssh-manager.zsh # SSH profiles
│ ├── tmux-workspaces.zsh # Workspace templates
│ └── python-templates.zsh # Python project scaffolding
├── vim/.vimrc # Vim configuration
├── nvim/ # Neovim configuration
├── tmux/.tmux.conf # Tmux configuration
├── git/.gitconfig.template # Git configuration template
└── bin/ # Scripts (symlinked 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 # Encrypted secrets manager
└── dotfiles-version.sh # Version info
🎮 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, recent commands, bookmarks, git commands, quick actions
Keybindings:
Enter- Execute commandCtrl+E- Edit before runningCtrl+Y- Copy to clipboard
Directory Bookmarks
bookmark projects ~/projects # Save bookmark
bookmark list # List all
jump projects # Go to bookmark
j # Fuzzy select
🔧 Smart Suggestions
Automatic typo correction for 100+ common mistakes:
$ gti status
✗ Command not found: gti
→ Did you mean: git?
$ dokcer ps
✗ Command not found: dokcer
→ Did you mean: docker?
Alias recommendations for frequently typed commands:
💡 Tip: You've typed 'git status' 50 times
Consider adding: alias gs='git status'
📊 Shell Analytics
dotfiles-stats.sh # Full dashboard
# or use aliases:
dfstats
stats
╔═══════════════════════════════════════════════════════════════════╗
║ Shell Analytics Dashboard ║
╠═══════════════════════════════════════════════════════════════════╣
║ Total commands: 4,832 ║
║ Unique commands: 847 ║
║ ║
║ Top Commands ║
║ git 847 ████████████████████████░░░░░░ ║
║ cd 412 ████████████░░░░░░░░░░░░░░░░░░ ║
║ ls 398 ███████████░░░░░░░░░░░░░░░░░░░ ║
╚═══════════════════════════════════════════════════════════════════╝
🔐 Secrets Vault
Encrypted storage for API keys and tokens:
vault set GITHUB_TOKEN ghp_xxxxxxxxxxxx
vault set AWS_SECRET_KEY # Prompts for 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
LastPass CLI for unified password management:
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)
Install LastPass CLI
# Via AUR with paru (recommended)
paru -S lastpass-cli
# Or with yay
yay -S lastpass-cli
🖥️ Dynamic MOTD
System info displayed on shell startup:
┌──────────────────────────────────────────────────────────────┐
│ ✦ alee@battlestation Mon Dec 15 14:30 │
├──────────────────────────────────────────────────────────────┤
│ ▲ up:4d 7h ◆ load:0.45 ◇ mem:8.2/32G ⊡ 234G free │
└──────────────────────────────────────────────────────────────┘
Shows: uptime, load average, memory usage, disk space
Configuration:
ENABLE_MOTD="true" # Enable MOTD
MOTD_STYLE="compact" # compact (box), mini (single line), or off
🎨 Zsh Theme
┌[user@hostname]─[~/projects ⎇ main *]
└%
Features:
- Two-line prompt for clarity
- Git integration (branch name with dirty indicator
*) - Command timer (shows elapsed time for commands >10s)
- Smart path truncation
- Root detection (red for root, blue for users)
🔄 Dotfiles Sync
Keep configuration synchronized across machines:
dotfiles-sync.sh # Interactive sync
dotfiles-sync.sh --status # Show sync 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 notifications of available updates.
📸 Snapper Integration
Btrfs snapshot management for Arch with limine bootloader:
snap-create "Before system update" # Create snapshot
snap-list 20 # List recent snapshots
snap-check-limine # Verify boot menu sync
snap-delete 42 # Delete snapshot
snap-validate-service # Check service status
Auto-syncs with limine-snapper-sync for boot menu entries.
Install on CachyOS/Arch:
paru -S limine-snapper-sync
sudo systemctl enable limine-snapper-sync.service
🎯 Tmux Workspace Manager
Pre-configured layouts for different workflows:
tw-create myproject dev # Create dev workspace
tw myproject # Quick attach or create
tw-list # List active workspaces
tw-save my-custom-layout # Save current layout as template
tw-sync # Toggle pane sync for multi-server
twf # Fuzzy search workspaces
Available Templates:
dev- Vim (50%) + terminal (25%) + logs (25%)ops- 4-pane monitoring gridssh-multi- 4 panes for multi-server managementdebug- 2 panes: main (70%) + helper (30%)full- Single full-screen panereview- Side-by-side code review panes
🌐 SSH Session Manager
Save and manage SSH connections with automatic tmux integration:
ssh-save prod user@prod.example.com 22 ~/.ssh/prod_key
ssh-connect prod # Auto-creates/attaches tmux session
ssh-list # List all profiles
sshf # Fuzzy search and connect
ssh-sync-dotfiles prod # Deploy dotfiles to remote
🐍 Python Project Templates
Quick project scaffolding with virtual environments:
py-new myproject # Basic Python project
py-django myblog # Django web app
py-flask myapp # Flask web app
py-fastapi myapi # FastAPI REST API
py-data analysis # Data science project
py-cli mytool # CLI tool with Click
All include virtual environment setup, git initialization, and project structure.
⌨️ 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 |
vault |
dotfiles-vault.sh |
Secrets manager |
pw |
LastPass password manager | Get/list passwords |
tw |
Tmux workspace manager | Quick workspace access |
reload |
source ~/.zshrc |
Reload shell config |
🩺 Health Check
dotfiles-doctor.sh # Run diagnostics
dotfiles-doctor.sh --fix # Auto-fix issues
# Aliases: dfd, doctor, dffix
Checks: symlinks, zsh plugins, git config, optional tools, and more
⚙️ Configuration
Edit ~/.dotfiles/dotfiles.conf to customize:
# Identity
USER_FULLNAME="Your Name"
USER_EMAIL="you@example.com"
USER_GITHUB="yourusername"
# Features
INSTALL_ZSH_PLUGINS="true"
INSTALL_FZF="ask"
INSTALL_NEOVIM="ask"
SET_ZSH_DEFAULT="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
🗑️ Uninstalling
./install.sh --uninstall # Remove symlinks
./install.sh --uninstall --purge # Also delete ~/.dotfiles
📚 Documentation
- SETUP_GUIDE.md - Detailed installation and configuration
- ESPANSO.md - Text expansion snippets reference
- SNAPPER.md - Btrfs snapshot management guide
- SSH_TMUX_INTEGRATION.md - SSH + Tmux workflow
🛠️ Install Options
./install.sh # Standard install
./install.sh --wizard # Interactive TUI wizard
./install.sh --skip-deps # Re-run without checking deps
./install.sh --uninstall # Remove symlinks
./install.sh --help # Show all options
🤝 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
Repository: https://github.com/adlee-was-taken/dotfiles
Arch/CachyOS Only Edition