سحرارآمیز



مدیریت tmux با tmuxp

برای کسایی که با tmux کار میکنن و روال کارشون هر روز باز کردن یه ترمینال و چنتا سشن و پنجره tmux هست اتوماتیک کردن روند راه انداری tmux بدرد بخور هست. برای انجام این کار یا میشه از سوئیچ‌های خود tmux یا با یه برنامه‌ی مدیریت سشن استفاده کرد.

استفاده از خود tmux میشه یه چیزی مثل این:

#!/bin/sh

tmux \
    new-session -c $Home/blog \; \
    send-keys 'vim .' C-m \; \
    split-window -v -c $Home/blog/output -p 20 \; \
    send-keys 'python3 -m http.server' C-m \; \
    split-window -h -c $HOME/blog -p 70 \; \
    send-keys 'source $HOME/.venvs/blog/bin/activate' C-m \;

که همچین چیزی میشه: tmux

ولی تنظیم سایز بخش‌ها (paneها) برای قالب‌های پیچیده‌تر با این روش سخت‌تر میشه.

برای همین استفاده از یه ابزار مدیریت tmux مثل tmuxp راحت‌تر هست.

session_name: blog
windows:
- window_name: blog
  window_index: 5
  layout: 79ce,168x53,0,0[168x39,0,0,38,168x13,0,40{69x13,0,40,39,98x13,70,40,40}]
  shell_command_before:
    - cd ~/Projects/blog
    - export LANG=fa
  panes:
    - shell_command:
      - vim ./main.py
    - shell_command:
      - source ~/.venvs/blog/bin/activate
      - cd ./output
      - python -m http.server
    - shell_command:
      - source ~/.venvs/blog/bin/activate
      - cd ./app
      - echo $LANG

با این تنظیمات یه پنجره tmux با ایندکس 5 با قالبی که از قبل مشخص و سفارشی شده (layout) ساخته میشه.

tmuxp

با این دستور سشن اجرا میشه:

$ tmuxp load blog.yaml

توضیحات همه‌ی گزینه‌های توی فایل تنظیمات (blog.yaml) داخل مستندات tmuxp مفصل توضیح داده شده. فقط نکته‌ی مهمش اون قالب سفارشی شده (layout) هست.

برای بدست آوردن مقدار layout باید یه بار یه tmux رو اجرا کنید و قالبی که میخواید رو بوجود بیارید و داخل اون سشن tmux این دستور رو بزنید:

$ tmux list-windows

که همچین خروجی میده:

0: zsh* (4 panes) [119x53] [layout 8f89,119x53,0,0[119x19,0,0,42,119x20,0,20,45,119x12,0,41{59x12,0,41,43,59x12,60,41,44}]] @17 (active)
سه شنبه 25 بهمن 1401
qip