To xte
polecenie, gdy uruchomię je w terminalu, uruchamia tryb Expo:
xte 'keydown Super_L' 'key S' 'keyup Super_L'
Jednak po umieszczeniu tego w pliku .xbindkeysrc:
"xte 'keydown Super_L' 'key S' 'keyup Super_L'"
b:11
Nic nie dzieje się po kliknięciu przycisku. Poniższe powiązanie sprawia, że litera X pojawia się w mojej konsoli po naciśnięciu przycisku 11:
"xte 'key X'"
b:11
Dlaczego więc nie działa wiązanie Expo?
Oto pełne wyjście xbindkeys -n -v
po kliknięciu przycisku 11:
Naciśnij przycisk! e.xbutton.button = 11 e.xbutton.state = 16 „xte” keydown Super_L ”klawisz W” „keyup Super_L” ” m: 0x0 + b: 11 (mysz) dostałem ekran 0 dla okna 2bb Uruchom program z wywołaniem fork + exec Zwolnij przycisk! e.xbutton.button = 11 e.xbutton.state = 16
I nic się nie dzieje. Czy to ma coś wspólnego ze sposobem xbindkeys
wykonywania polecenia? (rozwidlenie + wywołanie exec)
Próba numer dwa.
expo.sh:
#!/usr/bin/env bash
export DISPLAY=:0
xte 'keydown Super_L' 'key S' 'keyup Super_L'
Wykonanie tego skryptu z wiersza poleceń aktywuje Expo. Powiązanie w xbindkeys:
"sh ~/expo.sh"
b:11
Kliknięcie przycisku myszy 11:
Naciśnij przycisk! e.xbutton.button = 11 e.xbutton.state = 16 „sh ~ / expo.sh” m: 0x0 + b: 11 (mysz) dostałem ekran 0 dla okna 2bb Uruchom program z wywołaniem fork + exec
Nic się nie dzieje!
xorg
shortcut-keys
xbindkeys
xte
Hubro
źródło
źródło
'keydown Super_L' 'keydown S' 'keyup S' 'keyup Super_L'
.Odpowiedzi:
Inne prostsze rozwiązanie: zamiast używać tylko „b: 11” w definicji xbindkeys, użyj „b: 11 + release”. Będzie czekać, aż zwolnisz przycisk, aby uruchomić polecenie.
Przykład:
źródło
To bardzo dziwne. Okazuje się, że jeśli mój przycisk myszy zostanie naciśnięty (jeszcze nie zwolniony) podczas
Super+W
symulacji naciśnięcia klawisza, nic się nie stanie. Nie wiem za kogo winić (może cynamon?). Pracowałem nad tym, dodając krótkie opóźnienie doxte
polecenia:Teraz czeka 0,1 sekundy przed symulacją
Super+S
. Jeśli przytrzymam przycisk myszy dłużej niż 0,1 sekundy, nic się nie stanie.To jest odpowiedź na obejście. Wolałbym właściwą odpowiedź.
źródło
Napotkałem ten sam problem.
działał w konsoli, ale nie w pliku parametrów xbindkeys. Zmieniłem b przez jego kod klucza, używając polecenia „xev”, aby go uzyskać:
To zadziałało dla mnie
źródło
Wypróbuj z + Release
To może pomóc.
źródło
Mają podobny problem podczas używania keymappera sxhkcd. Okazuje się, że rzeczywiste klawisze skrótów są wykrywane jako nadal naciskane.
Istnieje kilka częściowych obejść:
sleep 0.2
przed swoim poleceniemJednak nie możesz uzyskać akcji w czasie rzeczywistym dzięki temu =)
źródło