cssh:将终端从 xterm 更改为终止符

cssh:将终端从 xterm 更改为终止符

我想cssh使用terminator终端模拟器,而不是默认的xterm.我~/.clusterssh/config更改了以下行:

#terminal=/usr/bin/xterm
terminal=/usr/bin/terminator

但是当我开始时cssh我收到以下错误:

Opening to: server1 server2
Usage: terminator [options]

terminator: error: no such option: -g
Usage: terminator [options]

terminator: error: no such option: -g
Cannot open pipe for reading when talking to server1 : Interrupted system call

显然,cssh正在将一些参数传递给xterm,但它terminator无法识别。

我该如何解决这个问题?

答案1

我怀疑你可能无法让它工作,因为我怀疑终结者会接受合成事件,并且我不认为每个窗口模型的多个终端是兼容的,但如果你想尝试最好的来源是 README.Debian.gz来自 debian 软件包。我已经在下面包含了相关部分,但是仅使用终结者的分组选项可能会简单得多

Super+g:对所有终端进行分组,以便发送到其中一个终端的任何输入都会发送到所有终端。(来自手册页)


终端模拟器

Clusterssh 不再允许使用任何提供 x-terminal-emulator 的 Debian 终端模拟器,因为其中许多不支持 XSendEvents 资源。默认情况下,clustersh 将调用 xterm。要更改此设置,请创建或修改您的配置文件以包含以下行:

    terminal = /path/to/my/favorite/terminal-emulator

请注意,此终端仿真器必须接受“-xrm”命令行开关来设置 XTerm.VT100.allowSendEvents:true (或执行相同操作的操作)。如果您的终端模拟器通过不同的开关提供等效功能,或者隐式提供它,则可以使用配置文件中的参数“terminal_allow_send_events”进行设置。

如果您在使 clustersh 与 uxterm 配合使用时遇到问题,您应该从配置文件中删除“terminal_allow_send_events”选项,或者将该值更新为:

  UXTerm.VT100.allowSendEvents:true

或者简单地:

  *.VT100.allowSendEvents:true

旧版本的 clustersh 会创建 .csshrc 文件,并将类设置为“XTerm”,这会阻止 uxterm 接收事件。

终端模拟器还必须接受:

    -e <command>
    -font <font>
     System-wide configure changes can be made by editing /etc/csshrc.

Debian 终端模拟器软件包经过测试,已知不能与 clustersh 一起使用:


(请直接向维护人员或通过错误跟踪系统发送更新)

gnome 终端 konsole kterm xvt xfce4 终端 mlterm

Debian 终端模拟器软件包经过测试并相信可以工作:


xterm rxvt rxvt-beta aterm(仅在 ~/.clusterssh/config 中使用“terminal_allow_send_events =”) wterm(仅在 ~/.clusterssh/config 中使用“terminal_allow_send_events =”) pterm(尽管在显示任何输出之前需要输入焦点) eterm(尽管它不使用 -font 开关)

请注意,像 lxterm 和 uxterm 这样立即进入后台的 xterm 包装器将不起作用。

如果您使用脚本生成终端,请确保它接受 $* 作为参数,并且它本身不会后台运行。

答案2

似乎terminator不接受csshs (默认或硬连线)参数。与其尝试改变这些,不如为终结者启动创建一个包装器:

cat > /usr/bin/start_terminator.sh
#!/bin/bash
# debug info: dump parameters
echo "start_terminator.sh called with paremeters: ${@}" > /tmp/start_terminator.sh.cmdline
# now start terminator avoiding invalid parameters given by cssh
exec /usr/bin/terminator
^D

(^D是Ctrl+D结束键盘输入和cat命令),然后

chmod 755 /usr/bin/start_terminator.sh

并将中的替换terminal=/usr/bin/terminator为.如果终止符在此更改后未启动,请查看我们的调试输出,以了解在终止符时是否需要传递某些参数。terminal=/usr/bin/start_terminator.sh~/.clusterssh/config/tmp/start_terminator.sh.cmdline/usr/bin/terminatorexec

答案3

根据manual for cssh它有这样的说法:

--tile,-g|--no-tile,-G 启用|禁用窗口平铺(覆盖配置文件)

话虽如此,我建议禁用该window tiling选项,然后检查manual for terminator关于窗户平铺有这样的说法:

--geometry=GEOMETRY 指定终结者窗口的首选大小和位置;参见 x(7)。

似乎需要一些常规配置选项来切换终端cssh

相关内容