-
Notifications
You must be signed in to change notification settings - Fork 0
/
.tmux.conf
98 lines (77 loc) · 3 KB
/
.tmux.conf
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# --------------------------------------------------
# Basic
# --------------------------------------------------
set-option -g default-shell "${SHELL}"
set -g default-command "${SHELL}"
set-option -g default-terminal "${TERM}"
set -g terminal-overrides "${TERM}"
set -sg escape-time 50
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
set-option -g history-limit 10000
# --------------------------------------------------
# Statusbar
# --------------------------------------------------
set-option -g status on
set-option -g status-position top
set-option -g status-interval 5
set-option -g status-justify left
# --------------------------------------------------
# Keybind
# --------------------------------------------------
unbind-key C-b
set-option -g prefix C-g
bind-key C-g send-prefix
bind r source-file $HOME/.tmux.conf \; display-message 'Reload .tmux.conf'
bind e setw synchronize-panes on
bind E setw synchronize-panes off
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
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
bind | split-window -dh -c "#{pane_current_path}"
bind - split-window -dv -c "#{pane_current_path}" -l 1
# --------------------------------------------------
# Mouse
# --------------------------------------------------
set-option -g mouse on
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
# --------------------------------------------------
# Copy
# --------------------------------------------------
setw -g mode-keys vi
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi V send -X select-line
bind -T copy-mode-vi y send -X copy-pipe-and-cancel 'xsel -bi'
bind -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel 'xsel -bi'
# --------------------------------------------------
# navi
# --------------------------------------------------
bind g display-popup -w 95% -h 80% \
"$SHELL --login -i -c 'navi --print | head -n 1 | tmux load-buffer -b tmp - ; tmux paste-buffer -p -t {last} -b tmp -d'"
# --------------------------------------------------
# popup
# --------------------------------------------------
bind m run-shell 'zsh --login -i -c "tmux_popup"'
# --------------------------------------------------
# Plugin
# --------------------------------------------------
set -g @plugin 'egel/tmux-gruvbox'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tpm'
# --------------------------------------------------
# tmux-gruvbox
# --------------------------------------------------
set -g @tmux-gruvbox 'dark' # or 'light'
set-option -ag status-right '#{?pane_synchronized, #[fg=red]IN_SYNC#[default],}'
# --------------------------------------------------
# tpm
# --------------------------------------------------
run -b $HOME/.tmux/plugins/tpm