Skip to content

Repository files navigation

Dotfiles

Modern dotfiles with mise task management, neovim, tmux, and unified vim-style navigation.

Quick Setup

git clone https://github.com/suryagaddipati/dotfiles.git ~/code/dotfiles
cd ~/code/dotfiles
mise run workflows:full-install    # Complete setup with dependencies

Essential Commands

mise run install                   # Install dotfiles with backup
mise run setup:prereqs             # Install prerequisites
mise run update                    # Update from git
mise tasks                         # Show all available tasks

Core Shortcuts

Navigation (Works Everywhere)

Alt+h/j/k/l         # Navigate tmux panes (instant)
Ctrl+h/j/k/l        # Navigate neovim splits
Alt+1-9             # Switch tmux windows (instant)
Tab/Shift+Tab       # Cycle neovim buffers

Terminal (Bash)

g                   # git alias
t [session]         # smart tmux session manager
ll                  # detailed file listing
grp pattern ext     # multi-extension search (e.g., grp TODO js py)

Hyprland Window Manager

# Special Workspace (Magic)
Super+M             # Toggle magic workspace (show/hide)
Super+Shift+M       # Move active window to magic workspace

# Move window back from magic workspace:
# 1. Super+M (show magic workspace)
# 2. Focus the window you want to move
# 3. Super+Shift+[1-9] (move to desired workspace)

# Applications
Super+Return        # Terminal
Super+F             # File manager
Super+B             # Browser
Super+N             # Neovim
Super+T             # Activity monitor

# Window Management
Super+W             # Close active window
Super+V             # Toggle floating
Super+J             # Toggle split
Super+Z             # Toggle fullscreen

# Vim-style Navigation
Super+h/j/k/l       # Focus window left/down/up/right
Super+Shift+h/j/k/l # Move window left/down/up/right

# Workspace Management
Super+[1-9]         # Switch to workspace 1-9
Super+Shift+[1-9]   # Move window to workspace 1-9
Super+Tab           # Next workspace
Super+Shift+Tab     # Previous workspace

Tmux (Prefix: Ctrl-Space)

Tmux Hierarchy Structure

Prefix β†’ category β†’ action
Example: Ctrl-Space β†’ pane β†’ split

πŸ–ΌοΈ Pane Operations (Ctrl-Space p* / Direct)

Ctrl-Space s        # Split pane horizontally
Ctrl-Space v        # Split pane vertically  
Ctrl-Space |        # Split pane horizontally (alt)
Ctrl-Space -        # Split pane vertically (alt)
Ctrl-Space x        # Kill/close pane
Ctrl-Space z        # Toggle pane zoom (fullscreen)
Ctrl-Space !        # Break pane to new window
Ctrl-Space f        # Find pane

# Pane Navigation (No Prefix)
Alt+h/j/k/l         # Navigate panes instantly
Ctrl-Space h/j/k/l  # Navigate panes (with prefix)
Ctrl-Space o        # Cycle through panes
Ctrl-Space q        # Show pane numbers

# Pane Resizing
Ctrl-Space H/J/K/L  # Resize panes (hold Shift)
Ctrl-Space Alt+h/j/k/l # Resize panes (fine control)

πŸͺŸ Window Operations (Ctrl-Space w* / Direct)

Ctrl-Space c        # Create new window
Ctrl-Space n        # Next window
Ctrl-Space p        # Previous window
Ctrl-Space l        # Last window
Ctrl-Space ,        # Rename window
Ctrl-Space &        # Kill window
Ctrl-Space w        # List windows

# Window Navigation (No Prefix)
Alt+1-9             # Switch to window 1-9 instantly
Ctrl-Space 1-9      # Switch to window 1-9 (with prefix)

# Window Arrangement
Ctrl-Space <        # Move window left
Ctrl-Space >        # Move window right

🎯 Session Operations (Ctrl-Space s* / Direct)

Ctrl-Space S        # Create new session (prompted for name)
Ctrl-Space R        # Rename current session
Ctrl-Space N        # New session in current directory
Ctrl-Space $        # Rename session
Ctrl-Space d        # Detach from session

# Session Navigation (No Prefix)
Alt+s               # Choose session (quick switcher)
Ctrl-Space s        # Choose session (with prefix)
Ctrl-Space (        # Switch to previous session
Ctrl-Space )        # Switch to next session

πŸ“‹ Copy/Paste Operations (Ctrl-Space c*)

Ctrl-Space Enter    # Enter copy mode
Ctrl-Space [        # Enter copy mode (alt)
Ctrl-Space ]        # Paste from buffer
Ctrl-Space P        # Paste from buffer (alt)
Ctrl-Space b        # List paste buffers
Ctrl-Space B        # Delete buffer

# Copy Mode Bindings (Vim-style)
v                   # Begin selection
y                   # Copy selection to clipboard
r                   # Rectangle selection toggle

βš™οΈ System Operations (Ctrl-Space r*)

Ctrl-Space r        # Reload tmux config
Ctrl-Space :        # Command prompt
Ctrl-Space ?        # Show key bindings
Ctrl-Space t        # Show time
F12                 # Toggle nested tmux mode (SSH)

Neovim Shortcuts (Leader: Space)

Core Hierarchy Structure

<leader> β†’ category β†’ subcategory β†’ action
Example: <leader>gh β†’ git hunk β†’ action

πŸ“ File Operations (<leader>f*)

<leader>ff          " Find files in project (Telescope)
<leader>fg          " Live grep (search text in files)
<leader>fb          " Find buffers
<leader>fh          " Recent files history
<leader>fe          " Toggle file explorer (nvim-tree)
<leader>fw          " Save file (write)
<leader>fq          " Quit file
<leader>fx          " Save and quit
<leader>f/          " Clear search highlighting

πŸ” Search Operations (<leader>s*)

<leader>sf          " Search files (alias for <leader>ff)
<leader>sg          " Search in files (live grep)
<leader>sb          " Search buffers
<leader>sh          " Search history
<leader>sc          " Clear search highlight

πŸͺŸ Window Management (<leader>w*)

<leader>wh/j/k/l    " Navigate to window (left/down/up/right)
<leader>ws          " Split window horizontally
<leader>wv          " Split window vertically
<leader>wc          " Close window
<leader>wo          " Close other windows
<leader>w=          " Equalize window sizes
<leader>wz          " Toggle maximize current window
<leader>w+/-        " Resize window vertically
<leader>w>/<        " Resize window horizontally

πŸ“„ Buffer Management (<leader>b*)

<leader>bb          " List buffers (Telescope)
<leader>bn          " Next buffer
<leader>bp          " Previous buffer
<leader>bd          " Delete buffer
<leader>bD          " Force delete buffer
<leader>ba          " Add new buffer
<leader>bl          " List all buffers
Tab                 " Next buffer (shortcut)
Shift+Tab           " Previous buffer (shortcut)

🎨 Git Operations (<leader>g*)

Git Status & Navigation (<leader>g*)

<leader>gg          " Git status overview (diffview)
<leader>gf          " Git files panel
<leader>gH          " Git file history
<leader>gb          " Git blame current line

Git Hunk Operations (<leader>gh*)

<leader>ghp         " Preview git hunk
<leader>ghn         " Next hunk with preview
<leader>ghN         " Previous hunk with preview
<leader>ghs         " Stage current hunk
<leader>ghS         " Stage entire buffer
<leader>ghu         " Unstage/undo hunk
<leader>ghr         " Reset/discard hunk
<leader>ghR         " Reset entire buffer
<leader>ghd         " Discard git hunk (alias for reset)

Git Commit Operations (<leader>gc*)

<leader>gcc         " Quick commit (auto-generated message)
<leader>gcm         " Interactive commit (manual message)
<leader>gca         " Commit with Claude-generated message

Git + Claude Integration (<leader>ga*)

<leader>gah         " Add current hunk to Claude context
<leader>gab         " Add entire buffer to Claude context
<leader>gai         " Send hunk to Claude for explanation
<leader>gaI         " Send entire diff to Claude for review

πŸ€– Claude Code Integration (<leader>c*)

<leader>cc          " Toggle Claude Code interface
<leader>cf          " Focus Claude Code panel
<leader>cr          " Resume Claude Code session
<leader>cC          " Continue Claude Code conversation
<leader>cb          " Add current buffer to Claude context
<leader>cs          " Send visual selection to Claude (visual mode)
<leader>ca          " Accept Claude Code diff
<leader>cd          " Deny Claude Code diff

πŸ’» Terminal Operations (<leader>t*)

<leader>tt          " Toggle terminal
<leader>tf          " Float terminal
<leader>th          " Horizontal terminal
<leader>tv          " Vertical terminal
<leader>tc          " Close terminal
<leader>tn          " New terminal
<leader>t1-t9       " Access terminal 1-9
Ctrl+\              " Toggle terminal (global shortcut)

πŸ”§ LSP Operations (<leader>l*)

<leader>ld          " Go to definition (also: gd)
<leader>lr          " Go to references (also: gr)
<leader>lh          " Hover documentation (also: K)
<leader>ls          " LSP symbols (document)
<leader>lS          " LSP symbols (workspace)
<leader>lf          " Format document
<leader>la          " Code actions
<leader>lr          " Rename symbol
<leader>le          " Show line diagnostics
<leader>ln          " Next diagnostic
<leader>lp          " Previous diagnostic

✏️ Edit Operations (<leader>e*)

<leader>ec          " Comment/uncomment line (also: gcc)
<leader>eC          " Comment selection (visual mode, also: gc)
<leader>ei          " Indent selection (visual mode)
<leader>eI          " Unindent selection (visual mode)
<leader>er          " Search and replace word under cursor
<leader>eR          " Search and replace in file
<leader>ef          " Format selection/document

Navigation & Movement (No Leader)

Ctrl+h/j/k/l        " Move between splits
j/k                 " Move by visual lines
n/N                 " Next/previous search result (centered)
gd                  " Go to definition (LSP)
gr                  " Go to references (LSP) 
K                   " Hover documentation (LSP)
< >                 " Indent/unindent (visual mode, keeps selection)

Auto-pairs (Insert Mode)

"                   " Inserts ""| (cursor between)
'                   " Inserts ''|
(                   " Inserts ()|
[                   " Inserts []|
{                   " Inserts {}|
{<CR>               " Inserts block with proper indentation

πŸ”₯ Unified Git Workflow Cheatsheet

All git operations unified under <leader>g* for seamless workflow progression:

πŸ” Git Inspection & Navigation

<leader>gg          " Git status overview (diffview)
<leader>gh          " Git file history
<leader>gf          " Git files panel
<leader>gb          " Git blame current line
<leader>gp          " Preview current hunk
<leader>gn          " Next hunk with preview
<leader>gN          " Previous hunk with preview

⚑ Git Actions

<leader>gs          " Stage current hunk
<leader>gS          " Stage entire buffer
<leader>gu          " Unstage/undo hunk
<leader>gr          " Reset/discard hunk
<leader>gR          " Reset entire buffer

πŸ’¬ Git Commits (3 Methods)

<leader>gc          " Quick commit (auto-generated message)
<leader>gC          " Interactive commit (manual message)
<leader>gm          " Commit with Claude-generated message

πŸ€– Git + Claude AI Integration

<leader>ga          " Add current hunk to Claude context
<leader>gA          " Add entire buffer to Claude context
<leader>gi          " Send hunk to Claude for explanation
<leader>gI          " Send entire diff to Claude for review

πŸš€ Example Workflow (Using Mnemonic Hierarchy)

# 1. Inspect your changes (git β†’ status/navigation)
<leader>gg          # git status overview
<leader>ghp         # git hunk preview
<leader>ghn         # git hunk next

# 2. Get AI assistance (git β†’ ai integration)
<leader>gah         # git ai hunk (add to Claude)
<leader>gai         # git ai inspect (explain hunk)

# 3. Stage your changes (git β†’ hunk β†’ stage)
<leader>ghs         # git hunk stage
# OR
<leader>ghS         # git hunk Stage (entire buffer)

# 4. Commit (git β†’ commit β†’ method)
<leader>gcc         # git commit quick
# OR
<leader>gcm         # git commit manual
# OR
<leader>gca         # git commit ai (Claude-generated)

Claude Code Integration

<leader>cc          " Toggle Claude Code interface
<leader>cf          " Focus Claude Code panel
<leader>cr          " Resume Claude Code session
<leader>cC          " Continue Claude Code conversation
<leader>cb          " Add current buffer to Claude context
<leader>cs          " Send visual selection to Claude (visual mode)
<leader>ca          " Accept Claude Code diff
<leader>cd          " Deny Claude Code diff

Terminal Integration

Ctrl+\              " Toggle terminal (global)
<leader>tt          " Toggle terminal
<leader>tf          " Float terminal
<leader>th          " Horizontal terminal
<leader>tv          " Vertical terminal
<leader>t1-t9       " Access terminal 1-9
<Esc> or jk         " Exit terminal mode

LSP Features

gd                  " Go to definition
gr                  " Go to references
K                   " Hover documentation
<leader>r           " Rename symbol

πŸ“š Complete Keybinding Reference

Core Navigation

Ctrl+h/j/k/l        " Navigate between splits
Alt+h/j/k/l         " Navigate tmux panes (no prefix)
Alt+1-9             " Switch tmux windows (no prefix)
Tab/Shift+Tab       " Next/previous buffer

File Operations

<leader>w           " Save file
<leader>q           " Quit
<leader>x           " Save and quit
<leader>/           " Clear search highlighting

File Management

<leader>f           " Find files in project (Telescope)
<leader>e           " Live grep (search text in files)
<leader>b           " Find buffers
<leader>hr          " Recent files history
<leader>p           " Toggle file tree (nvim-tree)

Window Management

<leader>+/-         " Resize window vertically
<leader>>/<         " Resize window horizontally
<leader>z           " Toggle maximize split

Editing & Text Manipulation

< >                 " Indent/unindent (visual mode, keeps selection)
gcc                 " Comment/uncomment current line
gc                  " Comment selection (visual mode)
<leader>sr          " Search and replace word under cursor

Terminal Integration

Ctrl+\              " Toggle terminal (global)
<leader>tt          " Toggle terminal
<leader>tf          " Float terminal
<leader>th          " Horizontal terminal
<leader>tv          " Vertical terminal
<leader>t1-t9       " Access terminal 1-9
<Esc> or jk         " Exit terminal mode

🎯 Common Workflow Examples (Mnemonic Hierarchy)

πŸ”„ Daily Development Flow

# Start your day
t project           # Smart tmux session (attach or create)
<leader>fe          # file explorer (toggle tree)
<leader>ff          # file find (specific file)

# While coding
<leader>sg TODO     # search grep (TODOs across project)
<leader>ld          # lsp definition (go to)
<leader>fw          # file write (save frequently)

πŸš€ Git Review & Commit Flow

# Review your changes (git β†’ status/navigation)
<leader>gg          # git status (overview)
<leader>ghp         # git hunk preview
<leader>ghn         # git hunk next

# Get AI assistance (git β†’ ai integration)
<leader>gah         # git ai hunk (add to Claude)
<leader>gai         # git ai inspect (explain changes)

# Stage and commit (git β†’ hunk β†’ stage, git β†’ commit)
<leader>ghs         # git hunk stage
<leader>gca         # git commit ai (Claude message)

πŸ§ͺ Testing & Debugging Flow

# Setup workspace (terminal operations)
<leader>th          # terminal horizontal (for tests)
<leader>tv          # terminal vertical (for logs)
Alt+h               # Navigate back to editor

# Run tests and debug (tmux navigation)
Alt+j               # Switch to test terminal
npm test            # Run your tests
Alt+k               # Switch to log terminal  
tail -f app.log     # Watch logs
Alt+h               # Back to editor to fix issues

πŸ” Code Exploration Flow

# Explore unfamiliar codebase (search β†’ lsp)
<leader>sg className # search grep (class usage)
<leader>ld          # lsp definition (go to)
<leader>lr          # lsp references (see all)
<leader>ff test     # file find (related test files)
<leader>bb          # buffer browse (switch between open)

πŸ€– AI-Assisted Development Flow

# Get help with complex changes (claude integration)
<leader>gah         # git ai hunk (add to Claude)
<leader>cc          # claude code (open interface)
# Describe what you want to implement
<leader>ca          # claude accept (suggestions)
<leader>ghS         # git hunk Stage (improved code)
<leader>gca         # git commit ai (Claude message)

🎹 Mnemonic Memory Aids

# File operations: <leader>f*
ff = file find, fg = file grep, fw = file write, fe = file explorer

# Search operations: <leader>s*  
sf = search files, sg = search grep, sb = search buffers

# Git operations: <leader>g*
gg = git status, gh* = git hunk, gc* = git commit, ga* = git ai

# Window operations: <leader>w*
ws = window split, wv = window vertical, wz = window zoom

# Buffer operations: <leader>b*
bb = buffer browse, bn = buffer next, bd = buffer delete

# Terminal operations: <leader>t*
tt = terminal toggle, th = terminal horizontal, tv = terminal vertical

# LSP operations: <leader>l*
ld = lsp definition, lr = lsp references, lh = lsp hover

# Claude operations: <leader>c*
cc = claude code, cf = claude focus, ca = claude accept

Installation Tasks

All tasks are organized using mise's file-based task system for better maintainability:

Setup Tasks

mise run setup:prereqs             # Check prerequisites 
mise run setup:tmux                # Setup tmux plugin manager
mise run setup:claude              # Setup Claude configuration

Dependency Installation

mise run deps:install              # Install system dependencies
mise run deps:install-mise         # Install mise tool manager
mise run deps:install-tools        # Install mise tools (tmux, nvim, etc.)
mise run deps:install-dev          # Install development tools
mise run deps:install-lsp          # Install language servers

Main Installation

mise run install                   # Install dotfiles with symlinking
mise run quick-install             # Alias for install
mise run uninstall                 # Remove dotfile symlinks
mise run update                    # Update from git repository

Workflows

mise run workflows:default         # Show available tasks
mise run workflows:full-install    # Complete installation workflow

Prerequisites

System Requirements

  • git - Version control and repository management
  • curl - Download tools and scripts
  • build-essential - Compilation tools (gcc/clang)
  • xclip - Clipboard integration (Linux)

Tools (Auto-installed via mise)

  • mise - Unified tool version manager
  • tmux - Terminal multiplexer for session management
  • neovim - Text editor (>= 0.9 required)
  • ripgrep - Fast text search
  • fzf - Fuzzy finder

Note: Most tools are automatically installed via mise. Only basic system packages need manual installation.

For detailed configuration see CLAUDE.md.

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages