-
Notifications
You must be signed in to change notification settings - Fork 0
/
.tmux.conf
160 lines (124 loc) · 4.25 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
# remap prefix to Control + a
set -g prefix C-a
unbind C-b
# bind 'C-a C-a' to type 'C-a'
bind C-a send-prefix
# get rid of old bindings
unbind-key t
unbind-key !
unbind-key %
unbind-key &
unbind-key "'"
unbind-key (
unbind-key )
unbind-key Space
unbind-key D
unbind-key [
unbind-key ]
unbind-key c
unbind-key s
unbind-key PPage
unbind-key M-1
unbind-key M-2
unbind-key M-3
unbind-key M-4
unbind-key M-5
unbind-key M-n
unbind-key M-o
unbind-key M-p
unbind-key M-Up
unbind-key M-Down
unbind-key M-Left
unbind-key M-Right
unbind-key C-Up
unbind-key C-Down
unbind-key C-Left
unbind-key C-Right
bind-key Enter new-window
set -g history-limit 300000
########################################
# Editor support
set -s -g escape-time 0
########################################
# VIM MODE
setw -g mode-keys vi
bind-key v copy-mode
# bind-key -t vi-copy v begin-selection
# bind-key -t vi-copy y copy-selection
bind-key p paste-buffer
bind-key o previous-window
bind-key i next-window
bind-key b choose-tree # choose session (buffer)
# map Vi movement keys as pane movement keys
bind-key h select-pane -L
bind-key j select-pane -D
bind-key k select-pane -U
bind-key l select-pane -R
# resize panes using PREFIX H, J, K, L
bind-key -r H resize-pane -L 3
bind-key -r J resize-pane -D 3
bind-key -r K resize-pane -U 3
bind-key -r L resize-pane -R 3
########################################
# i3 MODE
bind C source-file ~/.tmux.conf \; display "Reloaded!"
# use PREFIX | to split window horizontally and PREFIX - to split vertically
bind-key | split-window -h -c '#{pane_current_path}'
bind-key \\ split-window -h -c '#{pane_current_path}'
bind-key '"' split-window -v -c '#{pane_current_path}'
bind-key - split-window -v -c '#{pane_current_path}'
bind-key / break-pane -d -t : # break pane to it's own window
# , rename current window
# . move window
# 0-9 select window number
bind-key d kill-pane
bind-key q detach-client
# ----------------------
# 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
########################################
# TMUX only
bind-key m command-prompt -I "rename-session "
########################################
# Visual, etc
# be able to use zsh, etc
# set-option -g default-shell $SHELL
set-option -g default-shell /usr/local/bin/zsh
# Color Stuff
# -----------------------
# correct color scheme
set -g default-terminal "screen-256color"
# 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
# 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 centre # center window list for clarity
# set-option -g status-position top # position the status bar at top of screen
# 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
set -g status-right "#[fg=blue]#S #I:#P #[fg=yellow]:: %d %b %Y #[fg=green]:: %l:%M %p :: #(date -u | awk '{print $4}')::"
# visual notification of activity in other windows
setw -g monitor-activity on
set -g visual-activity on