Dieser xte
Befehl löst, wenn ich ihn in einem Terminal ausführe, den Expo-Modus aus:
xte 'keydown Super_L' 'key S' 'keyup Super_L'
Wenn ich dies jedoch in meine .xbindkeysrc-Datei lege:
"xte 'keydown Super_L' 'key S' 'keyup Super_L'"
b:11
Wenn ich auf die Schaltfläche klicke, passiert nichts. Mit der folgenden Bindung wird der Buchstabe X in meiner Konsole angezeigt, wenn ich die Taste 11 drücke:
"xte 'key X'"
b:11
Warum funktioniert die Expo-Bindung nicht?
Dies ist die ausführliche Ausgabe von, xbindkeys -n -v
wenn Sie auf Schaltfläche 11 klicken:
Knopfdruck! e.xbutton.button = 11 e.xbutton.state = 16 xte 'keydown Super_L' 'key W' 'keyup Super_L' " m: 0x0 + b: 11 (Maus) habe Bildschirm 0 für Fenster 2bb Starten Sie das Programm mit fork + exec Knopf loslassen! e.xbutton.button = 11 e.xbutton.state = 16
Und nichts passiert. Hat dies etwas mit der Art und Weise zu tun, wie xbindkeys
der Befehl ausgeführt wird? (Fork + Exec-Aufruf)
Versuch Nummer zwei.
expo.sh:
#!/usr/bin/env bash
export DISPLAY=:0
xte 'keydown Super_L' 'key S' 'keyup Super_L'
Durch Ausführen dieses Skripts über die Befehlszeile wird Expo aktiviert. Binden in xbindkeys:
"sh ~/expo.sh"
b:11
Mausklick 11:
Knopfdruck! e.xbutton.button = 11 e.xbutton.state = 16 "sh ~ / expo.sh" m: 0x0 + b: 11 (Maus) habe Bildschirm 0 für Fenster 2bb Starten Sie das Programm mit fork + exec
Nichts passiert!
xorg
shortcut-keys
xbindkeys
xte
Hubro
quelle
quelle
'keydown Super_L' 'keydown S' 'keyup S' 'keyup Super_L'
.Antworten:
Eine andere einfachere Lösung: Anstatt nur "b: 11" in der xbindkeys-Definition zu verwenden, verwenden Sie "b: 11 + release". Es wird warten, bis Sie die Taste loslassen, um den Befehl auszulösen.
Beispiel:
quelle
Das ist sehr seltsam. Es stellt sich heraus, dass
Super+W
nichts passiert , wenn meine Maustaste beim Simulieren des Tastenanschlags immer noch gedrückt (noch nicht losgelassen) wird. Ich weiß nicht, wen ich dafür verantwortlich mache (vielleicht Zimt?). Ich habe es jedoch umgangen, indem ich demxte
Befehl eine kurze Verzögerung hinzugefügt habe :Es wartet nun 0,1 Sekunden, bevor es simuliert
Super+S
. Wenn ich die Maustaste länger als 0,1 Sekunden drücke und halte , passiert nichts.Dies ist eine Umgehungslösung. Ich würde eine richtige Antwort sehr bevorzugen.
quelle
Ich hatte das gleiche Problem.
funktionierte in der Konsole, aber nicht in der xbindkeys-Parameterdatei. Ich habe b durch seinen Keysym-Code geändert, indem ich den Befehl "xev" verwendet habe, um ihn zu erhalten:
Es hat bei mir funktioniert
quelle
Versuchen Sie es mit + Release
Das könnte helfen.
quelle
Bei Verwendung von sxhkcd keymapper tritt ein ähnliches Problem auf. Es stellt sich heraus, dass Ihre tatsächlichen Tastenkombinationen als noch gedrückt erkannt werden.
Es gibt einige Problemumgehungen:
sleep 0.2
vor Ihrem Befehl hinzuAllerdings kann man damit keine Echtzeitaktionen bekommen =)
quelle