diff --git a/README.md b/README.md index 424a6ae..08d008d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ 把每个本地或 `herdr --remote` attach 放进独立 tmux window,并在 Herdr 画面顶部 显示可点击的 Sessions 条。 -它不是 Herdr 插件,也不会修改 Herdr core。Herdr 0.8.2 的插件 API 不能向原生 +它不是 Herdr 插件,也不会修改 Herdr core。设计本工具时的 Herdr(0.8.2)插件 API 不能向原生 sidebar 插入 UI,也不能让 thin client 从一个 server 原地改连另一个 server; 所以顶部状态栏横跨整个终端,而不是只嵌在 Spaces 上方。 @@ -20,7 +20,7 @@ sidebar 插入 UI,也不能让 thin client 从一个 server 原地改连另一 - 可隐藏不再需要的 Tab,而不停止底层本地或远端 Herdr Session。 - 可在 Sessions 管理弹窗中为 Tab 设置持久化显示名称,或恢复默认名称。 - dead window 留在顶栏,可原地重连。 -- 不修改 `~/.tmux.conf`,不保存 SSH 凭据或远端 Session 缓存。 +- 不读取也不修改 `~/.tmux.conf`:Hub 的 tmux server 以 `-f /dev/null` 启动,用户主题和按键绑定不会渗入;不保存 SSH 凭据或远端 Session 缓存。 ## 依赖 @@ -88,7 +88,10 @@ herdr-hub open --session work ## 日常操作 Hub 使用独立 tmux socket `herdr-hub`,不会接管普通 tmux server。外层前缀固定为 -`Ctrl+A`,Herdr 原来的 `Ctrl+B` 可以直接使用。 +`Ctrl+A`,Herdr 原来的 `Ctrl+B` 可以直接使用。Hub server 不读取 `~/.tmux.conf`, +因此主题的 `status-format` 和 root 表按键不会覆盖顶栏或抢占 Herdr 的按键;如需附加 +自定义配置,设置 `HERDR_HUB_TMUX_CONFIG=/path/to/file` 后重新启动 Hub(`herdr-hub stop` +再执行 `herdr-hub`)。 | 操作 | 快捷键 / 命令 | | --- | --- | @@ -186,7 +189,8 @@ Windows 普通更新会补读远端用户和系统的代理环境变量。 ## 远端 Session 弹窗 弹窗由 tmux `display-popup` 和 Hub 内置选择器组成,不依赖 fzf。它会立即显示已打开的 -window,同时在后台并行查询所有已登记远端;每台机器的结果就绪后原地更新。 +window,同时在后台查询本机 Session 列表,并并行查询所有已登记远端;每项结果就绪后 +原地更新。 主页面只显示 Session 和两个全局入口。大多数主机只有 `default` Session,因此默认只显示 主机名;有命名 Session 时显示为 `主机 / Session`。本机同样显示为“本机”或 @@ -222,7 +226,7 @@ Tab,也不停止远端 Herdr server。 也会一并关闭。运行中的 Session 需先“关闭并停止”,Herdr 永久保留的 `default` Session 不能删除。 -Herdr 0.8.2 不支持 Windows 作为原生 `herdr --remote` 的目标主机。Hub 查询到 Windows +设计本工具时的 Herdr(0.8.2)不支持 Windows 作为原生 `herdr --remote` 的目标主机。Hub 查询到 Windows Session 后会标记为“Windows · SSH 模式”,并自动改为 `ssh -tt target herdr`;命名 Session 会在远端运行 `herdr --session NAME`。这种模式仍支持 Tab 切换、detach、断线 重连和远端工作现场持久化,但使用远端 Herdr 的 keybindings,也没有原生 thin client @@ -257,12 +261,13 @@ herdr-hub remote remove orangepi ## Session 显示名称 -Herdr 0.8.2 没有底层 Session rename 命令,因此 Hub 的“重命名”是安全的显示名称: +设计本工具时的 Herdr(0.8.2)没有底层 Session rename 命令,因此 Hub 的“重命名”是安全的显示名称: 顶部 Tab 和 Sessions 弹窗显示新名称,attach、重连和工作现场仍绑定原来的 Session ID。 名称会跨终端断线、Hub detach 和 `herdr-hub stop` 保留,并在重新打开 endpoint 时自动 应用。配置保存在 `~/.config/herdr-hub/aliases.json`(遵循 `$XDG_CONFIG_HOME`), 权限为 `0600`;留空保存会删除该 endpoint 的显示名称并恢复 `local/work`、 -`host/work` 等默认格式。 +`host/work` 等默认格式。名称可以是任意不含控制字符的文本。若该文件损坏,Hub 会给出 +警告并暂时使用默认名称,`herdr-hub doctor` 会报告具体错误。 ## 复制与剪贴板 @@ -325,6 +330,8 @@ herdr-hub open [--session NAME] herdr-hub open --remote TARGET [--session NAME] [--remote-keybindings local|server] [--transport native|ssh] herdr-hub choose +herdr-hub control [--window ID] +herdr-hub keys herdr-hub remote list herdr-hub remote add TARGET [--remote-keybindings local|server] [--transport native|ssh] @@ -357,8 +364,8 @@ herdr-hub stop - 可执行文件不叫 `herdr`。 这些场景可在弹窗中选择“添加远端”,或使用 `herdr-hub open --remote …`。为了避免嵌套 tmux 与前缀冲突, -`herdr-hub` 应从普通终端启动;若当前已经在另一个 tmux server 中,它会拒绝再次 -attach。 +`herdr-hub` 应从普通终端启动;若当前已经在另一个 tmux server 中,它会在扫描或创建 +Hub 之前直接拒绝。 ## 开发与测试