Cleanup tasks.
This commit is contained in:
425
README.md
425
README.md
@@ -6,154 +6,329 @@ Personal configuration files for a fast, consistent dev environment across Linux
|
||||
[](https://www.zsh.org/)
|
||||
|
||||
```
|
||||
┌[alee@catchthesethighs]─[~/.dotfiles ⎇ main]
|
||||
┌[alee@battlestation]─[~/.dotfiles ⎇ main]
|
||||
└%
|
||||
```
|
||||
|
||||
## What's Included
|
||||
## ✨ Features
|
||||
|
||||
| Component | Description |
|
||||
|-----------|-------------|
|
||||
| **Zsh Theme** | Git status, command timer, smart path truncation |
|
||||
| **Espanso** | 100+ text snippets (`..date`, `..gst`, `..dps`) |
|
||||
| **CLI Tools** | fzf, bat, eza integrations |
|
||||
| **Snapper** | Btrfs snapshot helpers for CachyOS/Arch |
|
||||
| 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
|
||||
## 🚀 Quick Start
|
||||
|
||||
### One-liner Install
|
||||
|
||||
```bash
|
||||
# One-liner
|
||||
curl -fsSL https://raw.githubusercontent.com/adlee-was-taken/dotfiles/main/install.sh | bash
|
||||
```
|
||||
|
||||
# Or clone first
|
||||
### Interactive Wizard (Recommended)
|
||||
|
||||
```bash
|
||||
git clone https://github.com/adlee-was-taken/dotfiles.git ~/.dotfiles
|
||||
cd ~/.dotfiles
|
||||
./install.sh --wizard
|
||||
```
|
||||
|
||||
### Standard Install
|
||||
|
||||
```bash
|
||||
git clone https://github.com/adlee-was-taken/dotfiles.git ~/.dotfiles
|
||||
cd ~/.dotfiles && ./install.sh
|
||||
```
|
||||
|
||||
The installer backs up existing configs, installs oh-my-zsh + plugins, configures git, and creates symlinks.
|
||||
|
||||
### Install Options
|
||||
|
||||
```bash
|
||||
./install.sh --skip-deps # Skip dependency check (re-runs)
|
||||
./install.sh --uninstall # Remove symlinks
|
||||
./install.sh --uninstall --purge # Remove everything
|
||||
```
|
||||
|
||||
## Repository Layout
|
||||
|
||||
```
|
||||
dotfiles/
|
||||
├── install.sh # Main installer
|
||||
├── dotfiles.conf # Configuration (fork-friendly)
|
||||
├── zsh/
|
||||
│ ├── .zshrc # Shell config
|
||||
│ ├── themes/adlee.zsh-theme
|
||||
│ └── functions/snapper.zsh
|
||||
├── espanso/
|
||||
│ ├── config/default.yml
|
||||
│ └── match/base.yml # 100+ snippets
|
||||
├── git/.gitconfig.template # Git config template
|
||||
├── vim/.vimrc
|
||||
├── tmux/.tmux.conf
|
||||
├── bin/ # Helper scripts
|
||||
│ ├── dotfiles-doctor.sh # Health checker
|
||||
│ ├── dotfiles-version.sh # Version checker
|
||||
│ └── update-dotfiles.sh
|
||||
└── docs/ # Extended docs
|
||||
```
|
||||
|
||||
## Health Check
|
||||
|
||||
Verify your installation:
|
||||
|
||||
```bash
|
||||
dotfiles-doctor.sh # Run diagnostics
|
||||
dotfiles-doctor.sh --fix # Auto-fix issues
|
||||
dotfiles-version.sh # Check for updates
|
||||
```
|
||||
|
||||
## Espanso Snippets
|
||||
|
||||
All triggers use `..` prefix to avoid accidents.
|
||||
|
||||
| Category | Examples |
|
||||
|----------|----------|
|
||||
| **Time** | `..date` → 2025-12-14, `..ts` → ISO timestamp, `..epoch` |
|
||||
| **Git** | `..gstat`, `..gcm`, `..branch` (current branch) |
|
||||
| **Docker** | `..dps`, `..dcup`, `..dlog` |
|
||||
| **Symbols** | `..shrug` → ¯\\\_(ツ)\_/¯, `..check` → ✓ |
|
||||
|
||||
Full list: [docs/ESPANSO.md](docs/ESPANSO.md)
|
||||
|
||||
## Theme Features
|
||||
|
||||
- **Git integration** – `⎇ branch` with dirty indicator (`*`)
|
||||
- **Command timer** – shows elapsed time for commands >10s
|
||||
- **Smart paths** – truncates long directories
|
||||
- **User detection** – blue prompt for users, red for root
|
||||
|
||||
## Customization
|
||||
|
||||
```bash
|
||||
# Edit theme
|
||||
vim ~/.dotfiles/zsh/themes/adlee.zsh-theme
|
||||
source ~/.zshrc
|
||||
|
||||
# Add espanso snippets
|
||||
vim ~/.dotfiles/espanso/match/base.yml
|
||||
espanso restart
|
||||
|
||||
# Add aliases
|
||||
vim ~/.dotfiles/zsh/.zshrc
|
||||
```
|
||||
|
||||
## System-Wide Theme Deployment
|
||||
|
||||
Share the theme across all users:
|
||||
|
||||
```bash
|
||||
sudo ./bin/deploy-zshtheme-systemwide.sh --all # All users
|
||||
sudo ./bin/deploy-zshtheme-systemwide.sh --status # Check status
|
||||
```
|
||||
|
||||
## Updating
|
||||
|
||||
```bash
|
||||
cd ~/.dotfiles
|
||||
git pull origin main
|
||||
./install.sh
|
||||
```
|
||||
|
||||
## Snapper Integration (CachyOS/Arch)
|
||||
## 📁 Repository Layout
|
||||
|
||||
For btrfs systems with limine-snapper-sync:
|
||||
|
||||
```bash
|
||||
snap-create "Before update" # Create + validate limine entry
|
||||
snap-list # Recent snapshots
|
||||
snap-check-limine # Verify boot menu sync
|
||||
```
|
||||
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/
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
## 🎮 Command Palette
|
||||
|
||||
```bash
|
||||
dotfiles-doctor.sh --fix # Auto-diagnose and fix
|
||||
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 │
|
||||
╰──────────────────────────────────────────╯
|
||||
```
|
||||
|
||||
| Issue | Fix |
|
||||
|-------|-----|
|
||||
| Theme not loading | `dotfiles-doctor.sh --fix` |
|
||||
| Zsh plugins missing | `./install.sh` (auto-installs now) |
|
||||
| Espanso not working | `espanso status`, then `espanso restart` |
|
||||
| Broken symlinks | `./install.sh` |
|
||||
| Want to uninstall | `./install.sh --uninstall` |
|
||||
**Searches:** aliases, functions, history, bookmarks, git commands, docker commands, quick actions
|
||||
|
||||
## License
|
||||
**Keybindings:**
|
||||
- `Enter` - Execute
|
||||
- `Ctrl+E` - Edit before running
|
||||
- `Ctrl+Y` - Copy to clipboard
|
||||
|
||||
### Directory Bookmarks
|
||||
|
||||
```bash
|
||||
bookmark projects ~/projects # Save
|
||||
bookmark list # List all
|
||||
jump projects # Go to bookmark
|
||||
j # Fuzzy select
|
||||
```
|
||||
|
||||
## 🔧 Smart Suggestions
|
||||
|
||||
Automatic typo correction:
|
||||
|
||||
```bash
|
||||
$ gti status
|
||||
✗ Command not found: gti
|
||||
→ Did you mean: git?
|
||||
|
||||
$ dokcer ps
|
||||
✗ Command not found: dokcer
|
||||
→ Did you mean: docker?
|
||||
```
|
||||
|
||||
Alias recommendations:
|
||||
|
||||
```bash
|
||||
💡 Tip: You've typed 'docker-compose up -d' 15 times
|
||||
Consider adding: alias dcu='docker-compose up -d'
|
||||
```
|
||||
|
||||
Quick fix with `fuck`:
|
||||
|
||||
```bash
|
||||
$ gti status
|
||||
✗ Command not found: gti
|
||||
$ fuck
|
||||
Running: git status
|
||||
```
|
||||
|
||||
## 📊 Shell Analytics
|
||||
|
||||
```bash
|
||||
shell-stats.sh
|
||||
```
|
||||
|
||||
```
|
||||
╔═══════════════════════════════════════════════════════════════════╗
|
||||
║ Shell Analytics Dashboard ║
|
||||
╠═══════════════════════════════════════════════════════════════════╣
|
||||
║ Total commands: 4,832 ║
|
||||
║ Unique commands: 847 ║
|
||||
║ ║
|
||||
║ Top Commands ║
|
||||
║ git 847 ████████████████████████░░░░░░ ║
|
||||
║ cd 412 ████████████░░░░░░░░░░░░░░░░░░ ║
|
||||
║ ls 398 ███████████░░░░░░░░░░░░░░░░░░░ ║
|
||||
╚═══════════════════════════════════════════════════════════════════╝
|
||||
```
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
eval $(vault shell) # Load all secrets
|
||||
```
|
||||
|
||||
Uses `age` or `gpg` encryption. Secrets auto-load on shell start.
|
||||
|
||||
## 🔄 Dotfiles Sync
|
||||
|
||||
Keep dotfiles synchronized across machines:
|
||||
|
||||
```bash
|
||||
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](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
|
||||
|
||||
```bash
|
||||
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`:
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
cd ~/.dotfiles && git pull && ./install.sh
|
||||
# or
|
||||
update-dotfiles.sh
|
||||
```
|
||||
|
||||
Check version:
|
||||
|
||||
```bash
|
||||
dotfiles-version.sh
|
||||
```
|
||||
|
||||
## 🗑️ Uninstalling
|
||||
|
||||
```bash
|
||||
./install.sh --uninstall # Remove symlinks
|
||||
./install.sh --uninstall --purge # Also delete ~/.dotfiles
|
||||
```
|
||||
|
||||
## 📚 Documentation
|
||||
|
||||
- [Setup Guide](docs/SETUP_GUIDE.md) - Detailed installation instructions
|
||||
- [Espanso Reference](docs/ESPANSO.md) - All text expansion snippets
|
||||
- [Snapper Guide](docs/SNAPPER.md) - Btrfs snapshot management
|
||||
|
||||
## 🛠️ Install Options
|
||||
|
||||
```bash
|
||||
./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](LICENSE)
|
||||
|
||||
---
|
||||
|
||||
**Author**: Aaron D. Lee
|
||||
**Repo**: https://github.com/adlee-was-taken/dotfiles
|
||||
**Author:** Aaron D. Lee
|
||||
**Repo:** https://github.com/adlee-was-taken/dotfiles
|
||||
|
||||
Reference in New Issue
Block a user