Skip to content

dileep-kishore/zendots

Repository files navigation

zendots

Zen dotfiles - A modern, minimal terminal-based development environment

A comprehensive dotfiles repository managed by chezmoi, featuring configurations for Neovim, Zsh, Tmux, and various CLI tools. Built for productivity with keyboard-centric and terminal-based workflows and consistent theming across all tools.

Be sure to ⭐️ or πŸ”± this repo if you find it useful! πŸ˜ƒ

Screenshots

Terminal Setup Neovim Setup Tmux Workflow

Setup

Features

🎨 Consistent Theming

  • Catppuccin Mocha color scheme across shell, editor, terminal, and all CLI tools
  • Custom Oh-My-Posh prompt with git integration
  • Beautiful status bars in both Neovim and Tmux

⚑ Productivity Tools

  • Shell enhancements: zoxide (smart cd), atuin (shell history), fzf (fuzzy finder), eza (modern ls)
  • AI integration: Command generation with aichat (Alt-e), AI-assisted editing in Neovim
  • Session management: Tmux with sesh for quick session switching (Ctrl-a + o)
  • Git workflow: Enhanced git commands, lazygit, neogit, octo.nvim for GitHub

πŸ”§ Developer Experience

  • LSP support: Full language server protocol setup with Mason
  • Smart completions: nvim-cmp with multiple sources
  • Code formatting: Automatic formatting with conform.nvim
  • Git integration: Inline blame, diff view, conflict resolution
  • Tmux workflows: Custom window icons, git status in status bar, split management

πŸ“¦ Package Management

  • Declarative package installation via Brewfile
  • Python tools managed with pipx
  • Project-specific environments with pixi
  • Plugin managers for Tmux, Neovim, Zsh, and Yazi

Installation

Prerequisites

  1. Install Homebrew (macOS/Linux)
  2. Install chezmoi:
    brew install chezmoi

Quick Start

  1. Clone and initialize dotfiles:

    # Initialize chezmoi with this repository
    chezmoi init https://github.com/dileep-kishore/zendots.git
    
    # Preview what will be changed
    chezmoi diff
    
    # Apply the dotfiles
    chezmoi apply
  2. Install packages:

    # Install all Homebrew packages
    cd ~/.local/share/chezmoi/pkgs
    brew bundle install
    
    # Install Yazi plugins
    ./download_yazi_plugins.sh
    
    # Install Python packages
    ./pipx_packages.sh
    
    # Run miscellaneous setup tasks
    ./misc_setup.sh
  3. Setup Tmux plugins:

    # Start tmux
    tmux
    
    # Install plugins (inside tmux)
    # Press: Ctrl-a + Shift-i

Font Setup (Manual)

Install the following fonts manually:

  1. Monaspace
  2. Dank Mono (from patched fonts collection)
  3. MonaLisa (from patched fonts collection)
  4. Cartograph (from patched fonts collection)
  5. Nerd Fonts: Fira Code, Victor Mono, Cascadia Code
  6. Recursive
  7. Maple Mono
  8. SN-Pro
  9. IA-Writer (Quattro, Duospace)
  10. Font Awesome

Usage

Chezmoi Workflow

# Edit a dotfile (chezmoi handles the dot_ prefix translation)
chezmoi edit ~/.zshrc

# Preview changes before applying
chezmoi diff

# Apply changes from repository to home directory
chezmoi apply

# Quickly edit and apply
chezmoi edit --apply ~/.config/nvim/init.lua

Common Commands

Using the included justfile:

# Apply dotfiles
just apply

# Show diff
just diff

# Install packages from Brewfile
just install

# Update Brewfile with current packages
just dump

Key Bindings

Tmux

  • Prefix: Ctrl-a (instead of default Ctrl-b)
  • prefix + h/v β†’ Split horizontally/vertically
  • prefix + o β†’ Session manager (sesh)
  • prefix + r β†’ Reload configuration
  • Ctrl-Shift-h/l β†’ Switch windows
  • Alt + arrows β†’ Resize panes

Zsh

  • Ctrl-r β†’ Search history with atuin
  • Alt-e β†’ AI-assisted command generation with aichat
  • Ctrl-t β†’ Fuzzy file finder

Neovim (Normal Mode)

  • Space β†’ Leader key
  • <leader>ff β†’ Find files
  • <leader>fg β†’ Live grep
  • <leader>gl β†’ Open lazygit
  • See full keymaps in private_dot_config/nvim/lua/keymaps/

Maintenance

Updating Packages

# Update Homebrew packages
brew update && brew upgrade

# Update Neovim plugins
nvim +Lazy sync

# Update Tmux plugins
# Inside tmux: prefix + U

# Update Yazi plugins
ya pack -u

Syncing Dotfiles

# Pull latest changes
cd ~/.local/share/chezmoi
git pull

# Apply changes
chezmoi apply

Troubleshooting

Chezmoi not applying changes

Make sure you're editing files in the chezmoi source directory:

chezmoi cd  # Navigate to source directory

Tmux plugins not loading

  1. Ensure TPM is installed: git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
  2. Inside tmux, press prefix + I to install plugins

Neovim LSP not working

Run :Mason and install the required language servers.

Shell completions not working

Rebuild the completion cache:

rm ~/.zcompdump*
exec zsh

Credits and Inspiration

  • chezmoi - Dotfile management
  • Catppuccin - Color scheme
  • Neovim community for amazing plugins
  • Various dotfile repositories across GitHub

License

MIT License - Feel free to use and modify as you wish!


Note: This is a personal dotfiles repository. While you're welcome to use it as inspiration, you may need to adjust configurations to match your preferences and system setup.

About

Zen dotfiles

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published