web-dev-qa-db-ja.com

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はいくつかのパラメーターをxtermに渡していますが、terminatorはこれを認識しません。

この問題を解決するにはどうすればよいですか?

6
Martin Vegter

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

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


端末エミュレータ

Clustersshでは、xSendEventsリソースをサポートしていないため、x-terminal-emulatorを提供するDebianターミナルエミュレーターの使用のみを許可していません。デフォルトでは、clustersshはxtermを呼び出します。これを変更するには、次の行を含むように構成ファイルを作成または変更します。

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

このターミナルエミュレータは、「-xrm」コマンドラインスイッチを受け入れてXTerm.VT100.allowSendEvents:true(または同じことを行う何か)を設定する必要があることに注意してください。端末エミュレータが別のスイッチで同等の機能を提供する場合、または暗黙的に提供する場合は、設定ファイルのパラメータ「terminal_allow_send_events」でこれを設定できます。

Clustersshがuxtermで機能しない場合は、設定ファイルから「terminal_allow_send_events」オプションを削除するか、値を次のように更新する必要があります。

  UXTerm.VT100.allowSendEvents:true

または単に:

  *.VT100.allowSendEvents:true

Clustersshの古いバージョンでは、クラスが "XTerm"に設定された.csshrcファイルが作成され、uxtermがイベントを受信できなくなりました。

端末エミュレーターは以下も受け入れる必要があります。

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

テスト済みで、clustersshで動作しないことがわかっているDebianターミナルエミュレータパッケージ:


(メンテナに直接、またはバグ追跡システムを介して更新を送信してください)

gnome-terminal konsole kterm xvt xfce4-terminal 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ラッパーは機能しないことに注意してください。

スクリプトを使用して端末を起動する場合は、スクリプトが引数として$ *を取り、それ自体がバックグラウンドにならないようにしてください。

3
hildred

terminatorcsshs(デフォルトまたはハードワイヤード)パラメータを受け付けないようです。これらを変更しようとする代わりに、ターミネーター起動用のラッパーを作成するのはどうでしょうか。

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/terminatorterminal=/usr/bin/start_terminator.sh~/.clusterssh/configに置き換えます。この変更後にターミネーターが起動しない場合は、/tmp/start_terminator.sh.cmdlineのデバッグ出力を調べて、execingするときに、一部のパラメーターを/usr/bin/terminatorに渡す必要があるかどうかを確認してください。

2
Ned64

による - manual for cssh これは言うことを持っています:

--tile、-g | --no-tile、-G有効|ウィンドウタイリングを無効にする(設定ファイルを上書きする)

そうは言っても、私はwindow tilingオプションを確認してから manual for terminator これはウィンドウのタイリングに関して言うべきことです:

--geometry = GEOMETRYターミネーターのウィンドウの適切なサイズと位置を指定します。 x(7)を参照してください。

csshの端末を切り替えるには、いくつかの一般的な構成オプションが必要になるようです。

0
jas-