-
Notifications
You must be signed in to change notification settings - Fork 0
/
.tmux.conf
107 lines (93 loc) · 3.11 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
98
99
100
101
102
103
104
105
106
107
DOT_TMUX="${HOME}/.dotfiles/tmux"
#############
# Options #
#############
set -g base-index 1 # windows numbering from '1'
set -g automatic-rename-format '#{b:pane_current_path}'
set -g default-terminal "screen-256color" # enable colors
set -g history-limit 2000
set -g mouse on # enable mouse
set -g renumber-windows on # renumber windows after closing
set -g set-titles on # set terminal title
set -g set-titles-string '#W' #
set -g status-keys vi
set -g visual-activity off # disable 'Activity in window X' message
set -s escape-time 0 # no delay
set -s focus-events on
set -sg repeat-time 600 # increase repeat timeout
set -g status-interval 5
setw -g automatic-rename on
setw -g mode-keys vi # vim keybindings for edit mode
setw -g monitor-activity on
setw -g xterm-keys on # xterm style keys to work as expected
# scroll with pgup pgdown
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
#############
# Plugins #
#############
# set -g @plugin 'jimeh/tmux-themepack'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run $DOT_TMUX'/tpm/tpm'
##############
# Bindings #
##############
set -g prefix M-a
bind M-a send-prefix # prefix
# reload configuration
bind R source-file ~/.tmux.conf \; display '~/.tmux.conf sourced'
# better for fingers
bind -T copy-mode-vi [ send-keys -X page-up
bind -T copy-mode-vi ] send-keys -X page-down
bind a copy-mode
bind p paste-buffer
bind \; command-prompt
bind : last-pane
# fast copy mode
bind -n S-PageUp copy-mode -u
bind C-b copy-mode -u
bind [ copy-mode -u
#----- panes -----#
# switch panes using Alt-arrow without prefix
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# or with prefix
bind -r h select-pane -L # move left
bind -r j select-pane -D # move down
bind -r k select-pane -U # move up
bind -r l select-pane -R # move right
bind > swap-pane -D # swap current pane with the next one
bind < swap-pane -U # swap current pane with the previous one
# pane resizing
bind -r H resize-pane -L 2
bind -r J resize-pane -D 2
bind -r K resize-pane -U 2
bind -r L resize-pane -R 2
# behavior
bind S set synchronize-panes # duplicate input
#----- windows -----#
bind v split-window -v -c "#{pane_current_path}" # vertical
bind V split-window -h -c "#{pane_current_path}" # horizontal
bind X confirm-before -p "kill-window #W? (y/n)" kill-window
# move windows
bind -r < swap-window -t -1
bind -r > swap-window -t +1
# navigation
# C-tab C-S-tab for mintty
set -s user-keys[0] "\e[1;5I"
set -s user-keys[1] "\e[1;6I"
bind -n M-e next-window # select previous window
bind -n M-q previous-window# select previous window
bind -n User0 next-window # select next window
bind -n User1 previous-window # select next window
bind Tab last-window # move to last active window
#############
# VISUALS #
#############
# set -g @themepack 'powerline/block/blue'
source-file "$DOT_TMUX/themes/max.tmuxtheme"
##################
# Local config #
##################
if-shell "[ -f ~/.tmux.local.conf ]" "source ~/.tmux.local.conf"