-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.tmux.conf
143 lines (112 loc) · 5.26 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
# make tmux display things in 256 colors
set -g default-terminal "screen-256color"
# set scrollback history to 100k
set -g history-limit 100000
# set ` (tic) as the default prefix key combination
# and unbind C-b to free it up
unbind C-b
set -g prefix `
# use send-prefix to pass ` (tic) through to application
bind ` 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 -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Make new tmux window open in the current directory
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
# 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
# Sync panes
bind C-s set-window-option synchronize-panes
# Switch between last window
bind a last-window
# Re-number Windows
bind r \
movew -r\; \
display-message "Windows re-numbered";
# ---------------------
# Copy & Paste
# ---------------------
# provide access to the clipboard for pbpaste, pbcopy
#set-option -g default-command "reattach-to-user-namespace -l bash"
#set-window-option -g automatic-rename on
# use vim keybindings in copy mode
setw -g mode-keys vi
#bind y run 'tmux save-buffer - | reattach-to-user-namespace pbcopy '
#bind C-y run 'tmux save-buffer - | reattach-to-user-namespace pbcopy '
# Map U/D to be page up/down
bind-key -T copy-mode-vi u send-keys -X page-up
bind-key -T copy-mode-vi d send-keys -X page-down
unbind-key -T copy-mode-vi Space ; bind-key -T copy-mode-vi v send-keys -X begin-selection
unbind-key -T copy-mode-vi Enter ; bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
unbind-key -T copy-mode-vi C-v ; bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
unbind-key -T copy-mode-vi [ ; bind-key -T copy-mode-vi [ send-keys -X begin-selection
unbind-key -T copy-mode-vi ] ; bind-key -T copy-mode-vi ] send-keys -X copy-selection
# Save entire tmux history to a file - file will be on machine where tmux is
# running
#bind-key * command-prompt -p 'save history to filename:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer'
# Open rgrep'd (grep with filename + line number) file
bind o send "^vf:t:" C-m "vimfg " \; paste-buffer \; send C-m
# ----------------------
# set some pretty colors
# ----------------------
# set pane colors - hilight the active pane
set-option -g pane-border-style fg=colour235 #base02
set-option -g pane-active-border-style fg=colour33 #blue
#set-option -g pane-active-border-fg colour240 #base01
# colorize messages in the command line
set-option -g message-style bg=black #base02
set-option -g message-style fg=brightred #orange
# ----------------------
# Status Bar
# -----------------------
set-option -g status on # turn the status bar on
set -g status-interval 5 # set update frequencey (default 15 seconds)
set -g status-justify centre # 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-style bg=colour235,fg=yellow,dim #base02
# set window list colors - red for active and cyan for inactive
set-window-option -g window-status-style fg=brightblue,bg=colour236,dim #base0
set-window-option -g window-status-current-style fg=brightred,bg=colour236,bright #orange
# show host name and IP address on left side of status bar
set -g status-left-length 85
set -g status-left "#[fg=green] #h : #[fg=brightblue]#(dig +short myip.opendns.com @resolver1.opendns.com) #[fg=yellow]#(ifconfig en0 | grep 'inet ' | awk '{print \"en0 \" $2}') #(ifconfig en1 | grep 'inet ' | awk '{print \"en1 \" $2}') #(ifconfig en3 | grep 'inet ' | awk '{print \"en3 \" $2}') #[fg=red]#(ifconfig tun0 | grep 'inet ' | awk '{print \"vpn \" $2}') #[fg=green]#(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk -F': ' '/ SSID/{print $2}') "
# show session name, window & pane number, date and time on right side of
# status bar
set -g status-right-length 80
set -g status-right "#[fg=yellow] %d %b %Y #[fg=green]| %H:%M #[fg=cyan]| #(date -u | awk '{print $5 \" \" $6}')"
# ---------------------
# Plugin Management
# ---------------------
# To install plugins, use prefix + I
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
# captures pane content
set -g @resurrect-capture-pane-contents 'on'
# for vim (requires installing vim-obsession plugin for vim)
set -g @resurrect-strategy-vim 'session'
# auto resurrect on tmux server start
set -g @plugin 'tmux-plugins/tmux-continuum'
# FPP wrapper for tmux
set -g @plugin 'jbnicolai/tmux-fpp'
run '~/.tmux/plugins/tpm/tpm'