Skip to content

yepengfan/dotfiles

Repository files navigation

dotfiles

Personal development environment managed with GNU Stow. Themed consistently with Catppuccin Mocha across all tools.

Packages

Package Tool Description
bat bat Syntax-highlighted cat replacement
claude Claude Code AI coding assistant settings and statusline
ghostty Ghostty Terminal emulator
git Git Git config with delta pager and LFS
lazygit lazygit Git TUI client
nvim Neovim Editor powered by LazyVim
starship Starship Minimal cross-shell prompt
tmux tmux Terminal multiplexer
yazi yazi TUI file browser
zellij Zellij Terminal multiplexer (tmux alternative)
zsh Zsh Shell config with aliases and plugins

Setup

Prerequisites

Installation

git clone https://github.com/yepengfan/dotfiles.git ~/.dotfiles
cd ~/.dotfiles

# Symlink all packages
stow */

# Or symlink individual packages
stow nvim
stow zsh

Removing symlinks

stow -D nvim   # Remove a single package
stow -D */     # Remove all packages

Key Integrations

  • Smart Splits — seamless Ctrl+hjkl navigation between Neovim splits and multiplexer panes (Zellij, tmux)
  • Claude Code via Zellij — AI assistant runs in a persistent Zellij pane with Neovim keymaps to send context
  • Modern CLI replacementseza (ls), bat (cat), delta (diff), zoxide (cd), fzf (fuzzy finder)
  • Lazy-loaded NVM — deferred Node version manager loading for faster shell startup

Yazi

Image preview is disabled because Zellij does not fully support terminal graphics protocols (Kitty, Sixel). Yazi's OSC 10/11 color queries leak through Zellij as a visible Shell: dialog (zellij#3590). To avoid this, image previews are set to noop in yazi.toml. Re-enable when Zellij fixes graphics passthrough.

Claude Code + Neovim Usage

Claude Code runs in a Zellij pane to the right of Neovim. This setup allows persistent sessions that survive editor restarts, unlike the embedded terminal approach.

Prerequisites

  • Zellij running with at least two panes: Neovim (left) and Claude Code (right)

Keybindings

All keybindings use the <leader>a prefix ("ai" group):

Keymap Mode Description
<leader>af Normal Focus the Claude Code pane
<leader>ar Normal Send file:line reference to Claude, return to Neovim
<leader>ab Normal Send the current file path to Claude, return to Neovim
<leader>as Visual Send file:start-end range reference to Claude, return to Neovim

Workflow

  1. Open Neovim and Claude Code side-by-side in Zellij
  2. Use <leader>af to switch focus to Claude at any time
  3. Use Ctrl+h to return focus to Neovim (via vim-zellij-navigator)
  4. To share code context, position your cursor or select code in Neovim:
    • <leader>ar — sends a reference like src/main.lua:42
    • <leader>ab — sends the file path like src/main.lua
    • <leader>as (visual mode) — sends a file:start-end range reference (Claude reads the file itself)
  5. Text is typed into the Claude input without pressing Enter, so you can review or edit before submitting

About

A set of highly customised configuration files.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors