-
Notifications
You must be signed in to change notification settings - Fork 0
/
tmux.conf
218 lines (169 loc) · 5.88 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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
##############################
# _
# | |_ _ __ ___ _ ___ __
# | __| '_ ` _ \| | | \ \/ /
# | |_| | | | | | |_| |> <
# \__|_| |_| |_|\__,_/_/\_\
#
#############################
set-option -g default-shell "/bin/bash"
#set -g default-command "reattach-to-user-namespace -l ${SHELL}"
# make tmux display things in 257 colors
set -g default-terminal "screen-256color"
set -g focus-events on
set -g prefix C-b
# bind p to sync panes
bind p set-window-option synchronize-panes
# clear the current pane
bind -n C-k send-keys -R \; send-keys C-l \; clear-history
# copy paste
bind -t vi-copy 'v' begin-selection
#bind -t vi-copy 'y' copy-pipe "xclip -sel clip -i"
bind 'u' capture-pane -J -b urlview \; split-window -l 8 \
"tmux save-buffer -b urlview - | urlview ; tmux delete-buffer -b urlview"
# set scrollback history to 10000 (10k)
set -g history-limit 10000
# shorten command delay
set -sg escape-time 1
# set window and pane index to 1 (0 by default)
set-option -g base-index 1
setw -g pane-base-index 1
# reload ~/.tmux.conf using PREFIX r
bind r source-file ~/.tmux.conf \; display-message "Reloaded!"
# use PREFIX | to split window horizontally and PREFIX - to split vertically
bind \ split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
# Make the current window the first window
bind T swap-window -t 1
# map Vi movement keys as pane movement keys
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
set-window-option -g mode-keys vi
# and use C-h and C-l to cycle thru panes
bind -r C-h select-window -t :-
bind -r C-l select-window -t :+
set-option -g mouse on
# ----------------------
# set some pretty colors
# ----------------------
# set pane colors - hilight the active pane
set-option -g pane-border-fg default #base02
set-option -g pane-active-border-fg colour240 #base01
# colorize messages in the command line
set-option -g message-bg black #base02
set-option -g message-fg brightred #orange
# ----------------------
# Status Bar
# -----------------------
set-option -g status on # turn the status bar on
set -g status-interval 5 # set update frequencey
set-option -g status-position bottom # position the status bar at top of screen
# visual notification of activity in other windows
setw -g monitor-activity on
set -g visual-activity on
# set color for status bar
set-option -g status-bg black #base02
set-option -g status-fg yellow #yellow
set-option -g status-attr dim
######################
### DESIGN CHANGES ###
######################
# panes
set -g pane-border-fg colour234
set -g pane-active-border-fg brightred
set -g window-style bg=default
set -g window-active-style bg=default
## Status bar design
# status line
set -g status-justify left
set -g status-bg default
set -g status-fg colour12
set -g status-interval 2
# messaging
set -g message-fg black
set -g message-bg blue
set -g message-command-fg blue
set -g message-command-bg black
#window mode
setw -g mode-bg colour12
setw -g mode-fg colour0
# window status
setw -g window-status-format " #F#I:#W#F "
setw -g window-status-current-format " #F#I:#W#F "
#[bg=cyan]#[fg=colour8] #W "
# 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
set -g default-terminal "screen-256color"
# 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 colour232
set -g pane-border-fg colour238
set -g pane-active-border-bg default
set -g pane-active-border-fg red
# }
# The statusbar {
set -g status-bg colour232
set -g status-fg colour137
set -g status-attr dim
set -g status-left ''
#[fg=colour233,bg=colour245,bold] %H:%M:%S '
set -g status-left-length 20
#I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F '
setw -g window-status-bell-attr bold
setw -g window-status-bell-fg colour255
setw -g window-status-bell-bg colour1
# }
# set window list colors - red for active and cyan for inactive
set-window-option -g window-status-fg brightblue #base0
set-window-option -g window-status-bg black
set-window-option -g window-status-attr dim
set-window-option -g window-status-current-fg brightred #orange
set-window-option -g window-status-current-bg default
set-window-option -g window-status-current-attr bright
# The messages {
# }
####### end design changes
# set window list colors - red for active and cyan for inactive
set-window-option -g window-status-fg blue #base0
set-window-option -g window-status-bg colour232
set-window-option -g window-status-attr dim
set-window-option -g window-status-current-fg red #orange
set-window-option -g window-status-current-bg colour236
set-window-option -g window-status-current-attr bright
# show host name and IP address on left side of status bar
set -g status-left-length 70
# show session name, window & pane number, date and time on right side of
# status bar
set -g status-right-length 60
set -g status-right "#(cat /tmp/gtd) #[fg=red]#{git_branch}#[fg=blue] :: #S #I:#P #[fg=yellow]:: %d %b %Y #[fg=green]:: %l:%M %p "
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @plugin 'tmux-plugins/tmux-battery'
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'git@github.com/user/plugin'
# set -g @plugin 'git@bitbucket.com/user/plugin'
#
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
set -g @continuum-restore 'on'
set -g @resurrect-capture-pane-contents 'on'
set -g @resurrect-save-shell-history 'on'
set -g @plugin 'tmux-plugins/tmux-yank'
run '~/.tmux/plugins/tpm/tpm'