Czasami, gdy korzystam z synergii między moimi komputerami, gdy korzystam z pełnoekranowego gościa VirtualBox, utknąłem przy włączonych dziwnych modyfikatorach klawiszy. Jeśli istnieją na mojej klawiaturze (jak Shift_L), mogę po prostu stuknąć ją, a ich status zostanie zresetowany i mogę kontynuować pisanie małymi literami. Ale niektóre z nich w ogóle nie są mapowane na klawiaturę (jak ISO_Level3_Shift), więc nie mam możliwości ich wyłączenia!
Jak je zresetować? W tej chwili wszystko, co mogę zrobić, to zrestartować komputer, ale jest to raczej kłopotliwe rozwiązanie.
Wszystko czego chcę to jakiś program, który może sztucznie „stukać” wszystkie możliwe modyfikatory klawiatury, aby ich status został zresetowany. Czy da się to zrobić?
Używam Mint 14 (klon Ubuntu 12.10 Quantal).
źródło
xdotool keyup 204
.DISAPLAY=:1 xmodmap -pk | grep -iP 'alt|meta|super|hyper'
. Musisz zmienić numer wyświetlacza na zepsuty numer wyświetlacza VNC.DISPLAY=:1
powyższy komentarz.xdotool
obsługuje--clearmodifiers
opcję dlakey
/keydown
/keyup
- może nie zadziałało, kiedy ta odpowiedź została napisana? Spodziewam się, żexdotool keyup --clearmodifiers space
to zadziała. (xdotool keyup
wymaga podania klucza; „spacja” jest dowolna).Odkryłem, że w moim systemie opublikowane rozwiązanie obejmujące
xdotool
często nie obejmowało zablokowanego klucza, a działaniesetxkbmap
nie wydawało się nic w moim systemie.Rozwiązaniem, które odkryłem, które do tej pory działało bezbłędnie, jest zastosowanie
x11vnc
. W szczególności używam następującego polecenia:-clear_keys
jest tutaj kluczową częścią. Polecax11vnc
wyczyścić wszystkie naciśnięte klawisze po wyjściu.-timeout 1
każex11vnc
wyjść po 1 sekundzie bez połączeń i-deny_all
upewnia się, że nikt nie może się połączyć w tym oknie.Czasami klucz, który się blokuje, uniemożliwia jakąkolwiek znaczącą interakcję z pulpitem, w którym to przypadku wykonam następujące polecenie poprzez ssh:
źródło
Używam „setxkbmap” bez argumentów. Wygląda na to, że resetuje klawiaturę. Mam w panelu „skrót”, którego mogę używać z myszą, gdy klawiatura jest całkowicie nieczynna.
źródło
x11vnc
Odpowiedź jest pomysłowy, ale w przypadku instalacjix11vnc
tylko dla modyfikatorów rozliczających wydaje się przesadą, oto rozwiązanie Bash że zastosowaniaxmodmap -pm
wyjście „s wydać keyUp do wszystkich znanych modyfikatorów. Konwersja klucza szesnastkowego na dziesiętny zależy od rozszerzenia arytmetycznego Basha.Jeśli uruchamiasz go za pomocą skrótu klawiaturowego,
sleep 1
dobrze byłoby dodać dodanie na początku (aby zwolnić czas na zwolnienie fizycznych kluczy).echo
Na stderr nie jest konieczne, oczywiście; Chciałbym po prostu sprawdzić, czy mój~/.xsession-errors
plik ma takie dane wyjściowe.źródło