-
Notifications
You must be signed in to change notification settings - Fork 1
/
tmux.conf
147 lines (111 loc) · 3.31 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
138
139
140
141
142
143
144
145
146
147
#
## Utility Functions
#
# change prefix to Ctrl-a (like in gnu-screen)
# by default, don't change prefix on remote machines in order to support embedded tmux instances
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# set zsh to default shell
set-option -g default-shell /bin/zsh
# start with pane 1
set -g pane-base-index 0
# screen mode
set-option -ga terminal-overrides ",xterm-termite:Tc"
# Disable auto-renaming of windows
set-option -g allow-rename off
# history
set -g history-limit 256000
# fix mouse in tmux >= 2.1
#set -g mouse on
# Info on left (I don't have a session display for now)
set -g status-left ''
# loud or quiet?
set-option -g visual-activity off
set-option -g visual-bell off
set-option -g visual-silence off
set-window-option -g monitor-activity off
set-option -g bell-action none
#
## Keyboard Configuration
#
# use vi mode
setw -g mode-keys vi
set -g status-keys vi
# 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
# expand panes with uppercase version of vim movement keys
bind -r H resize-p -L 5
bind -r J resize-p -D 5
bind -r K resize-p -U 5
bind -r L resize-p -R 5
# easy-to-remember split pane commands
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %
# move window indexes
bind-key -n C-S-Left swap-window -t -1
bind-key -n C-S-Right swap-window -t +1
# colon :
bind : command-prompt
# reload config file
bind r source-file ~/.tmux.conf \; display "Reloaded config"
# open new windows in $HOME
bind c new-window -c "$HOME"
# utility mappings
bind x kill-pane
bind X next-layout
bind Z previous-layout
# copy and paste in vim-like commands
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind ] run "xsel -bo | tmux load-buffer - ; tmux paste-buffer"
#
## Graphical Options
#
setw -g aggressive-resize on
set -g status off
## The modes
#setw -g clock-mode-colour colour135
#setw -g mode-attr bold
#setw -g mode-fg colour196
#setw -g mode-bg colour238
## The panes
#set -g pane-border-bg colour235
#set -g pane-border-fg colour238
#set -g pane-active-border-bg colour236
#set -g pane-active-border-fg colour51
## The statusbar
#set -g status-position bottom
#set -g status-bg colour234
#set -g status-fg colour137
#set -g status-attr dim
#set -g status-left ''
#set -g status-right '#[fg=colour233,bg=colour241,bold] %m/%d #[fg=colour233,bg=colour245,bold] %H:%M '
#set -g status-right-length 50
#set -g status-left-length 20
#setw -g window-status-current-fg colour81
#setw -g window-status-current-bg colour238
#setw -g window-status-current-attr bold
#setw -g window-status-current-format ' #[fg=colour255]#W#[fg=colour50] '
#setw -g window-status-fg colour138
#setw -g window-status-bg colour235
#setw -g window-status-attr none
#setw -g window-status-format ' #[fg=colour250]#W#[fg=colour244] '
#setw -g window-status-bell-attr bold
#setw -g window-status-bell-fg colour255
#setw -g window-status-bell-bg colour1
# The messages
set -g message-attr bold
set -g message-fg colour232
set -g message-bg colour166
# Tmux Plugin Manager
# Plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @override_copy_command '/usr/bin/xsel -ib'
run '~/.tmux/plugins/tpm/tpm'