# 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