-
Notifications
You must be signed in to change notification settings - Fork 61
/
Copy pathtmux.conf
153 lines (137 loc) · 4.95 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
# use UTF8
#set -g utf8
#set-window-option -g utf8 on
# make tmux display things in 256 colors
set -g default-terminal "screen-256color"
# set scrollback history to 10000 (10k)
set -g history-limit 10000
bind c new-window -c '#{pane_current_path}'
bind % split-window -h -c "#{pane_current_path}"
bind '"' split-window -c "#{pane_current_path}"
# set Ctrl-a as the default prefix key combination
# and unbind C-b to free it up
#set -g prefix C-a
#unbind C-b
# Don't rename
set-option -g allow-rename off
## use send-prefix to pass C-a through to application
#bind C-a send-prefix
#
## 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 "Reloaded!"
#
## use PREFIX | to split window horizontally and PREFIX - to split vertically
bind | split-window -h
bind - split-window -v
#
## 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
#
## 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 :+
#
## resize panes using PREFIX H, J, K, L
bind H resize-pane -L 5
bind J resize-pane -D 5
bind K resize-pane -U 5
bind L resize-pane -R 5
#
## explicitly disable mouse control
#setw -g mode-mouse on
#set -g mouse-select-pane on
#set -g mouse-resize-pane on
#set -g mouse-select-window on
#
## ---------------------
## Copy & Paste
## https://wiki.archlinux.org/index.php/tmux
## ---------------------
## provide access to the clipboard for pbpaste, pbcopy
#bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"
#bind-key -t vi-copy y copy-pipe "xclip -i'
#bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"
#bind-key y run "tmux show-buffer | xclip -i"
#
#Copy tmux paste buffer to CLIPBOARD.
#bind C-c run "tmux save-buffer - | xclip -i -selection clipboard"
bind C-c run "tmux show-buffer | xsel -i -b"
# Copy CLIPBOARD to tmux paste buffer and paste tmux paste buffer.
#bind C-v run "tmux set-buffer -- \"$(xclip -o -selection clipboard)\"; tmux paste-buffer"
bind C-v run "tmux set-buffer -- \"$(xsel -o -b)\"; tmux paste-buffer"
#
## use vim keybindings in copy mode
setw -g mode-keys vi
#
## setup 'v' to begin selection as in Vim
#bind-key -t vi-copy v begin-selection
#bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
#
## update default binding of 'Enter' to also use copy-pipe
#unbind -t vi-copy Enter
#bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
#
#bind y run 'tmux save-buffer - | reattach-to-user-namespace pbcopy '
#bind C-y run 'tmux save-buffer - | reattach-to-user-namespace pbcopy '
#
## ----------------------
## set some pretty colors
## ----------------------
## set pane colors - hilight the active pane
set-option -g pane-border-fg colour235 #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-utf8 on # set utf-8 for the status bar
set -g status-interval 5 # set update frequencey (default 15 seconds)
set -g status-justify left # center window list for clarity
# set-option -g status-position top # 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 colour235 #base02
set-option -g status-fg yellow #yellow
set-option -g status-attr dim
#
## 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 colour236
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 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
#set -g status-left "#[fg=green]: #h : #[fg=brightblue]#(curl icanhazip.com) #[fg=yellow]#(ifconfig en0 | grep 'inet ' | awk '{print \"en0 \" $2}') #(ifconfig en1 | grep 'inet ' | awk '{print \"en1 \" $2}') #[fg=red]#(ifconfig tun0 | grep 'inet ' | awk '{print \"vpn \" $2}') "
#
## show session name, window & pane number, date and time on right side of
## status bar
set -g status-right-length 60
# Mack
set -g status-right '#[fg=yellow]%d %b %Y #[fg=yellow] | %l:%M %p'
# Linux
#set -g status-right 'Battery: #[fg=white]#(upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep percentage | grep -oE "[0-9]{1,3}%") | #[fg=yellow]%d %b %Y #[fg=yellow] | %l:%M %p'