跳转到主要内容

tmux会话管理器,允许用户通过简单的配置文件保存和加载tmux会话。

项目描述

tmuxp

tmux会话管理器,允许用户通过简单的配置文件保存和加载tmux会话。由libtmux提供支持。

Python Package Docs Build status Code Coverage License

对tmux不熟悉吗? 《tmux之道》可在Leanpub和Amazon Kindle上购买。在网络上免费阅读和浏览此书。

有空闲时间吗? 帮助我们进行问题分类和代码审查以及跟踪器。请参阅问题 #290

安装

pip

$ pip install --user tmuxp

Homebrew

$ brew install tmuxp

Debian / ubuntu

$ sudo apt install tmuxp

Nix

$ [[ -z $(which tmux) ]] && (nix-env -i tmux && nix-env -i tmuxp) || nix-env -i tmuxp

在repology上查找适合您发行版的软件包: https://repology.org/project/tmuxp/versions

开发版本

  • pip:

    $ pip install --user --upgrade --pre tmuxp
    
  • pipx:

    $ pipx install --suffix=@next 'tmuxp' --pip-args '\--pre' --force
    

    然后使用 tmuxp@next load [会话名称]

加载tmux会话

通过json和YAML加载tmux会话,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/

一次加载多个(在后台,提供附加上一个的选项)

$ 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

Shell

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))

支持PEP 553 breakpoint()(包括 PYTHONBREAKPOINT)。也支持通过 -c 直接执行命令

$ tmuxp shell -c 'print(window.name)'
my_window

$ tmuxp shell -c 'print(window.name.upper())'
MY_WINDOW

在CLI文档中了解更多关于tmuxp shell的信息。

预加载钩子

运行自定义启动脚本(例如在加载tmux之前安装项目依赖项。请参阅bootstrap_env.pybefore_script示例)

分离状态加载

您也可以通过传递-d标志在后台加载会话

截图

image

冻结tmux会话

快照您的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查看捐赠选项。

项目详情

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适合您平台文件的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源分发

tmuxp-1.47.0.tar.gz (836.3 kB 查看哈希值)

上传时间

构建分发

tmuxp-1.47.0-py3-none-any.whl (51.0 kB 查看哈希值)

上传时间 Python 3

由以下机构支持