cssh:端末をxtermからターミネータに変更する

cssh:端末をxtermからターミネータに変更する

基本エミュレータの代わりにターミナルエミュレータをcssh使用したいと思います。次の行を変更しました。terminatorxterm~/.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いくつかのパラメータがに渡されていますが認識されませんxtermterminator

この問題をどのように解決できますか?

答え1

ターミネーターが合成イベントを受け入れるかどうか疑わしく、ウィンドウモデルごとに複数の端末が互換性がないと思うので、動作しない可能性があると思います。しかし、最高のソースを試したい場合は、README.Debian.gzです。 Debianパッケージから。以下に関連部分を含めましたが、ターミネータのグループ化オプションを使用する方がはるかに簡単になる可能性があります。

Super + g:端末の1つに送信された入力がすべての端末に送信されるように、すべての端末をグループ化します。(マンページより)


端末エミュレータ

Clusterssh は、x-terminal-emulator を提供する Debian 端末エミュレータの使用を許可しなくなりました。その多くはXSendEventsリソースをサポートしていないためです。デフォルトでは、Clustersh は xterm を呼び出します。この設定を変更するには、次の行を含むように構成ファイルを作成または変更します。

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

このターミナルエミュレータは、XTerm.VT100.allowSendEvents:true(または同じことを行う項目)を設定するには、「-xrm」コマンドラインスイッチを許可する必要があります。ターミナルエミュレータが他のスイッチを介して同等の機能を提供または暗黙的に提供する場合は、設定ファイルの "terminal_allow_send_events"パラメータを使用して設定できます。

uxtermでClustershを使用できない場合は、設定ファイルから "terminal_allow_send_events"オプションを削除するか、次のように値を更新する必要があります。

  UXTerm.VT100.allowSendEvents:true

または簡単に:

  *.VT100.allowSendEvents:true

以前のバージョンのClustershは、クラスが "XTerm"に設定された.csshrcファイルを生成し、uxtermがイベントを受け取らないようにします。

ターミナルエミュレータは以下も許可する必要があります。

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

Debian端末エミュレータパッケージはテストされており、Clustershでは動作しないことが知られています。


(更新内容は管理者に直接送信するか、バグ追跡システムを介して送信してください)

GNOME ターミナルコンソール 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

s(デフォルトまたはハードワイヤー)パラメーターをterminator許可していないようです。csshこれを変更しようとする代わりに、終了者を起動するためのラッパーを作成します。

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

関連情報