Wie gesagt, wollte ich gerade wieder losarbeiten und hatte entsprechend viele Fenster offen sowie ein VPN und zwei SSH-Sitzungen laufen. "Viele Fenster offen?" höre ich Euch sagen, "Das habe ich auch, wenn der Tag lang ist." Aber es geht nicht um die bloße Anzahl. Der Zustand der Arbeitsoberfläche enthält all die kleinen Hinweise, die sich bei kontinuierlicher Arbeitsweise ergeben, um eben diese langfristig zu ermöglichen. Hatte mich gerade wer gefragt, wie schwer es wäre, diese oder jene Webseite "schnell zu bauen", bringt mich danach das simple Drücken von Alt+Tab wieder in den vorherigen Gedanken zurück. Und genau das ist es, was einem so erbarmungslos durch einen Neustart genommen ist. Hmm, vielleicht sollte ich mich mal nach Sitzungsspeichern umsehen...
Was ist Synergy?
Worum geht's eigentlich? Synergy ist ein phantastisches input device sharing tool, d.h. ich kann mit einem Satz Tastatur und Maus alle meine Rechner am Schreibtisch - drei Maschinen, auf denen zwei bis drei verschiedene Betriebssysteme laufen - bedienen und das bedeutet, es ist viel mehr Platz, um endlos Papier zu verteilen.Synergy läuft auf Linux, Windows und Mac und ist kostenlos, bittet aber um Spenden. Ich rate dazu, das tool erstmal auszuprobieren und wenn man es nach ein paar Monaten noch benutzt, kann man mal bilanzieren und sich beantworten, wieviel Zeit und Streß man sich gespart hat (oder auch nicht) und entsprechend spenden (oder auch nicht).
Zur Einrichtung installiert man das Programm in derselben Version und der jeweiligen Architektur entsprechend auf allen gewünschten Rechnern (eines LANs), sucht sich einen von diesen als server-Rechner aus, startet das Programm überall, ordnet auf dem server die Rechner virtuell nebeneinander oder übereinander an und verbindet die client-Rechner mit dem server. Fertig.
Ich bin im prinzip so begeistert, daß ich mich zur (geringfügigen) finanziellen Unterstützung des Projektes überredet habe.
Ein, nicht immer ganz flüssiges, aber trotzdem sehr praktischen feature ist die Übertragung von Zwischenspeichern. Texte, die man auf einem der Rechner per Strg+C in den Zwischenspeicher kopiert, kann man auf einen anderen Rechner per Strg+V einfügen.
Übrigens werden die Eingabegeräte der clients nicht einfach lahmgelegt. Trägt man einen client laptop mal von der Haupttastatur weg, kann man einfach am client weitertippen.
Sticky Keys
Ganz streßfrei ist Synergy allerdings nicht, sonst wäre es nicht zu diesen Zeilen gekommen. Sporadisch und unvermittelt tritt bei mir das Problem auf, daß sich einer der client-Rechner einbildet, eine der Metatasten wäre gedrückt. Es ist nicht konsistent dieselbe Taste und das Problem tritt immer erst nach einer ganzen Weile auf, d.h. im Abstand von Tagen oder Wochen.Drückt man die "hängende" Taste, so springt das Problem manchmal zu einer anderen Taste. Ich denke, die Problemtasten beschränken sich auf:
Capslock, Strg_L/Ctrl_L, Strg_R/Ctrl_R, Shift_R, Shift_L, Alt_R, AltGr/Alt_R, Menu (quasi die Rechtsklicktaste).
Symptome des Problems (bei Ubuntu 12.04) beinhalten
- die Unmöglichkeit, KeyEvents von Tasten in Verbindung mit Shift auszulösen (?),
- die Unmöglichkeit, KeyEvents von Tasten ohne Verbindung mit Shift auszulösen (Shift down?),
- Flimmern der Fenstermenüleiste, da der WindowManager meint, Tastaturkürzel zu empfangen (Alt down),
- Verschieben von Fenstern durch DragEvents (Alt down) und
- maßloses Markieren durch DragEvents der Maus (Strg/Ctrl down).
Kapitulation
Um die Problemtaste weiterspringen zu lassen, muß man ab und zu beide Tasten einer Art gleichzeitig dürcken, zum Beispiel beide Shift-Tasten. Landet man in dem Zustand, daß AltGr/Alt_L als gedrückt gilt, so kann man wenigstens bei tatsächlich gedrückter AltGr/Alt_L-Taste alle Klickaktionen durchführen, wie etwa Fenster schließen, Dateien speichern (nicht jedoch den Namen ändern) und den Neustart initiieren.Dies war bisher die einzige und dem langen Drücken der Power-Taste noch vorzuziehende Methode für mich, das System wieder in einen nutzbaren Zustand zu versetzen.
Intuition/Haltlose Gerüchte
Ich habe das Gefühl, daß sticky keys nur auftreten, nachdem die client-Maschine wieder aus dem sleep mode erwacht. Zudem vermute ich, daß das Laden von einem oder mehreren Firefox-Profilen vielleicht zum Auftauchen des Problems beiträgt.Gelöst(?)
Als nun also das Problem wieder auftrat, brachte ich mal wieder genug Energie auf, um dieses immerhin schon seit mehreren Jahren bekannte Problem zu erforschen und habe nach einfachen InputEvent listening devices gesucht, also Programmen, die mir mitteilen, wenn zum Beispiel ein KeyEvent (per Tastatur) oder MouseEvent (per Maus) ausgelöst wird. So stieß ich auf xev, einen event listener für X-Systeme wie zum Beispiel Ubuntu.xev wies mich sofort nach dem Starten (mühsames Zusammenkopieren der drei Buchstaben und von Return in einen Terminal) darauf hin, daß unentwegt Alt_L aka AltGr gedrückt wurde, auch ohne einen Finger an irgendeiner Taste. Da man ja lösungsorientiert denken soll,verstand ich die Angaben einfach mal als Aufforderungen und drückte, nach und nach wasauchimmer xev mir als Taste in den Terminal warf, ab und zu auch mit der zugehörigen Zwillingstaste zusammen und manchmal gedankenverloren unterbrochen durch Drücken auch noch nicht genannter Tasten wie Capslock und Menu (Taste mit dem Symbol eines Drop-Down-Menüs). Auf diese Weise änderten sich die angegebenen KeyEvents und nach weniger als drei Minuten hatten sich plötzlich alle sticky keys gelöst und ich konnte wieder normal tippen auch ohne Neustart.
Ich weiß nicht, ob es zur Lösung beigetragen hat, daß ich zwischendurch die meisten Anwendungen (z.B. alle Firefox-Fenster) geschlossen habe. Das einfache Weiterarbeiten hatte sich damit jedenfalls schon erledigt.
Vorbereitung
Um beim nächten Mal besser reagieren zu können, habe ich mir auf dem Desktop ein Verzeichnis cd-xev angelegt und die ausführbare Datei terminal-vom-Desktop:#!/bin/bash cd cd-xev /usr/bin/gnome-terminal
Wenn ich die Datei ausführe, öffnet sie einen bash-Terminal vom Verzeichnis cd-xev aus, wodurch ich mir einfach per Maus das Kommando xev zusammenklicken kann, um dann wie oben beschrieben die Lösung nochmal zu versuchen.
Synergy-Hinweise
Seit irgendwann kann Synergy nicht mehr mit client-Rechnern umgehen, deren gesendeter Name mit einer Nummer beginnen. Sinnvollerweise kann man im Synergy des clients den Anmeldenamen anpassen.Beim Rechnerwechesel kann es zu Problemen kommen, wenn man noch Metatasten drückt, wann man also zum Beispiel bei gedrückter Taste Strg den Mauszeiger zu einem anderen Rechner zieht. Ich rate entsprechend davon ab.
Ich hoffe, das hilft.
English (short)
Synergy Sticky Keys
Client machines in a Synergy setup may experience sticky key, i.e. even though no key is touched the machine constantly gets KeyEvents from one ofCapslock, Strg_L/Ctrl_L, Strg_R/Ctrl_R, Shift_R, Shift_L, Alt_R, AltGr/Alt_R, Menu (basically the right-click key, has drop-down menu symbol).
Symptoms (on Ubuntu 12.04) include:
- impossibility to execute KeyEvents in connection with Shift (?),
- impossibility to execute KeyEvents without connection to Shift (Shift down?),
- flickering window menu bar, since the WindowManager "receives" shortcuts (Alt down),
- moving windows on DragEvents (Alt down) and
- greedy marking on DragEvents (Strg/Ctrl down).
Solved(?)
Run xev, an event listener for X systems like Ubuntu. Keep pressing the key xev reports as being pressed already. The key that's perceived as constantly pressed should change. It may be necessary to press the meta key's twin key as well at the same time. From time to time also press those meta keys that haven't appeared yet, e.g. Capslock und Menu.When my machine normalized its key events I had also closed most of my applications, specifically all Firefox windows. So this may also have had an effect.
Prepare
When this started today I had already a hard time running xev, since I had to find and mark the required letters with the mouse and paste them into a terminal as well as an easier to find Return/linebreak.In order to react in an easier fashion the next time the problem occurs I created a directory cd-xev on my Desktop and an executable file terminal-from-Desktop:
#!/bin/bash cd cd-xev /usr/bin/gnome-terminal
I hope this will help.


