freekmurze/dotfiles

My personal dotfiles

692 stars172 forksUpdated Jan 26, 2026
npx skills add freekmurze/dotfiles

README

My dotfiles

Terminal

Personal dotfiles with modern shell tooling, optimized for Laravel/PHP development. Features fast startup times, smart directory navigation, and modern CLI tools.

Key Features

  • Custom Agnoster Theme - Clean powerline prompt with no branch symbols, for changes
  • Version-Controlled Skills & Agents - All Claude Code skills and agents synced via dotfiles
  • Fast Tools - fnm, zoxide, ripgrep, bat, eza (all Rust-based for speed)
  • Nerd Fonts - Installed automatically via Brewfile for perfect icon support
  • One Command Install - bin/install sets up everything including Claude Code

Quick Start

git clone git@github.com:freekmurze/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
bin/install

What's Included

Shell & Prompt

  • Oh My Zsh - Framework for managing Zsh configuration (with agnoster theme by default)
  • zoxide - Smart directory jumping based on frecency
  • fzf - Fuzzy finder for files and history
  • direnv - Automatic environment variables per directory

Modern CLI Tools

  • fnm - Fast Node.js version manager
  • bat - Cat with syntax highlighting
  • eza - Modern ls replacement with icons
  • ripgrep - Fast grep alternative
  • fd - Fast find alternative
  • git-delta - Better git diffs
  • jq - JSON processor and formatter
  • yq - YAML processor and formatter
  • bottom - Modern system monitor

Development Tools

  • PHP - Latest version via Homebrew
  • Composer - Dependency manager via Homebrew
  • Node.js - LTS version managed via fnm
  • Laravel Valet - Local development server
  • MySQL - Database with auto-start

QuickLook Plugins

Instant file previews in Finder: code files, markdown, JSON, CSV, patches, and archives.


How It Works

Symlinked Files

The installation creates symlinks from your home directory to the dotfiles repository. This allows you to version control your configuration while keeping files in their expected locations.

Symlink LocationPoints ToPurpose
~/.zshrc~/.dotfiles/home/.zshrcMain Zsh configuration (Oh My Zsh with custom agnoster theme)
~/.gitconfig~/.dotfiles/home/.gitconfigGit configuration with delta diff viewer
~/.global-gitignore~/.dotfiles/home/.global-gitignoreGlobal Git ignore patterns
~/.vimrc~/.dotfiles/home/.vimrcVim configuration
~/.vim/~/.dotfiles/home/.vim/Vim runtime files
~/.mackup.cfg~/.dotfiles/macos/.mackup.cfgMackup backup configuration
~/.claude/skills~/.dotfiles/config/claude/skills/All Claude Code skills (version-controlled)
~/.claude/agents~/.dotfiles/config/claude/agents/All Claude Code agents (version-controlled)
~/.claude/CLAUDE.md~/.dotfiles/config/claude/CLAUDE.mdClaude Code configuration
~/.claude/laravel-php-guidelines.md~/.dotfiles/config/claude/laravel-php-guidelines.mdLaravel coding standards
~/.claude/settings.json~/.dotfiles/config/claude/settings.jsonClaude Code settings

Sourced Files

These files are loaded by .zshrc but remain in the dotfiles directory:

  • home/.aliases - Shell command aliases
  • home/.functions - Custom shell functions
  • home/.exports - Environment variables

Custom Agnoster Theme

The default configuration uses a customized agnoster theme stored in oh-my-zsh-custom/themes/agnoster.zsh-theme:

Customizations:

  • No git branch symbol (cleaner look)
  • Uses for unstaged changes instead of ±
  • Powerline arrows for segment separators
  • Requires Nerd Font with powerline glyphs

Git Status Symbols:

  • - Staged changes (files added with git add)
  • - Unstaged changes (modified files not yet staged)
  • Yellow background - Uncommitted changes
  • Green background - Clean working directory

Daily Usage

Smart Navigation

z dotfiles          # Jump to frequently used directories
zi                  # Interactive directory picker
Ctrl+R              # Fuzzy search command history
Ctrl+T              # Fuzzy find files
Alt+C               # Fuzzy change directory

Laravel/PHP Shortcuts

a                   # php artisan
p                   # Run Pest/PHPUnit tests
c                   # composer
mfs                 # php artisan migrate:fresh --seed
nah                 # git reset --hard; git clean -df

Data Processing

# JSON processing with jq
curl api.github.com/users/freekmurze | jq
cat composer.json | jq '.require'
php artisan tinker --execute="echo json_encode(User::first());" | jq

# YAML processing with yq
yq '.jobs' .github/workflows/ci.yml
yq -o json docker-compose.yml

# System monitoring
btm                 # Modern system monitor (aliased from top/htop)

Maintenance Commands

bin/update          # Update all packages and tools

Version

...

Read full README

Publisher

freekmurzefreekmurze

Statistics

Stars692
Forks172
Open Issues1
CreatedMay 6, 2014