آموزش تغییرات کاربردی در Tmux

تیماکس در لینوکس

با سلامن و درود، قبلا Tmux رو اینجا معرفی کرده بودم و یه سری از دستوراتش رو نیز توضیح داده بودم.

تو این مطلب قصدم یه مقدار تغییرات و به قولی کانفیگ کردن تیماکس – Tmux هست.

برای شروع باید فایل tmux.conf را ویرایش کنید. این فایل کجا هست؟ برای لینوکس دبیان این فایل داخل مسیر زیر می باشد:

/etc/tmux.conf

اگر این فایل را تغییر دهید (یا در این مسیر بسازید و تغییرش دهید – احتمال Hidden بودن نیز بالاست) روی کل سیستم عمل می کند. اما فایل پیشفرض تنظیمات تیماکس در مسیر زیر می باشد:

~/.tmux.conf

حال اگر دبیانی نیستید، با استفاده از دستور man tmux می تونید مسیر پیشفرض و مسیر کلی فایل tmux.conf رو پیدا کنید:

FILES
     ~/.tmux.conf       Default tmux configuration file.
     /etc/tmux.conf     System-wide configuration file.

حال کافیست فایل tmux.conf را باز کنید و شروع به ویرایش آن کنیم:

sudo nano /etc/tmux.conf

به عنوان نکته اول توجه داشته باشید که پس از هر تغییری که در tmux.conf می دهید، باید tmux ریست شود یا هیچ session فعالی نداشته باشد و بعد تست کنید و ببینید که تغییرات اعمال شده یا خیر؟ با دستور زیر می توانید متوجه شوید که در حال حاضر Session باز هست یا خیر !؟

tmux ls

برای killکردن tmuxنیز از دستور زیر استفاده کنید:

tmux kill-server

خب دیگه با موارد پایه آشنا شدید و دیگه بیم دنبال کاستوم کردن Tmux

اولین تغییر مد نظر، عوض کردن دستورات اسپلیت کردن افقی و عمودی صفحه در تیماکس، می خواهیم به جای «”» و «%» از «-» و «|» استفاده کنیم:

# split panes using | and -
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %

خب تغییر دوم مربوط میشه به سوییچ کردن بین pane ها در تیماکس، می نتمی خواهیم هر دفعه از prefix یا همون «ctl+b» استفاده کنیم و بعدش pane رو سوییچ کنیم. می خواهیم از M-<direction> استفاده کنیم که m همون meta هست که معمولا Alt هست. پس با تغییرات زیر به راحتی با زدن alt و کلید های جهت نما، pane عوض می شود:

# switch panes using Alt-arrow without prefix
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

فعال کردن استفاده از موس در تیماکس: می دونیم که بهترین حالت برای استفاده از ترمینال، تایپ کردن و استفاده از کیبورد تنها می باشد، ولی خب همون طور که در بالا دیدید، ممکن هست ما تیماکس خودمان را کاستوم کرده باشیم و کسی بخواد با سیستم ما کار بکنه، بهتره که موس هم فعال باشه تا با کلیک روی هر pane بتونه به اون pane بره. در تیماکس ۲.۱ به بالا این قابلیت اضافه شده و فقط باید آن را فعال کرد. جهت فعال سازی خط زیر را با فایل tmux.conf اضافه کنید:

# Enable mouse mode (tmux 2.1 and above)
set -g mouse on

تغییر ظاهر Tmux

خب تغییر تیماکس یه مقدار پیچیدگی اش از چیزی که بالا انجام دادیم بیشتر هست و من خودم از نمونه ظاهر هایی که دیگران درست کرده اند استفاده می کنم، برای مثال به خطوط زیر دقت نمایید :

######################
### DESIGN CHANGES ###
######################

# loud or quiet?
set -g visual-activity off
set -g visual-bell off
set -g visual-silence off
setw -g monitor-activity off
set -g bell-action none

#  modes
setw -g clock-mode-colour colour5
setw -g mode-style 'fg=colour1 bg=colour18 bold'

# panes
set -g pane-border-style 'fg=colour19 bg=colour0'
set -g pane-active-border-style 'bg=colour0 fg=colour9'

# statusbar
set -g status-position bottom
set -g status-justify left
set -g status-style 'bg=colour18 fg=colour137 dim'
set -g status-left ''
set -g status-right '#[fg=colour233,bg=colour19] %d/%m #[fg=colour233,bg=colour8] %H:%M:%S '
set -g status-right-length 50
set -g status-left-length 20

setw -g window-status-current-style 'fg=colour1 bg=colour19 bold'
setw -g window-status-current-format ' #I#[fg=colour249]:#[fg=colour255]#W#[fg=colour249]#F '

setw -g window-status-style 'fg=colour9 bg=colour18'
setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F '

setw -g window-status-bell-style 'fg=colour255 bg=colour1 bold'

# messages
set -g message-style 'fg=colour232 bg=colour16 bold'

تنظیم Tmux به عنوان Shell پیشفرض:

به عنوان نکته آموزش آخر، اگر می خواهید تیماکس-tmux ، به عنوان shell پیشفرض سیستم شما باشه، کافیست فایل .bashrc رو یه مقدار تغییرات بدید.

فایل .bashrc داخل فولدر Home قرار دارد، مطمین بشید show hidden files فعال باشه، برای تنظیم tmux به عنوان shell پیشفرض کافیست سه خط زیر را قبل از Aliase ها، داخل فایل .bashrc قرار دهید: (مرجع)

if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then
  exec tmux
fi