Менеджер сеансов для tmux, который позволяет пользователям сохранять и загружать сеансы tmux с помощью простых файлов конфигурации. Работает на libtmux.
Впервые в tmux? Дао tmux доступно на Leanpub и Amazon Kindle. Читайте и просматривайте книгу бесплатно в Интернете.
Есть свободное время? Помогите нам с сортировкой, проверкой кода и трекером. Смотрите выпуск №290!
пип:
$ pip install --user tmuxp
Домашнее пиво:
$ brew install tmuxp
Дебиан/Убунту:
$ sudo apt install tmuxp
Никс:
$ [[ -z $( which tmux ) ]] && (nix-env -i tmux && nix-env -i tmuxp) || nix-env -i tmuxp
Найдите пакет для вашего дистрибутива в репологии: https://repology.org/project/tmuxp/versions.
Развивающие релизы:
пип:
$ pip install --user --upgrade --pre tmuxp
пипкс:
$ pipx install --suffix=@next ' tmuxp ' --pip-args ' --pre ' --force
Затем используйте tmuxp@next load [session]
.
Загружайте сеансы tmux через json и YAML, tmuxinator и стиль teamocil.
session_name : 4-pane-split
windows :
- window_name : dev window
layout : tiled
shell_command_before :
- cd ~/ # run as a first command in all panes
panes :
- shell_command : # pane no. 1
- cd /var/log # run multiple commands in this pane
- ls -al | grep .log
- echo second pane # pane no. 2
- echo third pane # pane no. 3
- echo forth pane # pane no. 4
Сохраните как mysession.yaml и загрузите:
$ tmuxp load ./mysession.yaml
Проекты с .tmuxp.yaml или .tmuxp.json загружаются через каталог:
$ tmuxp load path/to/my/project/
Загрузить несколько одновременно (в bg предлагать прикрепить последним):
$ tmuxp load mysession ./another/project/
Назовите сеанс:
$ tmuxp load -s session_name ./mysession.yaml
простые и очень сложные примеры конфигурации
tmuxp проверяет наличие конфигов в пользовательских каталогах:
$TMUXP_CONFIGDIR
, если установлено$XDG_CONFIG_HOME
, обычно $HOME/.config/tmuxp/$HOME/.tmuxp/
Загрузите конфигурацию tmuxp из любого места, используя имя файла, предполагая ~/.config/tmuxp/mysession.yaml (или .json ):
$ tmuxp load mysession
См. конфигурации tmuxp автора и tmuxp.yaml проекта.
Новое в версии 1.6.0 :
tmuxp shell
запускается в консоли Python, в которой предварительно загружены подключенный сервер, сеанс и окно в объектах libtmux.
$ tmuxp shell
(Pdb) server
<libtmux.server.Server object at 0x7f7dc8e69d10>
(Pdb) server.sessions
[Session($1 your_project)]
(Pdb) session
Session($1 your_project)
(Pdb) session.name
'your_project'
(Pdb) window
Window(@3 1:your_window, Session($1 your_project))
(Pdb) window.name
'your_window'
(Pdb) window.panes
[Pane(%6 Window(@3 1:your_window, Session($1 your_project)))
(Pdb) pane
Pane(%6 Window(@3 1:your_window, Session($1 your_project))
Поддерживает breakpoint()
(включая PYTHONBREAKPOINT
). Также поддерживает прямые команды через -c
:
$ tmuxp shell -c ' print(window.name) '
my_window
$ tmuxp shell -c ' print(window.name.upper()) '
MY_WINDOW
Подробнее об оболочке tmuxp читайте в документации CLI.
Запускайте собственные сценарии запуска (например, установку зависимостей проекта перед загрузкой tmux. См. пример bootstrap_env.py и before_script).
Вы также можете загружать сеансы в фоновом режиме, передав флаг -d
.
Сделайте снимок макета tmux, путей к панелям и имен окон/сеансов.
$ tmuxp freeze session-name
Узнайте больше о заморозке сеансов tmux.
Конвертируйте файл сеанса из yaml в json и наоборот.
$ tmuxp convert filename
Это запросит у вас подтверждение и покажет новый файл, который будет записан.
Вы можете автоматически подтвердить запрос. В этом случае предварительный просмотр отображаться не будет.
$ tmuxp convert -y filename
$ tmuxp convert --yes filename
tmuxp имеет систему плагинов, позволяющую настраивать поведение. Узнайте больше о системе плагинов.
Команда load
позволяет записать выходные данные в файл журнала для целей отладки.
$ tmuxp load --log-file < log-file-name > .
Соберите информацию о системе и отправьте ее с помощью Github:
$ tmuxp debug-info
------------------
environment:
system: Linux
arch: x86_64
# ... so on
См. Краткое руководство.
Домашняя страница документации (также на 中文)
Хотите узнать больше о самом tmux? Прочтите Дао Tmux онлайн.
Ваши пожертвования идут на разработку новых функций, тестирование и поддержку. Ваши деньги пойдут непосредственно на поддержание и развитие проекта. Если вы частное лицо, не стесняйтесь жертвовать все, что считаете нужным, исходя из ценности, которую вы получаете от проекта.
См. варианты пожертвований на https://git-pull.com/support.html.