Synergie programmgesteuert steuern

412
laur

Ich versuche, switchInDirection () von einem Fenstermanager (dwm, in c geschrieben) umzuschalten . Da es scheinbar keine Möglichkeit gibt, Synergie-Aktionen von der Kommandozeile aus zu steuern, habe ich versucht, entsprechende Tastenkombinationen aus dem Wm auszulösen.

Szenario: Bei einem super+,(Komma) -Ereignis, das von der WM erfasst wird, sollte ein weiterer Keycombo ausgelöst werden, auf den Synergien warten. Aus irgendeinem Grund XTestFakeKeyEventfunktionierte die xlib-Funktion überhaupt nicht, und das Simulieren von Tastendruck mit XSendEventfunktioniert nicht mit Modifikatoren. Daher musste ich einen Systemaufruf von xdotool ausführen:

xdotool keyup comma key control+alt+shift+F11 // note the required comma key up; 

Es scheint als POC zu funktionieren, aber irgendwann führt es zu Synergieeffekten. Beachten Sie, dass das Auslösen desselben Keycombo ohne xdotool nicht zu einem Segfault führt.

Welche Optionen habe ich, wenn überhaupt?

Edit: Eine naheliegende Lösung wäre, das super+,Ereignis in erster Linie mit Synergien zu hören und die Logik dort zu handhaben (ob Bildschirm wechseln oder ein anderes Keycombo an dwm senden). Dies sollte funktionieren, impliziert jedoch unterschiedliche dwm-Konfigurationen für Server und Client, da super+,dwm immer noch im Client gehandhabt werden sollte (andernfalls würde die Steuerung des Clients über seine native Tastatur nicht wie erwartet funktionieren).

1

0 Antworten auf die Frage