-
Notifications
You must be signed in to change notification settings - Fork 1
/
.tmux.conf
136 lines (105 loc) · 3.39 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
# Source: https://raw.github.com/tangledhelix/dotfiles/master/tmux.conf
unbind C-a
unbind C-b
set -g prefix C-a
# Ring the bell if any background window rang a bell
set -g bell-action any
# Default termtype. If the rcfile sets $TERM, that overrides this value.
set -g default-terminal screen-256color
# Watch for activity in background windows
setw -g monitor-activity on
# Keep your finger on ctrl, or don't
bind-key ^D detach-client
bind-key ^C new-window
# Create splits and vertical splits
#bind-key v split-window -h
#bind-key ^V split-window -h
#bind-key s split-window
#bind-key ^S split-window
unbind -
unbind _
unbind '\'
unbind '|'
unbind s
unbind C-s
unbind v
unbind C-v
bind-key - split-window
bind-key _ split-window
bind-key s split-window
bind-key C-s split-window
bind-key \ split-window -h
bind-key | split-window -h
bind-key v split-window -h
bind-key C-v split-window -h
# Pane resize in all four directions using vi bindings.
# Can use these raw but I map them to Cmd-Opt-<h,j,k,l> in iTerm2.
# http://tangledhelix.com/blog/2012/04/28/iterm2-keymaps-for-tmux/
bind-key J resize-pane -D
bind-key K resize-pane -U
bind-key H resize-pane -L
bind-key L resize-pane -R
bind-key j previous-window
# Use vi keybindings for tmux commandline input.
# Note that to get command mode you need to hit ESC twice...
set -g status-keys vi
# Use vi keybindings in copy and choice modes
setw -g mode-keys vi
set -g history-limit 65535
setw -g aggressive-resize on
bind R refresh-client
bind a send-key C-a
# easily toggle synchronization (mnemonic: e is for echo)
# sends input to all panes in a given window.
bind e setw synchronize-panes on
bind E setw synchronize-panes off
# set first window to index 1 (not 0) to map more to the keyboard layout...
set -g base-index 1
setw -g pane-base-index 1
# reload tmux config
unbind r
bind r \
source-file ~/.tmux.conf \;\
display 'Reloaded tmux config.'
set -g mouse on
# Toggle mouse on
bind m \
set -g mouse on \;\
display 'Mouse: ON'
# Toggle mouse off
bind M \
set -g mouse off \;\
display 'Mouse: OFF'
unbind P
bind-key P command-prompt -p 'save history to filename:' -I '~/tmux.history' 'capture-pane -S -65535 ; save-buffer %1 ; delete-buffer'
# pass through xterm keys
set -g xterm-keys on
# color scheme (style based on vim-powerline)
set -g status-left-length 52
set -g status-right-length 451
set -g status-fg white
set -g status-bg colour234
set -g window-status-activity-attr bold
set -g pane-border-fg colour245
set -g pane-active-border-fg colour46
set -g message-fg colour16
set -g message-bg colour221
set -g message-attr bold
set -g status-left '#[fg=black,bg=white,bold] ⧉ #S #[fg=white,bg=black,nobold]'
set -g status-right '#(whoami)@#h %F %T'
set -g window-status-format " ☐ #I #W "
set -g window-status-current-format "#[fg=black,bg=green] ☑ #I#[bold] #W #[fg=white,bg=black,nobold]"
set -g status-interval 1
source-file ~/.tmux.airline.conf
set -sg escape-time 0
# Install tpm with:
# git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# Plugins:
set -g @plugin 'tmux-plugins/tpm'
# set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set-option -g default-command "reattach-to-user-namespace -l $SHELL"
set -g @plugin 'tmux-plugins/tmux-yank'
# Initialize tpm (keep this line at the very bottom of tmux.conf)
run -b '~/.tmux/plugins/tpm/tpm'