summaryrefslogtreecommitdiffstats
path: root/config/tmux/tmux.conf
blob: e5a3e66038478b34374b9804cc44c7bcb58772b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# Minimal tmux config
# Ref.: https://thevaluable.dev/tmux-config-mouseless/

# remap prefix from 'C-b' to 'C-a'
set-option -g prefix C-a
bind-key C-a send-prefix
unbind C-b

# Start window numbering at 1
set -g base-index 1
setw -g pane-base-index 1

# Navigate history with vi keybindings
set-window-option -g mode-keys vi
set -g history-limit 10000

# From NeoVim advice:
# Fix 'escape-time' from 500ms to 10ms  (better experience in Vim)
set-option -sg escape-time 10
# focus-events (idk what this does)
set-option -g focus-events on

# Vim friendly tmux config
# Ref.: https://gist.github.com/Lartza/6a7a62466a8a3e436234412d9b1c5066

setw -g monitor-activity on
set -g visual-activity on

# FIXME: https://unix.stackexchange.com/a/131187/347754
# y and p as in vim
bind Escape copy-mode
unbind p
bind p paste-buffer
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection
#bind-key -T copy-mode-vi 'Space' send -X halfpage-down
#bind-key -T copy-mode-vi 'Bspace' send -X halfpage-up

# extra commands for interacting with the ICCCM clipboard
#bind C-c run "tmux save-buffer - | xclip -i -sel clipboard"
#bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer"

# easy-to-remember split pane commands
#bind | split-window -h
#bind - split-window -v
#unbind '"'
#unbind %
# Thanks: https://unix.stackexchange.com/a/109255/347754
bind  %  split-window -h -c "#{pane_current_path}"
bind '"' split-window -v -c "#{pane_current_path}"

# moving between panes with vim movement keys
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# moving between windows with vim movement keys
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+

# resize panes with vim movement keys
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5