cssh: altera o terminal do xterm para o terminador

8

Gostaria que cssh usasse o emulador de terminal terminator , em vez do padrão xterm . Em ~/.clusterssh/config alterei a seguinte linha:

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

Mas quando começo a cssh , recebo o seguinte erro:

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

Aparentemente, cssh está passando alguns parâmetros para xterm , que terminator não reconhece.

Como posso resolver este problema?

    
por Martin Vegter 29.05.2015 / 10:11

3 respostas

3

Eu suspeito que você talvez não consiga que isso funcione, pois duvido que o Terminator aceite eventos sintéticos e eu não acho que o terminal múltiplo por modelo de janela seja compatível, mas se você quiser tentar a melhor fonte é o README. Debian.gz do pacote debian. Eu incluí a parte relevante abaixo, mas provavelmente seria muito mais simples usar apenas a opção de agrupamento do Terminator

Super+g: Group all terminals so that any input sent to one of them, goes to all of them. (from the man page)

TERMINAL EMULATORS

Clusterssh no longer allows the use of just any Debian terminal emulator that provides x-terminal-emulator, since a number of them don't support the XSendEvents resource. By default, clusterssh will invoke xterm. To change this, create or modify your config file to contain the line:

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

Note that this terminal emulator must accept the "-xrm" command line switch to set XTerm.VT100.allowSendEvents:true (or something that does the same thing). If your terminal emulator provides equivalent functionality with a different switch, or provides it implicitly, you can set this with the parameter "terminal_allow_send_events" in the config file.

If you are having trouble getting clusterssh to work with uxterm, you should either delete the "terminal_allow_send_events" option from your config file, or update the value to:

  UXTerm.VT100.allowSendEvents:true

or simply:

  *.VT100.allowSendEvents:true

Older versions of clusterssh would create the .csshrc file with the class set to "XTerm" which prevents the uxterm from receiving events.

The terminal emulator must also accept:

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

Debian terminal emulator packages tested and known NOT to work with clusterssh:


(please send updates either directly to the maintainer or via the bug tracking system)

gnome-terminal konsole kterm xvt xfce4-terminal mlterm

Debian terminal emulator packages tested and believed to work:


xterm rxvt rxvt-beta aterm (only with "terminal_allow_send_events =" in ~/.clusterssh/config) wterm (only with "terminal_allow_send_events =" in ~/.clusterssh/config) pterm (although it requires input focus before any output is displayed) eterm (although it doesn't use the -font switch)

Note that xterm-wrappers like lxterm and uxterm that immediately background themselves will NOT work.

If you use a script to spawn your terminals, make sure that it takes takes $* as an argument, and that it doesn't background itself.

    
por 03.06.2015 / 20:53
2

Parece que terminator não aceita os parâmetros cssh s (padrão ou hard-wired). Em vez de tentar alterá-los, que tal criar um wrapper para a inicialização do terminador:

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 para finalizar a entrada do teclado e o comando cat ), então

chmod 755 /usr/bin/start_terminator.sh

e substitua o terminal=/usr/bin/terminator por terminal=/usr/bin/start_terminator.sh no seu ~/.clusterssh/config . Se o terminador não iniciar após essa mudança, por favor, olhe para nossa saída de depuração em /tmp/start_terminator.sh.cmdline para ver se alguns dos parâmetros precisam ser passados para /usr/bin/terminator quando exec ing.

    
por 02.06.2015 / 12:10
0

De acordo com o manual for cssh , tem isto a dizer:

--tile,-g|--no-tile,-G Enable|Disable window tiling (overriding the config file)

Com isso dito, eu proporia desativar a opção window tiling e, em seguida, revisar o manual for terminator que tem isto a dizer em relação às janelas:

--geometry=GEOMETRY Specifies the preferred size and position of Terminator's window; see x(7).

Parece que algumas opções gerais de configuração serão necessárias para alternar os terminais para cssh .

    
por 31.05.2015 / 16:23