-
Notifications
You must be signed in to change notification settings - Fork 0
/
tmux.conf
143 lines (105 loc) · 3.54 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
# ###########################
# Configuration
# ###########################
# Plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
run '~/.tmux/plugins/tpm/tpm'
# use 256 term for pretty colors
set -g default-terminal 'screen-256color'
# increase scroll-back history
set -g history-limit 5000
# use vim key bindings
setw -g mode-keys vi
# decrease command delay (increases vim responsiveness)
set -sg escape-time 1
# increase repeat time for repeatable commands
set -g repeat-time 1000
# re-number windows when one is closed
set -g renumber-windows on
# set the base index for windows to 1 instead of 0
set -g base-index 1
# set the base index for panes to 1 instead of 0
set -g pane-base-index 1
# setup pbcopy/pbpaste
set -g default-command 'reattach-to-user-namespace -l /bin/zsh'
# ###########################
# Key Bindings
# ###########################
# tmux prefix
unbind C-b
set -g prefix C-a
# Go to beginning of line
bind a send-prefix
# resize panes
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
# zoom pane
bind z resize-pane -Z
# force a reload of the config kile
unbind r
bind r source-file ~/.tmux.conf \; display 'Reloaded!'
# Enable screen-like C-a C-a moving to last window
bind C-a last-window
# copy and past as vim
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'r' send -X rectangle-toggle
bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel 'reattach-to-user-namespace pbcopy'
unbind -T copy-mode-vi Enter
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel 'reattach-to-user-namespace pbcopy'
# Log output to text file
bind P pipe-pane -o 'cat >>~/#W.log' \; display 'Toggled logging to ~/#W.log'
# Open windows and panes to current directory
bind c new-window -c '#{pane_current_path}'
bind | split-window -h -c '#{pane_current_path}'
bind - split-window -v -c '#{pane_current_path}'
# swap-window order
unbind t
bind t swap-window -t +1
bind T swap-window -t -1
# clear buffer history
bind C-l clear-history
# moving between panes
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
unbind l
bind l select-pane -R
# shortcut for synchronize-panes toggle
bind C-y set-window-option synchronize-panes
# ###########################
# Status Bar
# ###########################
# set refresh interval for status bar
set -g status-interval 15
# center the status bar
set -g status-justify centre
# Status line right side — battery power & Date/Time
set -g status-right '#[fg=colour202]#(~/battery Discharging)#(~/battery Charging) #[fg=cyan]| %d %b %R'
# Status line left side to show Session:window:pane
set -g status-left-length 40
set -g status-left "#[fg=green]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
# enable activity alerts
setw -g monitor-activity on
setw -g window-status-activity-style fg=colour190,bright,bg=default
# ###########################
# Colors
# ###########################
# color status bar
set -g status-style bg=colour235,fg=white,bold
# set the color of the window list
set -g window-status-style fg=cyan,bg=default
# highlight current window
set -g window-status-current-style fg=colour51,bg=default
# set color of active pane
set -g pane-border-style fg=colour235,bg=black
set -g pane-active-border-style fg=green,bg=black
# active pane normal, other shaded out
setw -g window-style fg=colour240,bg=black
setw -g window-active-style fg=white,bg=black
# set color of command line
set -g message-style fg=white,bold,bg=black
# set color of