Podsumowanie pytań: Chcę, aby jeden z moich przycisków myszy został zarejestrowany jako lewy przycisk Windows Super_Ldo X11.
W moim menedżerze okien mogę przesuwać okna, przytrzymując „lewy przycisk Windows” (Left Super) i przeciągając okno lewym przyciskiem myszy. Chcę to zrobić bez dotykania klawiatury, więc chcę zmapować lewy klawisz Super do przycisku myszy 11, w ten sposób mogę przytrzymać przycisk myszy 11 i kliknąć + przeciągnąć okno.
Najbardziej oczywistym rozwiązaniem jest użycie xbindkeys i xte w ten sposób ( .xbindkeysrc
):
"xte 'keydown Super_L'"
b:11
"xte 'keyup Super_L'"
b:11 + release
Działa to tak:
- Kiedy naciskam przycisk myszy 11, Super_Ljest również wciśnięty
- Po zwolnieniu przycisku myszy 11 Super_Lzostaje zwolniony
Ale jest problem: nie mogę przenosić okien za pomocą Super_L+, Mouse1jeśli przytrzymuję również inny przycisk myszy, np. Przycisk myszy 11. Używając powyższego rozwiązania, przycisk myszy 11 nadal jest rejestrowany jako wciśnięty i zwolniony, a więc żaden z działają operacje menedżera okien.
Próbowałem tego przy użyciu zarówno Cinnamon, jak i Awesome WM, i absolutnie żadna z Super_Lkombinacji klawiszy nie działa, gdy przycisk myszy 10 lub 11 jest wciśnięty.
A hack
Obecnie pracuję nad tym problemem, powodując, że kliknięcie myszą 11 przytrzymuje Super_Lprzycisk przez określony czas. W ten sposób mogę kliknąć przycisk myszy, a następnie przeciągać różne rzeczy przez krótki czas:
"xte 'keydown Super_L' 'usleep 250000' 'keyup Super_L'"
b:11
Kolejna próba
Zgodnie z sugestią totti wypróbowałem tę xbindkeys
konfigurację:
"xte 'mouseup 10' 'keydown Super_L'"
b:10
"xte 'keyup Super_L'"
b:10 + Release
To nie działa Wygląda na to, że Super_Lklawisz jest przytrzymywany, ponieważ jak tylko zwolnię przycisk 10, pozostaje on wciśnięty na zawsze (dopóki nie Super_Lnacisnę ponownie klawisza na klawiaturze), ale przycisk myszy jest nadal rejestrowany, ponieważ nie mogę kliknąć i przeciągnąć okna . Nie sądzę, że będę w stanie sprawić, by ta praca działała przy użyciu xbindkeys
i xte
.