Skip to content

pbzona/.dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

137 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

.dotfiles

These are the files that make me better at using the computer.

โšก Quick Start

# Clone the repo
git clone <repo-url> ~/.dotfiles
cd ~/.dotfiles

# Preview setup (dry run)
./dot setup --dry-run

# Run full setup
./dot setup

# Verify everything works
./dot doctor

๐ŸŽฎ The dot CLI

All dotfiles operations are managed through the dot command:

dot setup       # Initial setup for new machine
dot link        # Link configs with GNU Stow
dot unlink      # Remove symlinks
dot doctor      # Run health diagnostics
dot update      # Update all packages and tools
dot package     # Manage Brewfile packages

Most commands support --dry-run to preview changes:

dot setup --dry-run
dot link --dry-run
dot update --dry-run

๐Ÿ“ฆ Package Management

All Homebrew packages are declared in packages/Brewfile:

# Add a package
dot package add bat

# Remove a package
dot package remove nushell

# List all packages
dot package list

# Sync installed packages with Brewfile
dot package sync

For work-specific packages, use packages/Brewfile.work.

๐Ÿ”— Configuration Linking

Uses GNU Stow to symlink configs from home/ to ~:

home/.zshrc           โ†’ ~/.zshrc
home/.tmux.conf       โ†’ ~/.tmux.conf
home/.aerospace.toml  โ†’ ~/.aerospace.toml
home/.config/nvim     โ†’ ~/.config/nvim
home/.config/wezterm  โ†’ ~/.config/wezterm

๐Ÿ“‹ What's Included

Core Tools

  • Shell: zsh with custom configuration
  • Terminal: WezTerm with custom config
  • Editor: Neovim (LazyVim + Bamboo theme)
  • Multiplexer: tmux with comprehensive keybinds
  • Window Manager: AeroSpace (macOS tiling)

Package Management

  • Homebrew: System packages (via Brewfile)
  • mise: Language runtimes and dev tools
  • eget: Binary downloads (edge cases)

Custom Tools

See BIN_TOOLS for details:

  • tmux-sessionizer - Quick tmux project switching
  • colorcat - Syntax-highlighted file viewing
  • mkbin / mkscript - Script generators
  • And more...

๐Ÿฉบ Troubleshooting

Run comprehensive diagnostics:

dot doctor

This checks:

  • Shell configuration (zsh)
  • Package managers (Homebrew, mise)
  • Required tools (git, stow, tmux, nvim)
  • Symlink integrity
  • PATH configuration
  • Broken links detection

๐Ÿ“š Documentation

๐ŸŽฏ Key Features

1. Idempotent Operations

All commands can be run multiple times safely. No fear of breaking things.

2. Dry-Run Support

Preview changes before applying:

dot setup --dry-run
dot link --dry-run
dot update --dry-run

3. Health Monitoring

dot doctor provides comprehensive diagnostics:

  • โœ“ Everything working
  • โš  Warnings for issues
  • โœ— Errors with fix instructions

4. Modular Architecture

Each command is a separate, easy-to-understand script in scripts/commands/.

5. Single Source of Truth

  • packages/Brewfile: All Homebrew packages
  • mise config: All language runtimes
  • home/: All config files
  • Git: Version control for everything

๐Ÿ” Security

  • Private data goes in ~/.privaterc (sourced but not committed)
  • Secrets encrypted with age (see ASSET_ENCRYPTION.md)
  • Fonts are encrypted (pay your designers!)
  • .gitignore excludes sensitive files

๐Ÿ“ Applications

neovim

Hey... *lowers sunglasses* I use neovim, you know. It's a pretty basic LazyVim setup with a couple tweaks. The theme is called Bamboo, and it matches my default WezTerm config.

tmux

I've actually been using tmux for a while so this one is pretty comprehensive. Having experimented with Zellij (which is also very cool!) I still find that I prefer tmux.

.zshrc

I found that Oh My Zsh became pretty slow, which I'm sure is a skill issue. The way I solved it was to use zinit and handle a lot more configuration myself, so there's quite a bit going on here. I added some profiling behavior so I can keep a better eye on this.

WezTerm

Fast, GPU-accelerated terminal emulator with great config flexibility. My setup includes custom key bindings, tab bar styling, and integration with the Bamboo color scheme.

AeroSpace

Tiling window manager for macOS. Configured for keyboard-driven window management with vim-style navigation.

๐Ÿš€ Quick Tips

# Update everything at once
dot update

# Check if dotfiles are healthy
dot doctor

# Preview package installation
dot package sync --dry-run

# Re-link configs after changes
dot link

# View all available commands
dot --help

๐Ÿค Contributing

This is my personal dotfiles repo, but feel free to:

  • Fork it for your own use
  • Submit issues for bugs
  • Suggest improvements via PRs

๐Ÿ“œ License

Do whatever you want with this. MIT licensed (see LICENSE file if I remember to add one).


Inspiration: This setup was inspired by dmmulroy's dotfiles and various other dotfile repos in the community.

About

Tools & tricks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors