-
Notifications
You must be signed in to change notification settings - Fork 1
/
dot_tmux.conf.tmpl
179 lines (147 loc) · 5.46 KB
/
dot_tmux.conf.tmpl
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
#===================================
# tpm - Tmux Plugin Manager
#===================================
# Plugins
set -g @tpm_plugins " \
tmux-plugins/tpm \
tmux-plugins/tmux-sidebar \
tmux-plugins/tmux-copycat \
tmux-plugins/tmux-open \
tmux-plugins/tmux-resurrect \
tmux-plugins/tmux-online-status \
"
# Initialize TMUX plugin manager
# (keep this line at the very bottom of tmux.conf)
run '~/.local/share/tpm/tpm'
#===================================
# tmux-resurrect - save & restore of tmux session
#===================================
set -g @resurrect-save 'S'
set -g @resurrect-restore 'R'
#===================================
# Common Settings
#===================================
# prefixキーを変更
set -g prefix C-s
unbind C-b
# 設定ファイルをリロードする
bind r source-file ~/.tmux.conf \; display "Reloaded!"
bind C-r source-file ~/.tmux.conf \; display "Reloaded!"
# 新規ウィンドウキーの変更
bind t new-window
bind C-t new-window
# ウインドウ移動
bind n next-window
bind C-n next-window
bind p previous-window
bind C-p previous-window
bind w choose-window
bind C-w choose-window
# ウィンドウの検索
bind c command-prompt "select-window -t '%%'"
bind C-c command-prompt "select-window -t '%%'"
# ペインを移動
bind h select-pane -L
bind C-h select-pane -L
bind j select-pane -D
bind C-j select-pane -D
bind k select-pane -U
bind C-k select-pane -U
bind l select-pane -R
bind C-l select-pane -R
bind C-S-Left swap-window -t -1
bind C-S-Right swap-window -t +1
# ペインをリサイズ
bind -r < resize-pane -L 1
bind -r + resize-pane -D 1
bind -r - resize-pane -U 1
bind -r > resize-pane -R 1
# ペイン分割
bind s split-window -v -c "#{pane_current_path}"
bind C-s split-window -v -c "#{pane_current_path}"
unbind -
bind v split-window -h -c "#{pane_current_path}"
bind C-v split-window -h -c "#{pane_current_path}"
unbind |
# copy-mode
setw -g mode-keys vi
bind -T copy-mode-vi v send -X begin-selection
unbind -T copy-mode-vi Enter
# 同期入力
bind e setw synchronize-panes on
bind E setw synchronize-panes off
# ペインのインデックスを1から開始
setw -g pane-base-index 1
# マウス操作を有効化
setw -g mouse on
# 番号基準値を変更
set -g base-index 1
# 256色端末を使用する
set -g default-terminal "screen-256color"
# screen のスクロール
set -g history-limit 20000
# escapeの効きを良くする
set -s escape-time 0
# ウィンドウを閉じた時に番号を詰める
set -g renumber-windows on
# 新ウインドウに環境変数引き継ぎ
set -g update-environment "SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION"
#===================================
# Status Line
#===================================
# 上部に配置
set -g status-position top
# status line を更新する間隔を 1 秒にする
set -g status-interval 1
# window-status を中央揃えで配置する
set -g status-justify "centre"
# status line の背景色を指定する。
set -g status-bg "colour238"
# status line の文字色を指定する。
set -g status-fg "colour255"
# status-left の最大の長さを指定する。
set -g status-left-length 20
# status-left のフォーマットを指定する。
set -g status-left "#[fg=colour255,bg=colour241]Session: #S #[default]"
# status-right の最大の長さを指定する。
set -g status-right-length 60
# prefix キー押下時色反転
set -g status-left '#[fg=cyan,bg=#303030]#{?client_prefix,#[reverse],} #H[#S] #[default]'
# window-status のフォーマットを指定する。
setw -g window-status-format " #I: #W "
# カレントウィンドウの window-status のフォーマットを指定する
setw -g window-status-current-format "#[fg=colour255,bg=colour27,bold] #I: #W #[default]"
#===================================
# setting for each OS
#===================================
# 各OSにおける設定ファイル読み込み
# Clipboard
{{- if eq .chezmoi.os "darwin" }}
set -s set-clipboard off
bind -T copy-mode-vi y send -X copy-pipe-and-cancel "pbcopy"
bind -T copy-mode-vi Enter send -X copy-pipe-and-cancel "pbcopy"
bind -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel "pbcopy"
set -g status-right "#(tmux-functions load_average)#(tmux-functions volume)#(tmux-functions battery)#(tmux-functions ssid)#[fg=colour014] %H:%M:%S | %m/%d #[default]"
{{- else if eq .chezmoi.os "linux" -}}
{{- if (.chezmoi.kernel.osrelease | lower | contains "microsoft") }}
set -s set-clipboard off
if-shell "which win32yank.exe" '\
bind -T copy-mode-vi y send -X copy-pipe-and-cancel "win32yank.exe -i";\
unbind -T copy-mode-vi Enter;\
bind -T copy-mode-vi Enter send -X copy-pipe-and-cancel "win32yank.exe -i";\
bind -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel "win32yank.exe -i";\
'
set -g status-right "#[fg=colour255,bg=colour241] #h | LA: #(cut -d' ' -f-3 /proc/loadavg) | %m/%d %H:%M:%S#[default]"
{{- else }}
set -s set-clipboard on
bind -T copy-mode-vi y send -X copy-pipe-and-cancel "osc52-copy.sh"
bind -T copy-mode-vi Enter send -X copy-pipe-and-cancel "osc52-copy.sh"
bind -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel "osc52-copy.sh
set -g status-right "#[fg=colour255,bg=colour241] #h | LA: #(cut -d' ' -f-3 /proc/loadavg) | %m/%d %H:%M:%S#[default]"
{{- end -}}
{{- end }}
#===================================
# load other tmux.conf
#===================================
# ローカル設定ファイルの読み込み
if "test -e ~/.tmux.local.conf" "source-file ~/.tmux.local.conf"