-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtmux.conf.me
139 lines (118 loc) · 4.25 KB
/
tmux.conf.me
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
#""""""""""""""""""""""""""""""""""""""""
#" TMUX OPTIONS
#""""""""""""""""""""""""""""""""""""""""
# set default terminal mode to 256 colors
set -g default-terminal "xterm-256color"
## start with window 1 (instead of 0)
set -g base-index 1
set -g pane-base-index 1
# shorten command delay
set -sg escape-time 1
# don't rename windows automatically
set-option -g allow-rename off
# mouse control (clickable windows, panes, resizable panes)
set -g mouse on
set -g set-clipboard on
set -g focus-events off
set -g history-limit 99999
# secondary prefix key
set-option -g prefix2 `
# press <prefix> twice to send
bind-key -T prefix ` send-prefix -2
# for nested tmux session, inner default configration session use C-b
bind-key -T prefix * set-option -g prefix `
#""""""""""""""""""""""""""""""""""""""""
#" TMUX KEYTABLE OPTIONS
#""""""""""""""""""""""""""""""""""""""""
# split panes using | and -, make sure they open in the same path
bind-key -T prefix v split-window -h -c "#{pane_current_path}"
bind-key -T prefix s split-window -v -c "#{pane_current_path}"
bind-key -T prefix a last-window
# open new windows in the current path
bind-key -T prefix c new-window -c "#{pane_current_path}"
# reload config file
bind-key -T prefix r source-file ~/.tmux.conf \; display-message 'Messgae: Tmux Configuration Reloaded'
# move Pane Between Windows, use <preifx> m to mark pane and :join-pane to paste the pane
# <prefix> M to toggle Mouse Support
bind-key -T prefix M setw -g mouse
bind-key -T prefix y set synchronize-panes
#one pre-configured layout
bind-key -T prefix o split-window \; split-window \; split-window \; select-layout 8afe,204x50,0,0{47x50,0,0,0,105x50,48,0[105x25,48,0,3,105x24,48,26,5],50x50,154,0,4}
bind-key -T prefix h select-pane -L
bind-key -T prefix j select-pane -D
bind-key -T prefix k select-pane -U
bind-key -T prefix l select-pane -R
# Copy Mode
# default: prefix [ enter copy-mode
# default: prefix ] paste tmux buffer
# mode-key refer to scroll buffer (copy mode) navigation key binding
# enable vi mode keys
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi '=' send-keys -X end-of-line
bind-key -T copy-mode-vi 'v' send-keys -X begin-selection
bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
bind-key -T copy-mode-vi 'u' send-keys -X -N 15 scroll-up
bind-key -T copy-mode-vi 'd' send-keys -X -N 15 scroll-down
######################
### UX/UI CHANGES ###
######################
# The messages {
# messaging
set -g message-style 'bold,fg=green,bg=black'
# only for vi command mode in tmux command prompt.
set -g message-command-style 'bold,fg=#afaf00,bg=black'
# }
#set inactive/active window styles
#set -g window-style 'fg=#909090,bg=#101010'
#set -g window-active-style 'fg=colour250,bg=#002b36'
## Status bar design
# status line
set -g status-justify left
set -g status-bg default
set -g status-fg colour12
set -g status-interval 2
# Info on left (I don't have a session display for now)
set -g status-left ''
# loud or quiet?
set-option -g visual-activity off
set-option -g visual-bell off
set-option -g visual-silence off
set-option -g bell-action none
set-window-option -g monitor-activity off
# modes {
# copy-mode, copy-mode search highlight
setw -g mode-style 'bold,bg=colour196,fg=#000000'
# clock-mode
setw -g clock-mode-colour colour135
# }
# The panes {
# set pane title
set -g pane-border-status bottom
set -g pane-border-format \
'#{?pane_active,,#[fg=#808080]}:#{window_index}.#{pane_index} '\
'#{?#{==:#H,#T},#{pane_tty},#T}#{?#{==:#{pane_mode},copy-mode}, [COPY],}'
# set pane border colors
set -g pane-border-style fg=colour208
set -g pane-active-border-style fg=colour208,bold
# }
# The statusbar {
set -g status-position bottom
set -g status-bg '#f0f0f0'
set -g status-fg '#0e88eb'
set -g status-left \
'#[bg=#323024]#[fg=#a6e22e]#[bright]'\
'#{?client_prefix,[PREFIX],} #S '
set -g status-right-length 0
set -g status-left-length 20
# normal windows-tab-list
setw -g window-status-format ' #I#[fg=colour0]:#[fg=colour0]#W#[fg=colour0]'
# active windows-tab-list on selection
setw -g window-status-current-format \
'#[reverse] '\
'#{?window_active,[#I],#I}'\
'#[bg=#B40C1D]'\
'#{?window_zoomed_flag,*ZOOM,}'\
'#{?pane_synchronized,*SYN,}'\
' #[bg=#f0f0f0]#[underscore]#W#[nounderscore] '
# }
# vim: set ft=conf: