-
Notifications
You must be signed in to change notification settings - Fork 0
/
.tmux.conf
137 lines (120 loc) · 5.72 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
# -g global option
set -g display-panes-time 5000 # 5초 동안 pane 숫자 보이기
# 마우스 사용 활성화
# tmux 1.9 이전
#set -g mode-mouse on
#set -g mouse-resize-pane on
#set -g mouse-select-pane on
#set -g mouse-select-window on
# tmux 1.9 이후
set -g mouse on
# setw -> set window
setw -g mode-keys vi # vi 단축키 사용(디폴트는 emacs)
#setw synchronize-pane on # 모든 panes 에 동시 입력 활성화
#setw synchronize-pane off # 모든 panes 에 동시 입력 해제
# ctrl+b i panes 동시 입력 활성화 단축키
# ctrl+b ctrl+i panes 동시 입력 비활성화 단축키
bind i setw synchronize-panes on
bind c-i setw synchronize-panes off
# 기본 prefix(ctrl+b) 대신 ctrl+a 사용하기
#set -g prefix C-a
#bind C-a send-prefix
#unbind C-b
# 창 나누기시 현재 경로로 새창 생성
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
# 여러개의 pane 생성하고(tiled 레이아웃 사용) 각 pane 에 명령 실행하기
# 현재 창을 계속 split-window 하면 공간이 없다는 에러 발생하기 때문에
# select-pane 으로 활성 창을 옮겨가며 분할해야 한다.
unbind S
bind S \
split-window -v\; \
split-window -v\; \
split-window -v\; \
split-window -v\; \
select-pane -t 00\; \
split-window -h\; \
split-window -h\; \
split-window -h\; \
split-window -h\; \
select-layout tiled\;
# 위에 생성한 창(pane)들의 쉘 프롬프트가 늦게 뜨면 send-key 전달이 되지 않아
# 창들의 쉘 프롬프트가 완료된 후 접속하는것이 좋다.
unbind s
bind s \
select-pane -t 00\; send-keys 'echo ysoftman0' Enter\; send-keys 'cmatrix' enter\; \
select-pane -t 01\; send-keys 'echo ysoftman1; fd . /usr | xargs hexdump -C' enter\; \
select-pane -t 02\; send-keys 'echo ysoftman2; rg -i if /usr' enter\; \
select-pane -t 03\; send-keys 'echo ysoftman3; \sl -a; wtfutil' enter\; \
select-pane -t 04\; send-keys 'echo ysoftman4; cacafire' enter\; \
select-pane -t 05\; send-keys 'echo ysoftman5; htop' enter\; \
select-pane -t 06\; send-keys 'echo ysoftman6; infinite_cowsay' enter\; \
select-pane -t 07\; send-keys 'echo ysoftman7; asciiquarium' enter\; \
select-pane -t 08\; send-keys 'echo ysoftman8; for ((;;)); do imgcat ${myenv_path}/xelloss.jpg; sleep 1; done' enter\;
# 별도 설정 파일 읽기
# source-file ~/workspace/bill-ysoftman/tmux.conf;
# 별도 설정 파일이 존재하면 읽기
if-shell "test -f ~/workspace/bill-ysoftman/tmux.conf" "source ~/workspace/bill-ysoftman/tmux.conf"
# tmux 다시 읽기
# display-message (alias: display) 상태바에 메시지 출력 -p 사용하면 stdout에 출력
bind r source-file ~/.tmux.conf \; display "ysoftman ~/.tmux.conf loaded"
# tmux plugin 설정
# tmux 실행 후 최초 한번은 install 실행해야 한다.
# ctrl+b, I : install
# ctrl+b, U : update
# ctrl+b, alt, u : remove
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# dracula theme 사용하려면 ~/.tmux/plugins/tmux 디렉토리 삭제후 catppuccin 주석 처리해서 설치해야 함
#set -g @plugin 'dracula/tmux'
set -g @plugin 'catppuccin/tmux'
set -g @plugin 'tmux-plugins/tmux-battery'
set -g @plugin 'tmux-plugins/tmux-cpu'
set -g @plugin 'xamut/tmux-weather'
set -g @plugin 'vascomfnunes/tmux-clima'
set -g @plugin 'jamesoff/tmux-loadavg'
set -g @catppuccin_flavour 'mocha' # latte,frappe, macchiato or mocha
set -g @catppuccin_window_left_separator ""
set -g @catppuccin_window_right_separator " "
set -g @catppuccin_window_middle_separator " █"
set -g @catppuccin_window_number_position "right"
set -g @catppuccin_window_default_fill "number"
set -g @catppuccin_window_default_text "#W"
set -g @catppuccin_window_current_fill "number"
set -g @catppuccin_window_current_text "#W"
set -g @catppuccin_status_modules_right "directory user host session"
set -g @catppuccin_status_left_separator " "
set -g @catppuccin_status_right_separator ""
set -g @catppuccin_status_fill "icon"
set -g @catppuccin_status_connect_separator "no"
set -g @catppuccin_directory_text "#{pane_current_path}"
# available plugins: battery, cpu-usage, git, gpu-usage, ram-usage, tmux-ram-usage, network, network-bandwidth, network-ping, ssh-session, attached-clients, network-vpn, weather, time, mpc, spotify-tui, playerctl, kubernetes-context, synchronize-panes
# 사용할 플러그인 순서대로 상태바에 보인다.
set -g @dracula-plugins "cpu-usage gpu-usage ram-usage time network battery"
# 날씨 요청 제한 수 넘기는 문제
# sleep_weather 백그라운드 프로세스가 계속 생기는 문제등이 있어 사용하지 않음
set -g @dracula-show-weather false
set -g @dracula-show-fahrenheit false # fahrenheit(화씨)
set -g @dracula-show-powerline true
set -g @dracula-show-battery true
set -g @dracula-show-timezone true
set -g @dracula-refresh-rate 5
set -g @dracula-day-month true
set -g @dracula-military-time true
set -g @dracula-show-left-icon smiley # session, smiley, window, or any character.
set -g @dracula-border-contrast true
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
# tmux 테마 삭제 후에도 초기화 되지 않는 경우 tmux 프로세스를 삭제하자.
# tmux kill-server
# 또는
# kill -9 tmux_pid
# 현재 작업창(active-window) 를 좀더 잘 띄게
# 현재 pane 경계선 설정(bg 색상을 주면 경계선이 두꺼워 진다.)
#set -g pane-active-border-style "fg=red,bg=green"
set -g pane-active-border-style 'fg=colour203,bg=default'
# 창배경색을 설정하면 터미널 자체의 opacity(transparency) 설정 효과를 볼 수 없어 주석처리
# 기본 window 색상을 흐리게
# set -g window-style 'bg=colour237'
# active window 색상은 진하게
# set -g window-active-style 'bg=black'