This repository contains my personal dotfiles managed with GNU Stow. Stow creates symlinks from this repository to your home directory, making it easy to version control and sync your configuration files across machines.
The shell configuration uses zinit as the plugin manager with Powerlevel10k for the prompt theme.
- Operating System: macOS, Linux, or WSL
- Note: If you're using something other than macOS on Apple Silicon, you may need to adjust paths in
.zshrcand comment out JS ecosystem configurations.
Linux:
sudo apt install zshSet Zsh as your default shell:
chsh -s $(which zsh)Zinit is automatically installed when you first source the .zshrc file. No manual installation is required—the configuration handles cloning the repository if it doesn't exist.
Powerlevel10k is installed via zinit automatically. On first run, you may be prompted to configure it using the built-in configuration wizard, or you can use the included .p10k.zsh configuration file.
macOS:
brew install gitLinux:
sudo apt-get install gitmacOS:
brew install stowLinux:
sudo apt-get install stowFor the cool ASCII art shell greeting, install:
brew install figlet lolcatThe .gitconfig uses delta as a pager for better git diffs:
brew install git-delta-
Clone the repository to your home directory:
cd ~ gh repo clone austin-karren/dotfiles cd dotfiles
-
Symlink dotfiles using Stow:
stow .If you have an existing
.zshrcfile, you can use the--adoptflag to have Stow take ownership of it:stow --adopt .This will replace the repository's
.zshrcwith your current one, so you may want to back up your changes first. -
Reload your shell:
exec zshOn first run, zinit will automatically install itself and download the configured plugins (including Powerlevel10k).
The .gitconfig file includes several useful settings and aliases. Important: You need to configure your personal git information.
The .gitconfig includes this line:
[include]
path = ~/.gitconfig.localYou need to create a ~/.gitconfig.local file with your personal information:
[user]
name = Your Name
email = your.email@example.comAlternative: If you don't want to use a separate file, you can edit the .gitconfig directly and replace:
[user]
name = Austin Karren
[include]
path = ~/.gitconfig.local # Replace with your own configuration file or emailwith your own information:
[user]
name = Your Name
email = your.email@example.com- Useful aliases:
git undo- undoes the last commit while keeping changes - Auto-setup remote: Automatically sets up remote tracking for new branches
- Delta pager: Enhanced diff viewer with syntax highlighting and line numbers
- zdiff3 merge style: Better conflict resolution view
- Git LFS: Large File Storage support
The .zshrc file is configured for macOS on Apple Silicon and uses:
- zinit - Fast and flexible plugin manager
- Powerlevel10k - Feature-rich prompt theme
- zoxide - Smarter cd command (aliased to
cd)
The configuration is organized into clearly labeled sections:
- Pre-Initialization - Paths, environment variables, and instant prompt setup
- Shell Utilities - Plugin manager (zinit), zoxide, and Powerlevel10k
- Completions - Docker, Deno, Bun, and Terraform completions
- Mobile Development - Android SDK and Java paths
- LM Studio - Local LLM tooling aliases
- Aliases and Functions - Custom productivity commands
- Terminal Personalization - Startup animation and p10k config
Run help in your terminal to see all custom aliases and functions, or use:
my-aliases- List all custom aliasesmy-functions- List all custom functionsreload-shell- Reload the shell configuration
If you're using a different system:
- Review and adjust paths to match your system
- Comment out or modify JS ecosystem configurations (Volta, Bun, etc.)
- Adjust any macOS-specific settings
.gitconfig- Git configuration with aliases and enhanced diff viewing.zshrc- Zsh shell configuration with zinit and Powerlevel10k.p10k.zsh- Powerlevel10k prompt configuration.config/zed/- Zed editor configuration (optional)Library/Application Support/com.mitchellh.ghostty/- Ghostty terminal configuration (optional)
The following configurations are included but are optional and lower priority compared to the core .zshrc and .gitconfig files.
Zed is a high-performance, multiplayer code editor. The configuration includes:
- Theme: Catppuccin (Mocha for dark mode, Latte for light mode) with system-based switching
- Font: MonoLisa at 16pt for both UI and editor
- Keybindings: VSCode-compatible keymap (see
keymap.json) - LSP Configurations:
- Tailwind CSS with custom class functions (cva, cx)
- Typos LSP for spell checking
- AI Agent Settings: Claude Sonnet 4.5 as default model with custom profiles
- Editor Settings: 2-space tabs, soft wrap, format on save
settings.json- Main editor configurationkeymap.json- Custom keybindingsthemes/- Custom theme configurationsprompts/- AI agent prompts
Note: If you don't use Zed, you can safely ignore this directory when running stow.
Ghostty is a fast, feature-rich terminal emulator. The configuration includes:
- Themes: Andromeda (dark) and Catppuccin Latte (light) with automatic switching
- Font: MonoLisa at 15pt
- Window Settings:
- Padding: 6px on all sides with balanced padding
- Default size: 95 columns × 28 rows
- Saves window state between sessions
- Quick Terminal:
- Global hotkey:
Cmd+Shift+Space - Auto-hide when focus is lost
- Appears on screen with mouse cursor
- Global hotkey:
- Custom Keybindings:
Cmd+D- New split (auto direction)Shift+Enter- Insert newline
The config is located at:
Library/Application Support/com.mitchellh.ghostty/config
Note: If you don't use Ghostty, you can safely ignore this directory when running stow. You can selectively stow files by specifying individual directories instead of using stow .
- YouTube: Stow has forever changed the way I manage my dotfiles by Dreams of Autonomy
- Blog Post: Make Managing Dotfiles a Breeze with Stow
Happy configuring! 🚀