tmuxp

来自 ArchWiki

tmuxp 是一个 tmux 终端复用器的会话管理器。与 tmuxinatorteamocil 相比。

安装

安装 tmuxp 软件包。

配置

tmuxp 接受 JSON 和 YAML 两种配置。YAML 标记语言类似于 tmuxinator

你可以将配置放在任何目录中,并通过以下 3 种方式访问它们

  1. 通过绝对或相对文件路径 tmuxp load file, tmuxp load ../myconfig
  2. tmuxp 会检查 $XDG_CONFIG_HOME/tmuxp (通常是 $HOME/.config/tmuxp) 和 $TMUXP_CONFIGDIR 路径 (默认为 $HOME/.tmuxp) 中的文件。里面的文件可以通过文件名加载,例如 tmuxp load basename。因此 $HOME/.tmuxp/myconfig.yaml 可以通过 tmuxp load myconfig 加载。
  3. 通过项目或目录中的 .tmuxp.yaml (这样你可以将配置存储在 VCS 的每个项目/文件夹中。然后 tmuxp load path/to/dir

一个包含 4 个窗格的 YAML 配置示例

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

tmuxp 还能够在通过 before_script 构建 tmux 会话之前运行任意脚本。在这个例子中,来自 tmuxp 项目本身,一个 引导脚本 运行,它为项目创建一个 virtualenv (python 包环境) 并安装依赖包。此外,会话配置所有窗格以获取项目的 virtualenv

session_name: tmuxp
start_directory: ./ # load session relative to config location (project root).
before_script: ./bootstrap_env.py # ./ to load relative to project root.
windows:
- window_name: tmuxp
  focus: True
  layout: main-horizontal
  options:
    main-pane-height: 35
  shell_command_before:
    - '[ -d .venv -a -f .venv/bin/activate ] && source .venv/bin/activate'
  panes:
  - focus: true
  - pane 
  - make watch_test
- window_name: docs
  layout: main-horizontal
  options:
    main-pane-height: 35
  start_directory: doc/
  shell_command_before: 
    - '[ -d ../.venv -a -f ../.venv/bin/activate ] && source ../.venv/bin/activate'
  panes:
  - focus: true
  - pane
  - make serve
  - make watch

更多示例 可在文档中找到,展示了 YAML 以及 JSON 配置。

参见