-
Notifications
You must be signed in to change notification settings - Fork 3
/
.tmux.conf
218 lines (157 loc) · 6.58 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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# vim: ft=tmux
# fix terminal colors
# set -g default-terminal "${TERM}"
set -g default-terminal "alacritty"
set -ag terminal-overrides ",alacritty:RGB"
# set -g default-terminal "screen-256color"
# set -ga terminal-overrides ",xterm-256color:RGB"
# enable mouse
set -g mouse on
# change prefix
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix
# active focus-events (when file changes on disk)
set -g focus-events on
# resizing tmux panes
bind -r j resize-pane -D 5
bind -r k resize-pane -U 5
bind -r l resize-pane -R 5
bind -r h resize-pane -L 5
# maximizing and minimizing tmux pane
bind -r m resize-pane -Z
# Start windows a nd panes at 1, not 0
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
# set vi-mode
set-window-option -g mode-keys vi
# # vim copy mode
bind-key -T copy-mode-vi 'v' send -X begin-selection # start selecting text with "v"
bind-key -T copy-mode-vi 'y' send -X copy-selection # copy text with "y"
# # don't exit copy mode after dragging with mouse
unbind -T copy-mode-vi MouseDragEnd1Pane
# # use xclip to copy and paste with the system clipboard
bind C-c run "tmux save-buffer - | xclip -i -sel clip"
bind C-v run "tmux set-buffer $(xclip -o -sel clip); tmux paste-buffer"
# split panes using | and -
bind | split-window -hc "#{pane_current_path}"
bind - split-window -vc "#{pane_current_path}"
unbind '"'
unbind %
# restore clean screen
bind C-l send-keys 'C-l'
# automatically set the window title
# set-window-option -g automatic-rename off
# reload config file (change file location to your the tmux.conf you want to use)
bind r source-file $HOME/.tmux.conf \; display-message "Tmux config reloaded!"
# Set install location for plugins
# set-environment -g TMUX_PLUGIN_MANAGER_PATH "${XDG_DATA_HOME}/tmux/plugins"
# List of plugins
# tmux plguin manager
set -g @plugin 'tmux-plugins/tpm'
# tmux sane defaults
# set -g @plugin 'tmux-plugins/tmux-sensible'
# Easy way to reset all options to default in tmux
# set -g @plugin 'hallazzang/tmux-reset'
# for navigating panes and vim/nvim with Ctrl-hjkl
set -g @plugin 'christoomey/vim-tmux-navigator'
# enables copying highlighted text to system clipboard
# set -g @plugin 'tmux-plugins/tmux-yank'
# persist tmux sessions after computer restart
set -g @plugin 'tmux-plugins/tmux-resurrect'
# automatically saves sessions for you every 15 minutes
set -g @plugin 'tmux-plugins/tmux-continuum'
# use zoxide to navegate through sessions
# set -g @plugin 'jeffnguyen695/tmux-zoxide-session'
# set -g @plugin 'fabioluciano/tmux-tokyo-night'
# set -g @theme_plugins 'datetime'
# set -g @plugin 'jimeh/tmux-themepack'
# set -g @themepack 'powerline/default/green'
# set -g mode-style "fg=#3D484D,bg=#A7C080"
# set -g message-style "fg=#3D484D,bg=#A7C080"
# set -g message-command-style "fg=#3D484D,bg=#A7C080"
# set -g pane-border-style "fg=#A7C080"
# set -g pane-active-border-style "fg=#3D484D"
# set -g status "on"
# set -g status-interval 1
# set -g status-justify "left"
# set -g status-style "fg=#3D484D,bg=#A7C080"
# set -g status-bg "#3D484D"
# set -g status-left-length "100"
# set -g status-right-length "100"
# set -g status-left-style NONE
# set -g status-right-style NONE
# set -g status-left "#[fg=#232A2E,bg=#9DA9A0,bold] #S #[fg=#9DA9A0,bg=#3D484D,nobold,nounderscore,noitalics] "
# set -g status-right "#[fg=#3D484D,bg=#3D484D,nobold,nounderscore,noitalics]#[fg=#9DA9A0,bg=#3D484D]#[fg=#56635F,bg=#3D484D,nobold,nounderscore,noitalics]#[fg=#9DA9A0,bg=#56635F]#[fg=#9DA9A0,bg=#56635F,nobold,nounderscore,noitalics]#[fg=#15161E,bg=#9DA9A0,bold] #h "
# setw -g window-status-activity-style "underscore,fg=#9DA9A0,bg=#3D484D"
# setw -g window-status-separator ""
# setw -g window-status-style "NONE,fg=#9DA9A0,bg=#3D484D"
# setw -g window-status-format '#[fg=#3D484D,bg=#3D484D]#[default] #I > #{b:pane_current_path} #[fg=#3D484D,bg=#3D484D,nobold,nounderscore,noitalics]'
# setw -g window-status-current-format '#[fg=#3D484D,bg=#eee8d5]#[fg=#A7C080,bg=#eee8d5] #I #[fg=#eee8d5,bg=#A7C080] #{b:pane_current_path} #[fg=#A7C080,bg=#3D484D,nobold]'
# Basic status bar colors
set -g status-fg "#eee8d5"
set -g status-bg "#3D484D"
# Left side of status bar
# set -g status-left-bg #3D484D
# set -g status-left-fg #A7C080
set -g status-left-length "100"
set -g status-left-style NONE
set -g status-left "#[fg=#3D484D,bg=#eee8d5,bold] #S #[fg=#eee8d5,bg=#A7C080,nobold]#[fg=#3D484D,bg=#A7C080] #(whoami) #[fg=#A7C080,bg=#9DA9A0]#[fg=#3D484D,bg=#9DA9A0] #I:#P #[fg=#9DA9A0,bg=#3D484D,nobold]"
# Right side of status bar
# set -g status-right-bg #3D484D
# set -g status-right-fg #A7C080
set -g status-right-length "100"
set -g status-right-style NONE
set -g status-right "#[fg=#9DA9A0,bg=#3D484D]#[fg=#3D484D,bg=#9DA9A0] %H:%M:%S #[fg=colour3,bg=#9DA9A0]#[fg=#3D484D,bg=colour3] %d-%b-%y #[fg=#eee8d5,bg=colour3]#[fg=colour0,bg=#eee8d5,bold] #H "
# Window status
set -g window-status-format "#[fg=#9DA9A0,bg=#3D484D] #I:#W#F "
set -g window-status-current-format "#[fg=#3D484D,bg=#A7C080] #I:#W#F "
# Current window status
# set -g window-status-current-bg #9DA9A0
# set -g window-status-current-fg #A7C080
# Window with activity status
# set -g window-status-activity-bg #3D484D # fg and bg are flipped here due to
# set -g window-status-activity-fg #A7C080 # a bug in tmux
# Window separator
set -g window-status-separator ""
setw -g window-status-style "NONE,fg=#9DA9A0,bg=#3D484D"
# Window status alignment
set -g status-justify centre
# Pane border
# set -g pane-border-bg #3D484D
# set -g pane-border-fg #9DA9A0
# Active pane border
# set -g pane-active-border-bg default
# set -g pane-active-border-fg #A7C080
# Pane number indicator
# set -g display-panes-colour colour233
# set -g display-panes-active-colour #A7C080
# Clock mode
set -g clock-mode-colour colour100
set -g clock-mode-style 24
# Message
# set -g message-bg colour100
# set -g message-fg black
# Command message
# set -g message-command-bg colour233
# set -g message-command-fg black
# Mode
# set -g mode-bg colour100
# set -g mode-fg #A7C080
# Restore Neovim sessions
set -g @resurrect-strategy-nvim 'session'
# Restore Panes
set -g @resurrect-capture-pane-contents 'on'
# Start tmux Automatically on Boot
set -g @continuum-boot 'on'
set -g @continuum-boot-options 'alacritty'
# Set continuum save interval
set -g @continuum-save-interval '5'
set -g @continuum-restore 'on'
# Continuum status in tmux status line
# set -g status-right 'Continuum status: #{continuum_status}'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
# Import TPM
run "${HOME}/.tmux/plugins/tpm/tpm"