Skip to content

πŸ–₯️ Modern dotfiles containing configuration settings for Neovim, Tmux, WezTerm, Zsh and other utilities with unified theming πŸš€

Notifications You must be signed in to change notification settings

iammohitsakhuja/dotfiles

Repository files navigation

πŸ–₯️ Mohit's Dotfiles

Modern macOS development environment with unified theming and professional tooling.

🎯 Features

  • 🎨 Neovim: Lazy.nvim with LSP, formatters, linters, and AI integration
  • πŸ“Š Tmux: Custom status bar with session persistence and network monitoring
  • πŸ’» WezTerm: WebGpu-powered terminal with ligature support
  • πŸͺŸ AeroSpace: Tiling window manager with workspace assignments
  • 🌈 Unified Theming: Catppuccin across all CLI tools
  • πŸ› οΈ Modern CLI Tools: eza, yazi, btop, fastfetch, starship, and more
  • πŸ”§ Development Tooling: Pre-commit hooks, ShellCheck, formatters, LSP servers
  • πŸ“ XDG Compliant: Organized configuration structure

πŸ“‹ Requirements

  • Apple Silicon Mac (enforced by install script)
  • macOS 15+
  • Homebrew (installed automatically if missing)

πŸš€ Installation

⚠️ Warning: Review the code before running. These are personal configurations tailored to my workflow.

sudo chmod u+x macos/install.sh
./macos/install.sh --email "[email protected]" --name "Your Name"

Options:

  • --no-backup - Skip backing up existing files (backup is default)
  • --help - Show usage information

The script will:

  • Validate Apple Silicon and Full Disk Access
  • Create timestamped backup of existing configs
  • Install Homebrew packages and applications
  • Set up language version managers (goenv, nodenv, pyenv, rbenv, jenv)
  • Configure macOS system defaults
  • Install dotfiles via GNU Stow

πŸ”„ Restoring from Backup

If installation fails or you want to revert to previous configs:

./macos/restore.sh --help  # Show restore options
./macos/restore.sh --list  # List available backups
./macos/restore.sh         # Interactive restore from latest backup

Note: Restores configuration files only, not entire system state.

πŸ”— Managing Dotfile Links

After adding new dotfiles or manually updating configs in macos/home/:

# Re-link configurations
stow -d "/path/to/dotfiles/macos" -t "$HOME" --no-folding home --verbose 1

# Unlink configurations
stow -D -d "/path/to/dotfiles/macos" -t "$HOME" --no-folding home --verbose 1

Replace /path/to/dotfiles with your repository path.

🧰 Key Tools

Category Tool Purpose
Terminal WezTerm Primary terminal emulator
Shell Zsh + Starship Enhanced shell with custom prompt
Editor Neovim Modern vim with LSP
Window Manager AeroSpace Tiling window management
File Manager Yazi Terminal-based file explorer
Git UI Lazygit Interactive git client
Multiplexer Tmux Session management
System Monitor btop Resource monitoring

βš™οΈ Configuration

All configurations use XDG directories (~/.config/) and are managed via GNU Stow from macos/home/.

πŸ§ͺ Development

For safe testing without affecting your system, see Development Environment Guide for UTM-based VM setup.

πŸ’ Credits

Inspired by dotfiles from the community. Themed with Catppuccin.

About

πŸ–₯️ Modern dotfiles containing configuration settings for Neovim, Tmux, WezTerm, Zsh and other utilities with unified theming πŸš€

Topics

Resources

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •