-
Notifications
You must be signed in to change notification settings - Fork 2
/
tmux.conf
138 lines (98 loc) · 3.12 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
# Initial setup
set -g default-terminal xterm-256color
set -g status-keys vi
set-option -gw xterm-keys on
# Prefix
set-option -g prefix C-a
unbind-key C-a
bind-key C-a send-prefix
#bind-key C-a last-window
set -g base-index 1
# Easy config reload
bind-key r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded."
# Start numbering at 1
set -g base-index 1
# Allows for faster key repetition
set -s escape-time 0
# Rather than constraining window size to the maximum size of any client
# connected to the *session*, constrain window size to the maximum size of any
# client connected to *that window*. Much more reasonable.
setw -g aggressive-resize on
# Lengthen the amount of time status messages are displayed
set-option -g display-time 2000
set-option -g display-panes-time 3000
# Set the base-index to 1 rather than 0
set -g base-index 1
set-window-option -g pane-base-index 1
# Automatically set window title
set-window-option -g automatic-rename on
set-option -g set-titles on
# Key bindings for copy-paste
setw -g mode-keys vi
unbind p
bind p paste-buffer
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection
set-option -g renumber-windows on
# Window activity monitor
setw -g monitor-activity on
set -g visual-activity on
# Set easier window split keys
bind-key v split-window -h
bind-key h split-window -v
# Use Alt-arrow keys without prefix key to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Allow the arrow key to be used immediately after changing windows.
set-option -g repeat-time 0
# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window
#bind -n S-Tab previous-window
#bind -n S-C-Tab next-window
bind-key -n C-Tab next-window
bind-key -n C-S-Tab previous-window
bind-key -n "^[[1;5I" next-window
bind-key -n "\e[1;5I" next-window
bind-key C-Tab next-window
bind-key C-S-Tab previous-window
# Double press <prefix> to move to last window
bind-key C-a last-window
# No delay for escape key press
set -sg escape-time 0
# Window activity monitor
setw -g monitor-activity on
set -g visual-activity on
# Mouse Mode
#set -g mode-mouse on
#set -g mouse-resize-pane on
#set -g mouse-select-pane on
#set -g mouse-select-window on
set -g history-limit 10000
# Theme
set -g window-status-current-bg green
set -g window-status-current-fg black
set -g window-status-current-attr bold
set-option -g message-bg colour237
set-option -g message-fg colour231
set-option -g pane-border-fg green
set-option -g pane-active-border-fg green
# Status Bar
#set -g status-justify centre
set -g status-bg black
set -g status-fg white
set -g status-interval 60
set -g status-left-length 30
set -g status-left '#[fg=green][#S]'
set -g status-right '#[fg=green]%H:%M'
# unbind arrow keys. This prevents cases where you switch
# # to a different pane, then use the arrow key to go through
# # command history, and accidentally switch back to the previous
# # pane
# unbind Up
# unbind Down
# unbind Left
# unbind Right
# Much from https://www.youtube.com/watch?v=rc-v6eHdaN4