2025-12-25 12:04:56 -05:00
2025-12-25 12:04:56 -05:00
2025-12-24 17:46:07 -05:00
2025-12-25 12:04:56 -05:00
2025-12-25 12:04:56 -05:00
2025-12-15 16:17:06 -05:00
2025-12-24 17:55:24 -05:00
2025-12-24 17:36:41 -05:00
2025-12-25 11:22:24 -05:00
2025-12-24 17:46:07 -05:00
2025-12-22 00:39:04 -05:00
2025-12-14 00:13:08 -05:00
2025-12-24 17:52:29 -05:00

ADLee's Dotfiles

Personal configuration files for a fast, productive development environment on Arch Linux and CachyOS.

License: MIT Shell OS

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

Features at a Glance

Feature Description
Dynamic MOTD System info on shell start (uptime, load, memory, updates)
Two-Line Prompt Git status, command timer, update indicator, root detection
Command Palette Raycast-style fuzzy launcher (Ctrl+Space)
Smart Suggestions Typo correction + alias recommendations
Systemd Helpers Quick service management shortcuts
Btrfs Helpers Filesystem health, scrub, balance commands
Snapper Integration Btrfs snapshots with limine boot menu sync
Secrets Vault Encrypted storage for API keys (age/gpg)
Password Manager LastPass CLI integration
Tmux Workspaces Project templates with pre-configured layouts
SSH Manager Save and manage SSH connections with tmux
Python Templates Quick project scaffolding (Django, Flask, FastAPI, etc.)
Dotfiles Sync Keep configuration in sync across machines
Shell Analytics Track command usage and get insights

Quick Start

git clone https://github.com/adlee-was-taken/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.sh

See INSTALL.md for detailed installation instructions.


Command Reference

Dotfiles Management

Command Alias Description
dotfiles-doctor.sh dfd, doctor Health check
dotfiles-doctor.sh --fix dffix Auto-fix issues
dotfiles-doctor.sh --quick - Quick essential checks
dotfiles-sync.sh dfs, dfsync Sync status
dotfiles-sync.sh push dfpush Push changes to remote
dotfiles-sync.sh pull dfpull Pull remote changes
dotfiles-update.sh dfu, dfupdate Update dotfiles
dotfiles-version.sh dfv, dfversion Version info
dotfiles-stats.sh dfstats Shell analytics
dotfiles-vault.sh vault Secrets manager
dotfiles-compile.sh dfcompile Compile zsh for speed
source ~/.zshrc reload, rl Reload shell config

Quick Edit Aliases

Alias Opens
v.zshrc ~/.zshrc
v.conf ~/.dotfiles/dotfiles.conf
v.alias ~/.dotfiles/zsh/aliases.zsh
v.motd ~/.dotfiles/zsh/functions/motd.zsh
v.edit ~/.dotfiles directory in editor

Systemd Helpers

Quick shortcuts for systemd service management.

Core Commands

Command Description
sc <args> sudo systemctl <args>
scu <args> systemctl --user <args>
scr <service> Restart service and show status
sce <service> Enable and start service
scd <service> Disable and stop service
sclog <service> Follow journal logs (-f)
sclogs <service> Show recent logs (no follow)

Status Commands

Command Description
sc-failed Show failed services (system + user)
sc-timers Show active timers
sc-recent Recently started services
sc-boot Boot time analysis
sc-search <query> Search services by name
sc-info <service> Detailed service info

Interactive (requires fzf)

Command Description
scf Interactive service manager with preview
sclogf Interactive log viewer

Aliases

Alias Command
scs sc status
scstart sc start
scstop sc stop
screload sc daemon-reload
jctl journalctl
jctlf journalctl -f
jctlb journalctl -b
jctlerr journalctl -p err -b

Btrfs Helpers

Quick commands for btrfs filesystem management (CachyOS defaults to btrfs).

Information

Command Alias Description
btrfs-usage [mount] btru Filesystem usage summary
btrfs-subs [mount] btrs List all subvolumes
btrfs-info [mount] btri Full filesystem information
btrfs-health [mount] btrh Quick health check
btrfs-compress [path] btrc Compression stats (requires compsize)

Maintenance

Command Description
btrfs-balance [mount] Start balance operation
btrfs-balance-status Check balance progress
btrfs-balance-cancel Cancel running balance
btrfs-scrub [mount] Start scrub (integrity check)
btrfs-scrub-status Check scrub progress
btrfs-scrub-cancel Cancel running scrub
btrfs-defrag <path> Defragment file/directory
btrfs-maintain [mount] Full maintenance routine

Snapshots

Command Description
btrfs-snap-usage Show snapshot space usage

Note: Most commands default to / if no mount point is specified. See also snapper.zsh for snapshot management.


Snapper Integration

Btrfs snapshot management with limine bootloader sync.

Command Alias Description
snap-create "description" snap Create snapshot with validation
snap-list [count] snapls List recent snapshots (default: 10)
snap-show <number> snapshow Show snapshot details
snap-delete <number> snaprm Delete snapshot
snap-check-limine snapcheck Verify boot menu sync
snap-sync snapsync Manually trigger limine sync
snap-validate-service - Check service status

System Update with Snapshot

sys-update    # Creates pre/post snapshot around pacman -Syu

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 and functions
  • Recent commands
  • Git commands (when in repo)
  • Docker commands
  • Bookmarked directories
  • Dotfiles scripts
  • Quick actions

Keybindings

Key Action
Enter Execute command
Ctrl+E Edit before running
Ctrl+Y Copy to clipboard
Ctrl+R Reload entries

Directory Bookmarks

Command Alias Description
bookmark <name> [path] bm Save bookmark (default: current dir)
bookmark list bm list List all bookmarks
bookmark delete <name> bm rm Delete bookmark
jump <name> j Go to bookmark (fuzzy select if no name)

Smart Suggestions

Automatic typo correction for 100+ common mistakes:

$ gti status
✗ Command not found: gti
→ Did you mean: git?

Alias recommendations for frequently typed commands:

💡 Tip: You've typed 'git status' 50 times
   Consider adding: alias gs='git status'

Supported Typos

Git, Docker, common commands (ls, cat, grep, mkdir, etc.), Python, Node, sudo, ssh, vim, and more.

Quick Fix

fuck    # Re-run last command with typo correction

MOTD (Message of the Day)

System info displayed on shell startup.

Display Styles

Style Command Description
Compact show_motd Box format with stats
Mini show_motd_mini Single line
Full show_motd_full Extended info with kernel, scheduler

Configuration

In dotfiles.conf:

ENABLE_MOTD="true"
MOTD_STYLE="compact"    # compact, mini, full, or none

Force Refresh

motd          # Compact
motd-mini     # Mini
motd-full     # Full
sysbrief      # Quick system overview (callable anytime)

Secrets Vault

Encrypted storage for API keys and tokens using age or gpg.

Command Description
vault init Initialize vault
vault set <key> [value] Store secret (prompts if value omitted)
vault get <key> Retrieve secret
vault list List all keys
vault delete <key> Delete secret
vault shell Print as export statements
vault export <file> Backup vault (encrypted)
vault import <file> Restore from backup
vault status Show vault info

Aliases

Alias Command
vls vault list
vget vault get
vset vault set

Auto-load on Shell Start

Secrets can be auto-exported to environment. Enable in .zshrc:

eval $(vault shell)

Password Manager (LastPass)

Unified interface for LastPass CLI.

Command Description
pw list List all items
pw get <item> [field] Get field (default: password)
pw otp <item> Get TOTP code
pw search <query> Search items
pw copy <item> [field] Copy to clipboard
pw lock Logout/lock session

Fields

password, username, url, notes, or any custom field name.

Aliases

Alias Command
pwl pw list
pwg pw get
pwc pw copy
pws pw search

FZF Integration

Command Description
pwf Fuzzy search and copy password
pwof Fuzzy search and copy OTP

Tmux Workspace Manager

Pre-configured layouts for different workflows.

Workspace Commands

Command Alias Description
tw <name> [template] - Attach or create workspace
tw-create <name> [template] twc Create workspace
tw-attach <name> twa Attach to workspace
tw-list twl List active workspaces
tw-delete <name> twd Delete workspace
tw-save <name> tws Save current layout as template
tw-templates twt List available templates
tw-template-edit <name> twe Edit template
tw-sync - Toggle pane synchronization
tw-rename <old> <new> - Rename workspace
twf - Fuzzy search workspaces

Built-in Templates

Template Description
dev Vim (50%) + terminal (25%) + logs (25%)
ops 4-pane monitoring grid
ssh-multi 4 panes for multi-server management
debug Main (70%) + helper (30%)
full Single full-screen pane
review Side-by-side code review

SSH Session Manager

Save and manage SSH connections with automatic tmux integration.

Command Alias Description
ssh-save <name> <user@host> [port] [key] [opts] [desc] sshs Save profile
ssh-list sshl List all profiles
ssh-connect <name> sshc Connect (auto tmux)
ssh-delete <name> sshd Delete profile
ssh-reconnect [name] sshr Reconnect (default: last)
ssh-sync-dotfiles <name> sshsync Deploy dotfiles to remote
sshf - Fuzzy search and connect

Configuration

In dotfiles.conf:

SSH_AUTO_TMUX="true"              # Auto-create tmux session
SSH_TMUX_SESSION_PREFIX="ssh"     # Session naming prefix
SSH_SYNC_DOTFILES="ask"           # Sync dotfiles on connect

Python Project Templates

Quick project scaffolding with virtual environments.

Command Alias Description
py-new <name> pynew Basic Python project
py-django <name> pydjango Django web app
py-flask <name> pyflask Flask web app
py-fastapi <name> pyfast FastAPI REST API
py-data <name> pydata Data science project
py-cli <name> pycli CLI tool with Click

Quick Venv Activation

venv    # Activates venv, .venv, or env if found

Shell Analytics

Track command usage and get insights.

Command Description
dfstats Full dashboard
dfstats top [n] Top N commands
dfstats suggest Alias suggestions
dfstats breakdown Category breakdown
dfstats heatmap Activity by hour
dfstats dirs Most visited directories
dfstats git Git command breakdown
dfstats export Export as JSON

Common Aliases

Navigation

Alias Command
.. cd ..
... cd ../..
.... cd ../../..
~ cd ~
c. cd ~/.dotfiles

Git

Alias Command
g git
gs git status
ga git add
gc git commit
gp git push
gl git pull
gd git diff
gco git checkout
gb git branch
glog git log --oneline --graph --decorate --all

Docker

Alias Command
d docker
dc docker-compose
dps docker ps
dpa docker ps -a
di docker images
dex docker exec -it

System

Alias Command
h history
c clear
myip curl -s ifconfig.me
ports netstat -tulanp

Tools (conditional)

Alias Command Condition
ls eza --icons if eza installed
ll eza -lah --icons if eza installed
la eza -a --icons if eza installed
lt eza --tree --level=2 --icons if eza installed
cat bat --paging=never if bat installed

Zsh Theme Features

The adlee theme provides:

  • Two-line prompt for clarity
  • Git integration with branch name and dirty indicator (*)
  • Command timer for commands taking >10 seconds
  • Update indicator showing available package updates
  • Root detection (red # for root, blue % for users)
  • Smart path display

Timer Display

Duration Color
>1 hour Red
>1 minute Orange
>10 seconds Green

Espanso Text Expansion

Text expansion snippets for quick typing.

Date/Time

Trigger Output
..date 2025-12-24
..time 14:30:45
..dt 2025-12-24 14:30:45 EST
..ts ISO 8601 timestamp
..epoch Unix timestamp

Quick Text

Trigger Output
..shrug ¯\_(ツ)_/¯
..flip (╯°□°)╯︵ ┻━┻
..lgtm Looks good to me

Code

Trigger Output
..bash Bash shebang + set -euo pipefail
..python Python main boilerplate
..mdcode Markdown code block

See REFERENCE.md for complete Espanso reference.


Key Bindings

Binding Action
Ctrl+Space Command palette
Ctrl+P Command palette (alternative)
Alt+R Reload zsh config
Ctrl+→ Forward word
Ctrl+← Backward word
Home Beginning of line
End End of line

Configuration

Edit ~/.dotfiles/dotfiles.conf:

# Identity
USER_FULLNAME="Your Name"
USER_EMAIL="you@example.com"
USER_GITHUB="yourusername"

# MOTD
ENABLE_MOTD="true"
MOTD_STYLE="compact"

# Features
ENABLE_SMART_SUGGESTIONS="true"
ENABLE_COMMAND_PALETTE="true"
ENABLE_VAULT="true"
DOTFILES_AUTO_SYNC_CHECK="true"

# Btrfs
BTRFS_DEFAULT_MOUNT="/"

# Package Manager
AUR_HELPER="auto"    # paru, yay, or auto

Repository Structure

~/.dotfiles/
├── install.sh              # Main installer
├── dotfiles.conf           # Central configuration
├── bin/                    # Scripts (symlinked to ~/.local/bin)
│   ├── dotfiles-doctor.sh
│   ├── dotfiles-sync.sh
│   ├── dotfiles-update.sh
│   ├── dotfiles-vault.sh
│   ├── dotfiles-stats.sh
│   ├── dotfiles-version.sh
│   └── dotfiles-compile.sh
├── zsh/
│   ├── .zshrc
│   ├── aliases.zsh
│   ├── lib/
│   │   └── colors.zsh      # Shared color definitions
│   ├── themes/
│   │   └── adlee.zsh-theme
│   └── functions/
│       ├── btrfs-helpers.zsh
│       ├── command-palette.zsh
│       ├── motd.zsh
│       ├── password-manager.zsh
│       ├── python-templates.zsh
│       ├── smart-suggest.zsh
│       ├── snapper.zsh
│       ├── ssh-manager.zsh
│       ├── systemd-helpers.zsh
│       └── tmux-workspaces.zsh
├── vim/.vimrc
├── tmux/.tmux.conf
├── git/.gitconfig.template
├── espanso/                # Text expansion
├── setup/                  # Setup scripts
└── .tmux-templates/        # Workspace layouts

License

MIT See LICENSE


Author: Aaron D. Lee
Repository: 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%