Skip to content

Latest commit

Β 

History

1,565 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 Dotfiles Collection

A carefully curated collection of configuration files for a modern, productive development environment

macOS Ubuntu License

✨ What's Inside

This dotfiles repository transforms your terminal into a powerful, beautiful, and efficient development environment. All configurations are managed through GNU Stow for easy symlink management.

nvim term project

πŸ› οΈ Core Tools & Features

Tool Purpose Benefits
πŸš€ Neovim Modern text editor Lightning-fast editing with LSP support
⭐ Starship Cross-shell prompt Beautiful, informative prompt with git integration
πŸ” FZF Fuzzy finder Blazing fast file/command searching
πŸ“ Zoxide Smart cd command Jump to directories with intelligent frequency ranking
🎨 Eza Modern ls replacement Colorful, tree-view file listings
πŸ¦‡ Bat Cat with wings Syntax highlighting and git integration
πŸƒ Fastfetch System info Beautiful system information display with custom images
🌈 Lolcat Rainbow text Add some fun to your terminal output

🎯 Development Environment

  • Python: Managed with pyenv and pyenv-virtualenv
  • Node.js: Managed with nvm
  • Rust: Full toolchain with rustup
  • Java: Managed with SDKMAN! (macOS)
  • AI Tools: aider-chat, claude-cli, claude-code, and ollama integration

πŸ€– Claude Code

Personal + work profiles managed in .claude/, mirroring the OpenCode setup:

# Pick a profile (creates symlink ~/.claude/settings.json β†’ dotfiles)
~/dotfiles/.claude/use-profile.sh personal   # or `work`

# Install MCP servers (idempotent, safe to re-run)
~/dotfiles/.claude/install-mcps.sh           # personal MCPs
~/dotfiles/.claude/install-mcps.work.sh      # work MCPs (gitignored)

# Shell aliases (loaded from .zshrc)
ccp        # switch to personal profile
ccw        # switch to work profile
ccstatus   # show which profile is active

Subagents in .claude/agents/ (code-reviewer, adversarial-reviewer, git-pick) are auto-discovered. The work settings file and work MCP installer are gitignored.

🎨 Theme & Aesthetics

  • Tokyo Night theme across all applications
  • Consistent color scheme for terminal, editor, and tools
  • Custom Starship prompt with gradient colors
  • Beautiful ASCII art and system info on startup

πŸš€ Quick Setup

Prerequisites

  • macOS: Xcode Command Line Tools
  • Ubuntu: Build essentials and curl

One-Command Installation

git clone https://github.com/yourusername/dotfiles.git ~/dotfiles
cd ~/dotfiles
./setup.sh

The setup script will:

  1. πŸ“¦ Install all dependencies based on your OS
  2. πŸ”— Create symlinks using GNU Stow
  3. βš™οΈ Configure shell and tools
  4. πŸŽ‰ Set up your development environment

Manual Installation

If you prefer to install step by step:

# Install GNU Stow
# macOS
brew bundle
# Dump new file
brew bundle dump

# Install standalone package
brew install stow

# Ubuntu
sudo apt install stow

# Clone and setup
git clone https://github.com/yourusername/dotfiles.git ~/dotfiles
cd ~/dotfiles
stow .

πŸ“ Structure

dotfiles/
β”œβ”€β”€ bin/                 # πŸ”§ Custom binaries and scripts
β”œβ”€β”€ .config/
β”‚   β”œβ”€β”€ nvim/            # πŸš€ Neovim configuration
β”‚   β”œβ”€β”€ kitty/           # 🐱 Terminal emulator
β”‚   β”œβ”€β”€ starship.toml    # ⭐ Shell prompt
β”‚   β”œβ”€β”€ bat/             # πŸ¦‡ Syntax highlighter
β”‚   β”œβ”€β”€ eza/             # πŸ“ File listing
β”‚   β”œβ”€β”€ fastfetch/       # πŸƒ System info with custom image
β”‚   β”œβ”€β”€ lazygit/         # 🌿 Git TUI
β”‚   β”œβ”€β”€ yazi/            # πŸ“‚ File manager
β”‚   └── zellij/          # πŸ”² Terminal multiplexer
β”œβ”€β”€ .zshrc               # 🐚 Shell configuration
β”œβ”€β”€ .gitconfig           # πŸ“ Git settings
└── setup.sh             # πŸ› οΈ Installation script

πŸ”§ Customization

Shell Aliases & Functions

The .zshrc includes many useful aliases:

# System updates
update          # Update package manager (brew/apt)

# File operations
ll              # Detailed file listing with eza
la              # All files including hidden
tree            # Directory tree view

# Fastfetch shortcuts
ff              # Quick fastfetch with custom config and image
fastfetch       # Function that handles zellij compatibility

# Git shortcuts
gs              # git status
ga              # git add
gc              # git commit
gp              # git push

Environment Variables

Key environment variables are configured:

  • EDITOR="nvim" - Default editor
  • AIDER_EDITOR="nvim" - AI coding assistant editor
  • MANPAGER="nvim +Man!" - Use Neovim for man pages

πŸ–ΌοΈ Custom Fastfetch Setup

Fastfetch renders a custom image logo natively via the kitty graphics protocol. Uses the stock Homebrew fastfetch (the vendored custom-compiled binary was removed); image decoding comes from the ImageMagick support already bundled in that build.

Features

  • Custom Image Display: Shows your custom image (~/.config/nvim/assets/rosie-3-brutus.png) instead of the default OS logo
  • Zellij Image Rendering: Native kitty graphics protocol (zellij >= 0.45), true pixels rather than ASCII approximation
  • kitty-direct transmission: fastfetch sends the file path instead of base64-inlining the PNG (214 bytes vs ~4.5 MB per shell start)

Usage

# Quick fastfetch with your custom config
ff

# Standard fastfetch
fastfetch --config "$HOME/dotfiles/.config/fastfetch/config.jsonc"

Zellij Image Rendering

Zellij 0.45.0 implements the kitty graphics protocol, so images render natively inside panes and survive scroll/move/resize/stack. Requirements:

  1. Zellij >= 0.45.0 and a host terminal that speaks the protocol (WezTerm)
  2. fastfetch >= 2.61 - the old getenv("ZELLIJ") block on image logos was removed upstream; only TERM=screen disables images now
  3. imagemagick - fastfetch dlopens it to decode/scale the PNG

The logo type is kitty-direct (was sixel). No env-var stripping wrapper is needed: the previous fastfetch() shell function, bin/fastfetch-zellij, and the vendored fastfetch 2.60 binary were all removed.

--pipe false is required (baked into the ff alias). fastfetch disables image logos when it thinks output is not a TTY and silently falls back to the built-in ASCII art; the flag forces image output.

Verified against zellij 0.45 by querying the protocol directly:

Query Zellij response Meaning
\e[>q (XTVERSION) Zellij(4500) identifies as zellij, not the host term
\e_Ga=q,t=d,... OK kitty graphics supported
\e_Ga=q,t=f,... OK file-path transmission supported (kitty-direct)
\e_Ga=T,U=1,... ENOTSUPPORTED unicode placeholders not supported

Configuration

Your fastfetch config (~/.config/fastfetch/config.jsonc) includes:

  • Custom image path rendered via the kitty graphics protocol
  • Tokyo Night color scheme integration
  • Optimized layout for your terminal setup

πŸ› Troubleshooting

Common Issues

πŸ”— Symlink Conflicts

# Remove existing symlinks
stow -D .

# Clean up conflicting files
rm ~/.zshrc ~/.gitconfig

# Recreate symlinks
stow .

🐚 Shell Not Changing

# Make zsh default shell
chsh -s $(which zsh)

# Reload shell configuration
source ~/.zshrc

πŸ“¦ Missing Dependencies

# Re-run setup script
./setup.sh

# Or install specific tools manually
brew install nvim starship zoxide fzf eza bat  # macOS
sudo apt install neovim zsh git curl          # Ubuntu

πŸš€ Neovim Issues

# Clear Neovim cache
rm -rf ~/.local/share/nvim
rm -rf ~/.cache/nvim

# Reinstall plugins
nvim +Lazy

πŸ” FZF Not Working

# Reinstall FZF
~/.fzf/install --all

# Or via package manager
brew reinstall fzf  # macOS

πŸ–ΌοΈ Fastfetch Image Not Showing

# Check if running in zellij (should show custom image)
ff

# Confirm versions support native kitty graphics
zellij --version   # need >= 0.45.0
fastfetch --version # need >= 2.61

# Verify image file exists
ls -la ~/.config/nvim/assets/rosie-3-brutus.png

# Check fastfetch can decode images
fastfetch --list-features
# Should show: imagemagick7

πŸ†˜ Getting Help

  1. Check the troubleshooting section
  2. Review tool-specific documentation in .config/
  3. Open an issue with your system info and error message

🎯 Key Features

πŸš€ Productivity Boosters

  • Smart Navigation: Jump to any directory with z <partial-name>
  • Fuzzy Everything: Find files, commands, and history with Ctrl+R, Ctrl+T
  • Git Integration: Visual git status in prompt, easy git commands
  • AI Assistance: Integrated AI tools for coding help

🎨 Visual Enhancements

  • Consistent Theming: Tokyo Night everywhere
  • Rich File Listings: Icons, colors, and git status in file lists
  • Beautiful Prompt: Multi-line prompt with git, time, and system info
  • Syntax Highlighting: Code highlighting in terminal and editor

⚑ Performance

  • Fast Startup: Optimized shell configuration
  • Lazy Loading: Plugins and tools load only when needed
  • Smart Caching: Reduced redundant operations

🀝 Contributing

Feel free to fork this repository and customize it for your needs! If you have improvements or fixes, pull requests are welcome.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Happy Coding! πŸŽ‰

Made with ❀️ and lots of β˜•

About

Repo for dev setup on machines

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages