-
Notifications
You must be signed in to change notification settings - Fork 0
/
.tmux.conf
100 lines (74 loc) · 3.11 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
# make sure colors work
set -g default-terminal "xterm-256color"
set-option -ga terminal-overrides ",xterm-256color:Tc"
# set scroll history to 100,000 lines
set-option -g history-limit 100000
unbind C-b
set -g prefix C-a
set -g mouse on
# disable wait time for changing modes in Vim (https://www.johnhawthorn.com/2012/09/vi-escape-delays/)
set -s escape-time 0
set -g base-index 1
bind P paste-buffer
set -g mode-keys vi
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-selection
bind -T copy-mode-vi r send-keys -X rectangle-toggle
# 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
bind r source-file ~/.tmux.conf \; display "reloaded tmux configuration "
bind c new-window -c "#{pane_current_path}"
bind v split-window -hc "#{pane_current_path}"
bind s split-window -c "#{pane_current_path}"
# hjkl pane traversal
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
### theme settings ###
# window separators
set-option -wg window-status-separator ""
# monitor window changes
set-option -wg monitor-activity on
set-option -wg monitor-bell on
# set statusbar update interval
set-option -g status-interval 1
### colorscheme ###
# change window screen colors
set-option -wg mode-style bg="#FE8019",fg="#3C3836"
# default statusbar colors (terminal bg should be #282828)
set-option -g status-style bg=terminal,fg="#A89984"
# default window title colors
set-option -wg window-status-style bg="#3C3836",fg="#7C6F64"
# colors for windows with activity
set-option -wg window-status-activity-style bg="#3C3836",fg="#A89984"
# colors for windows with bells
set-option -wg window-status-bell-style bg="#3C3836",fg="#FE8019"
# active window title colors
set-option -wg window-status-current-style bg="#FE8019",fg="#3C3836"
# pane border
set-option -g pane-active-border-style fg="#FE8019"
set-option -g pane-border-style fg="#3C3836"
# message info
set-option -g message-style bg="#FE8019",fg="#3C3836"
# writing commands inactive
set-option -g message-command-style bg="#A89984",fg="#3C3836"
# pane number display
set-option -g display-panes-active-colour "#FE8019"
set-option -g display-panes-colour "#3C3836"
# clock
set-option -wg clock-mode-colour "#FE8019"
# copy mode highlighting
%if #{>=:#{version},3.2}
set-option -wg copy-mode-match-style "bg=#A89984,fg=#3C3836"
set-option -wg copy-mode-current-match-style "bg=#FE8109,fg=#3C3836"
%endif
# statusbar formatting
# "#fe8019" MUST be in lowercase here (conflicts with statusline alias otherwise)
set-option -g status-left "#[bg=#A89984, fg=#3C3836]#{?client_prefix,#[bg=#fe8019],#[bg=#A89984]}"
# set-option -g status-right "#[bg=#3C3836, fg=#7C6F64] %a %b %d %Y %I:%M %p #[bg=#A89984, fg=#3C3836]#{?client_prefix,#[bg=#fe8019],#[bg=#A89984]}"
set-option -g status-right ""
set-option -wg window-status-current-format " #{window_index} #{window_name} "
set-option -wg window-status-format " #{window_index} #{window_name} "