-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathtmux.conf
97 lines (80 loc) · 3.01 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
# Prefix Key
unbind C-b
set -g prefix C-q
bind C-q send-prefix
# Settings
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",*256col*:Tc"
set -g detach-on-destroy on
set -g history-limit 50000
set -g display-time 3000
set -g mouse on
# Pre-Tmux 2.6 macOS fix for pbcopy, pbpaste, and launchctl. Requires:
# brew install reattach-to-user-namespace
if-shell -b '[ "$(echo "$(tmux -V | cut -c 6-) < 2.6" | bc)" = 1 ] && [ -n "$(command -v reattach-to-user-namespace)" ]' \
"set-option -g default-command 'reattach-to-user-namespace -l $SHELL'"
# Set window notifications
setw -g monitor-activity on
set -g visual-activity off
# Keybindings
bind r source-file ~/.tmux.conf
# Ctrl versions of default keybindings
bind C-c new-window
bind C-n next-window
bind C-p previous-window
bind C-l last-window
bind C-s choose-session
bind C-w choose-window
bind C-k confirm-before kill-window
# Kill window
bind k confirm-before kill-window
# Split window into panes
bind h split-window -h
bind v split-window -v
bind C-h split-window -h
bind C-v split-window -v
unbind i
bind u display-message
bind i select-pane -t :.-
bind C-i select-pane -t :.-
bind C-o select-pane -t :.+
unbind Enter
bind Enter resize-pane -Z
bind C-Enter resize-pane -Z
# Enable smart pane switching that's Emacs aware.
is_emacs='echo "#{pane_current_command}" | grep -iqE "(^|\/)emacs(-[^\/]+)?$"'
# Use Alt-[i/k/j/l] keys without prefix key to switch panes if current pane is
# not running Emacs. If the pane is running Emacs, let Emacs receive the
# keybindings instead.
bind -n M-i if-shell "$is_emacs" "send-keys M-i" "select-pane -U"
bind -n M-k if-shell "$is_emacs" "send-keys M-k" "select-pane -D"
bind -n M-j if-shell "$is_emacs" "send-keys M-j" "select-pane -L"
bind -n M-l if-shell "$is_emacs" "send-keys M-l" "select-pane -R"
bind -T copy-mode M-i if-shell "$is_emacs" "send-keys M-i" "select-pane -U"
bind -T copy-mode M-k if-shell "$is_emacs" "send-keys M-k" "select-pane -D"
bind -T copy-mode M-j if-shell "$is_emacs" "send-keys M-j" "select-pane -L"
bind -T copy-mode M-l if-shell "$is_emacs" "send-keys M-l" "select-pane -R"
bind -T copy-mode-vi M-i if-shell "$is_emacs" "send-keys M-i" "select-pane -U"
bind -T copy-mode-vi M-k if-shell "$is_emacs" "send-keys M-k" "select-pane -D"
bind -T copy-mode-vi M-j if-shell "$is_emacs" "send-keys M-j" "select-pane -L"
bind -T copy-mode-vi M-l if-shell "$is_emacs" "send-keys M-l" "select-pane -R"
# Toogle synchronize-panes without prefix key.
bind -n M-I setw synchronize-panes
#
# Plugins via TPM (https://github.com/tmux-plugins/tpm)
#
# Install TPM with:
#
# git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
#
set -g @plugin 'jimeh/tmux-themepack'
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-copycat'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @plugin 'nhdaly/tmux-better-mouse-mode'
# Set Theme from tmux-themepack
set -g @themepack 'powerline/default/green'
# Configure tmux-yank
set -g @yank_action 'copy-pipe'
# Init Plugin Manager
run "${HOME}/.tmux/plugins/tpm/tpm"