blog · git · desktop · images · contact & privacy · gopher


In mehrere X11-Fenster gleichzeitig tippen

Cluster SSH ist wohl den meisten Leuten bekannt. Kurze Funktionsbeschreibung: Man kann damit mehrere SSH-Verbindungen zu unterschiedlichen Hosts öffnen und dann auf allen gleichzeitig tippen.

Der Haken an der Sache ist, dass man das vorher wissen muss. Eine bereits existierende SSH-Verbindung kann man nicht einfach „konvertieren“ und mit Cluster SSH weiterbenutzen. Ich schätze, dass das einer der Gründe ist, weshalb manche Terminalemulatoren, wie zum Beispiel Terminator, ein ähnliches Feature haben. Das sind normale Terminals, man kann aber – zu jedem Zeitpunkt – Terminalfenster gruppieren und dann gleichzeitig in sie reintippen.

Was mich daran immer noch stört, ist, dass das eben nur mit Terminator geht. Kann ich nicht weiterhin mein jetziges Terminal benutzen? Gibt es für das Problem keine allgemeinere Lösung?

Vielleicht gab es irgendwann mal eine. Ein Tool namens keyboardcast. Es wurde um 2005 herum geschrieben, heute finde ich aber nur noch Quellcode von Ubuntu. Die eigentliche Projekthomepage scheint tot zu sein.

Nagut, dann muss ich das eben selbst machen. „Wie schwer kann’s schon sein?“

Ergebnis:

Dieses Tool weiß jetzt gar nichts von Terminals oder SSH. Es leitet einfach nur X11-Tastendrücke an andere Fenster weiter. Ein Effekt davon ist dann, dass es ein recht kurzes C-Programm von ungefähr 300 Zeilen ist.

Nach dem Start ist das Programm im Auswahlmodus. Man kann andere Fenster zum Auswählen anklicken. Ein Rechtsklick beendet den Auswahlmodus. Tippt man nun – während multipass den Fensterfokus hat –, dann erscheint die Eingabe in allen ausgewählten Fenstern gleichzeitig.

ssh

Aufgrund des generischen Ansatzes kann man auch unterschiedliche Clients mischen …

mixed clients

… wobei der gängigste Anwendungsfall vermutlich weiterhin „viele Terminals mit SSH“ sein wird.

Und so sieht es bewegt aus: Kurzer Demo-Screencast.

– Computerlogbuch der Enterprise, Nachtrag. Nachdem ich mein Tool (und diesen Blogpost) fertig hatte, bin ich auf „xduplic-copier“ gestoßen, welches Teil der chiark-utils ist und übrigens schon 2002 – also mittlerweile vor satten 15 Jahren – geschrieben wurde. Es sieht meinem Tool ziemlich ähnlich, aber ich hab’s nicht zum Laufen bekommen. Schickt einfach keine Tastendrücke weiter. Debugging habe ich aber nicht betrieben, weil mir zum Beispiel eine Anzeige der ausgewählten Fenstertitel fehlt – das Tool zeigt nur an, „fünf Clients ausgewählt“. Welche denn? :-) Allerdings ist die Art und Weise, wie es Fenster selektiert, deutlich besser. Das habe ich übernommen.