-
Notifications
You must be signed in to change notification settings - Fork 0
/
dot-tmux.conf
137 lines (105 loc) · 3.42 KB
/
dot-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
# Misc
# ====
# Set default shell
set-option -g default-shell /bin/zsh
# Shorten command delay
set -sg escape-time 0
# Colors
# ======
# set -g default-terminal "tmux-256color"
set -g default-terminal "iterm2"
set-option -g status-style bg=colour235,fg=colour136,default
# Default window title colors
set-window-option -g window-status-style fg=colour244,bg=default
# Active window title colors
set-window-option -g window-status-current-style fg=colour166,bg=default
# Pane border
set-option -g pane-border-style fg=colour057
set-option -g pane-active-border-style fg=colour247
# Message text
set-option -g message-style bg=colour235,fg=colour166
# Pane number display
set-option -g display-panes-active-colour colour33 #blue
set-option -g display-panes-colour colour166 #orange
# Clock
set-window-option -g clock-mode-colour green #green
# Status bar
# ==========
set -g status-interval 1
set -g status-position top
set -g status-justify centre # center align window list
set -g status-left ''
set-option -g status-left-length 64
set -g status-right '#{prefix_highlight}'
# Show "SYNC" when 'synchronize-panes' is enabled
# set-option -ag status-left '#{?pane_synchronized, #[bg=green]SYNC#[default],} #{now_playing}'
set-option -ag status-left '#{?pane_synchronized, #[bg=green]SYNC#[default],}'
# Panes
# =====
# Start window/pane numbering at 1
set -g base-index 1
setw -g pane-base-index 1
# Automatically renumber windows
set -g renumber-windows on
# Auto window rename
set-window-option -g automatic-rename
# 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
# Activity monitoring
setw -g monitor-activity on
set -g visual-activity on
set -g history-limit 100000
# Keybindings
# ===========
# Remap prefix key to Ctrl-a
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
# For nested tmux sessions
bind a send-prefix
# Reload config
bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
# Remap window splits to 'v' and 'b'
bind v split-window -h
bind b split-window
unbind '"'
unbind %
# Synchronize panes with '='
bind = set -g synchronize-panes
# Vi copypaste mode
set-window-option -g mode-keys vi
# Remap window switching to use Alt-ArrowKey
bind -n M-h select-pane -L
bind -n M-l select-pane -R
bind -n M-j select-pane -U
bind -n M-k select-pane -D
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
# Enable mouse mode
set -g mouse on
# tmux-sessionizer (tms)
# ======================
# See https://github.com/jrmoulton/tmux-sessionizer
# (o)pen a new session
bind o display-popup -E "tms"
# (j)ump to session
bind j display-popup -E "tms switch"
# tmux-plugin-manager
# ===================
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
set -g @plugin 'tmux-plugins/tmux-copycat'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'tmux-plugins/tmux-open'
set -g @plugin 'laktak/extrakto'
set -g @extrakto_split_direction v
# Copycat
set -g @copycat_search_C-c '^croc [[:digit:]]{4}-.*'
set -g @copycat_search_M-d '[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'