tmux/.config/tmux/keybindings.conf

# tmux/.config/tmux/keybindings.conf

# Prefix: C-Space (rebound from C-b in 2024-12).
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix

# Reload config from inside tmux.
bind r source-file ~/.config/tmux/tmux.conf \; display "config reloaded"

# Sane splits: open in $PWD of the current pane.
unbind %
unbind '"'
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
bind _ split-window -fv -c "#{pane_current_path}"
bind \\ split-window -fh -c "#{pane_current_path}"

# New window inherits path.
bind c new-window -c "#{pane_current_path}"

# Vim-style pane movement.
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# Repeatable resize.
bind -r H resize-pane -L 5
bind -r J resize-pane -D 3
bind -r K resize-pane -U 3
bind -r L resize-pane -R 5

# Cycle through windows.
bind -n M-h previous-window
bind -n M-l next-window
bind Tab   last-window

# Break/join panes.
bind b break-pane -d
bind J choose-window "join-pane -s '%%'"

# Popup scratch shell.
bind g display-popup -E -w 80% -h 70%

# Quick notes.
bind N run-shell "~/.config/tmux/plugins/notes.sh"

# Copy-mode: vi bindings, copy to system clipboard.
setw -g mode-keys vi
bind v copy-mode
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi V send-keys -X select-line
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
bind -T copy-mode-vi Escape send-keys -X cancel