54 lines
1.8 KiB
Plaintext
54 lines
1.8 KiB
Plaintext
# remap prefix to Control + a
|
|
set -g prefix C-a
|
|
unbind C-b
|
|
bind C-a send-prefix
|
|
|
|
# don't rename windows automatically
|
|
set-option -g allow-rename off
|
|
|
|
# Fix slow esc
|
|
set -sg escape-time 10
|
|
|
|
# Visual stuff
|
|
set -g default-terminal "screen-256color"
|
|
# set -ga terminal-overrides ",screen-256color:Tc"
|
|
set -ga terminal-overrides ",xterm-256color:Tc"
|
|
# set -g -a terminal-overrides ',*:Ss=\E[%p1%d q:Se=\E[2 q' # Supposedly helps with cursor shapes under vim (spoiler: it does not)
|
|
|
|
# Split panes with \ and -
|
|
bind \\ split-window -h
|
|
bind - split-window -v
|
|
unbind '"'
|
|
unbind %
|
|
|
|
# Zooming
|
|
unbind C-z
|
|
bind -n C-z resize-pane -Z
|
|
|
|
# Vim-mode
|
|
set-window-option -g mode-keys vi
|
|
|
|
# Vim like mode for leaving insert mode
|
|
unbind [ # unbind the default way to copy text
|
|
bind -T prefix j copy-mode # allow exiting insert mode with C-a j
|
|
|
|
# Vim like keybinds for copying and pasting
|
|
bind -T copy-mode-vi p paste-buffer
|
|
bind -T copy-mode-vi V send-keys -X rectangle-toggle # Check if this works
|
|
bind -T copy-mode-vi v send-keys -X begin-selection
|
|
bind -T copy-mode-vi y send-keys -X copy-selection
|
|
|
|
# smart pane switching with awareness of vim splits
|
|
bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-h) || tmux select-pane -L"
|
|
bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-j) || tmux select-pane -D"
|
|
bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-k) || tmux select-pane -U"
|
|
bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-l) || tmux select-pane -R"
|
|
|
|
# Copy to clipboard using fastcopy
|
|
# set-option -g set-clipboard on
|
|
# set-option -g @fastcopy-action 'tmux load-buffer -w -'
|
|
# set-option -g @fastcopy-key a
|
|
|
|
# Keep state around using resurrect
|
|
set -g @resurrect-processes '"~python3"'
|