-
Notifications
You must be signed in to change notification settings - Fork 0
/
tmux.conf
138 lines (113 loc) · 4.66 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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# Make clipboard work inside vim (OSX)
if-shell 'test "$(uname)" = "Darwin"' 'set-option -g default-command "reattach-to-user-namespace -l $SHELL"'
# Clipboard (OSX)
if-shell 'test "$(uname)" = "Darwin"' 'bind C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"'
if-shell 'test "$(uname)" = "Darwin"' 'bind C-v run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"'
# 0 is too far from ` ;)
set-option -g base-index 1
set-window-option -g pane-base-index 1
set-option -g default-command $SHELL
set-option -g default-shell $SHELL
set-option -g prefix C-a
bind-key C-a last-window
bind-key a send-prefix
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
set-option -g set-titles-string '[#S:#I #h] #W'
set -g default-terminal "screen-256color"
set -g terminal-overrides 'xterm:colors=256'
set -g status-keys vi
set -g history-limit 10000
setw -g mode-keys vi
set -g utf8
set-window-option -g utf8 on
# disable mouse control by default - change 'off' to 'on' to enable by default.
setw -g mode-mouse on
setw -g mouse-utf8 on
if-shell 'test "`tmux -V`" != "tmux 1.4"' 'set-option -g mouse-resize-pane on'
set-option -g mouse-select-pane on
if-shell 'test "`tmux -V`" != "tmux 1.4"' 'set-option -g mouse-select-window on'
# toggle mouse mode to allow mouse copy/paste
# set mouse on with prefix m
bind m \
set -g mode-mouse on \;\
if-shell 'test "`tmux -V`" != "tmux 1.4"' 'set-option -g mouse-resize-pane on' \;\
set -g mouse-select-pane on \;\
if-shell 'test "`tmux -V`" != "tmux 1.4"' 'set-option -g mouse-select-window on' \;\
display 'Mouse: ON'
# set mouse off with prefix M
bind M \
set -g mode-mouse off \;\
if-shell 'test "`tmux -V`" != "tmux 1.4"' 'set-option -g mouse-resize-pane off' \;\
set -g mouse-select-pane off \;\
if-shell 'test "`tmux -V`" != "tmux 1.4"' 'set-option -g mouse-select-window off' \;\
display 'Mouse: OFF'
#bind-key Space choose-session
bind-key | split-window -h
bind-key - split-window -v
bind-key J resize-pane -D 5
bind-key K resize-pane -U 5
bind-key H resize-pane -L 5
bind-key L resize-pane -R 5
bind-key M-j resize-pane -D
bind-key M-k resize-pane -U
bind-key M-h resize-pane -L
bind-key M-l resize-pane -R
# Rather than constraining window size to the maximum size of any client
# connected to the *session*, constrain window size to the maximum size of any
# client connected to *that window*. Much more reasonable.
setw -g aggressive-resize on
# Vim style pane selection
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Use Alt-vim keys without prefix key to switch panes
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R
# Use Alt-arrow keys without prefix key to switch panes
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
# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
# easily toggle synchronization (mnemonic: e is for echo)
bind e setw synchronize-panes
# No delay for escape key press
set -sg escape-time 0
# Reload tmux config
bind r source-file ~/.tmux.conf \; display-message 'Reloaded ~/.tmux.conf!'
# Set window notifications
setw -g monitor-activity on
set -g visual-activity off
set -g status-bg 'colour10'
set -g message-command-fg 'colour11'
set -g status-justify 'left'
set -g status-left-length '100'
set -g status 'on'
set -g pane-border-fg 'colour8'
set -g pane-active-border-fg 'colour7'
set -g message-bg 'colour7'
set -g status-right-length '100'
set -g status-right-attr 'none'
set -g message-fg 'colour11'
set -g message-command-bg 'colour7'
set -g status-attr 'none'
set -g status-utf8 'on'
set -g status-left-attr 'none'
setw -g window-status-fg 'colour7'
setw -g window-status-attr 'none'
setw -g window-status-activity-bg 'colour10'
setw -g window-status-activity-attr 'none'
setw -g window-status-activity-fg 'colour4'
setw -g window-status-separator ''
setw -g window-status-bg 'colour10'
set -g status-left '#[fg=colour0,bg=colour4,bold] #S #[fg=colour4,bg=colour10,nobold,nounderscore,noitalics]'
set -g status-right '#[fg=colour7,bg=colour10,nobold,nounderscore,noitalics]#[fg=colour11,bg=colour7] %Y-%m-%d %H:%M #[fg=colour4,bg=colour7,nobold,nounderscore,noitalics]#[fg=colour0,bg=colour4] #h '
setw -g window-status-format '#[fg=colour7,bg=colour10] #I#F #[fg=colour7,bg=colour10] #W'
setw -g window-status-current-format '#[fg=colour10,bg=colour7,nobold,nounderscore,noitalics]#[fg=colour11,bg=colour7] #I#F #[fg=colour11,bg=colour7] #W #[fg=colour7,bg=colour10,nobold,nounderscore,noitalics]'