Czy mogę włączyć Bounce Keys tylko dla niektórych kluczy?

8

Na moim laptopie mam ciągły problem, w którym powtarzane są naciśnięcia klawiszy na spacji. Po wielu wymianach, a także próbowaniu wielu systemów operacyjnych, uznałem, że problem dotyczy sprzętu, a nie oprogramowania.

Na szczęście dowiedziałem się, że Ubuntu ma funkcję znaną jako odbijanie klawiszy, która pozwoli mi przeciwdziałać temu problemowi, ponieważ wielokrotne naciśnięcia klawiszy będą filtrowane.

Jednak włączenie rozwiązania dla wszystkich kluczy czasami filtruje klucze, których nie chcę filtrować. Na przykład, gdy typ cześć , często dwa nacisnąć L y w krótkich odstępach czasu, jednak niekiedy jeden z L y odsącza się, które mogą być bardzo uciążliwe. Wiem, że nigdy nie będę musiał wciskać klawisza spacji dwa razy w tak szybkim odstępie czasu, a ponieważ mam tylko problemy ze spacją, chcę tylko włączyć klawisze odbijania na spacji.

Czy można włączyć tylko klawisze odrzuceń na spacji?

Faiz Saleem
źródło
Powtarzane ile razy? Czy to się zdarza za każdym razem?
daltonfury42
Nie zdarza się to za każdym razem, ale wystarczy być dość irytującym. Powiedziałbym, że dzieje się to około trzy razy w akapicie. Powracanie i edytowanie obcych przestrzeni może być bardzo irytujące.
Faiz Saleem
1
Przestrzeń zwykle powtarza się około dwa razy. Jeśli zobaczysz źródło mojego oryginalnego postu, powinieneś łatwo zobaczyć powtarzające się spacje, ponieważ celowo je zostawiłem.
Faiz Saleem
I zostały zaktualizowane moją odpowiedź, ale zanim go czytać, czytać przez to .
daltonfury42
Dzięki, spróbuję później - byłem bardzo zajęty, więc nie miałem okazji.
Faiz Saleem

Odpowiedzi:

3

xset - narzędzie preferencji użytkownika dla X

r to kontrolowanie automatycznego powtarzania.

xset -r 10

wyłączy autorepeat dla klawisza „1”.

xset r 10

włączy autorepeat dla klawisza „1”.

xset r [kod klucza]

w moim przypadku kod dostępu do spacji to 65 sprawdź swój kod: xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'

Jednak jeśli chcesz zmienić szybkość klawiszy, możesz również użyć parametru szybkości.

Dodaj także to polecenie do pliku skryptu uruchamiania sesji.

Tohid Tamboli
źródło
Możesz uzyskać aktualną listę, dla których klucze mają włączoną funkcję autorepeat xset q. Jest to 256-bitowa tablica zrzucona szesnastkowo i dość trudna do odczytania.
Meuh
Na pewno na pewno to spróbuję. Dzięki!
Faiz Saleem
1
Działa dobrze dla mnie. Ciesz się powtórzeniem +100!
Faiz Saleem
4

Znalazłem rozwiązanie dla ciebie, ale nie dotyczy Bounce Keys. To, co robię tutaj, to dezaktywacja klawisza spacji / klawiatury na krótki czas po każdym naciśnięciu spacji. A więc oto:

Używamy xbindkeysdo przechwytywania spacji (w tym przypadku wydania) i xdotoolwstawiania spacji. Zainstaluj je, jeśli nie masz go w systemie:

sudo apt-get install xbindkeys xdotool

Plik konfiguracyjny xbindkeys powinien pojawić się w twoim folderze domowym pod nazwą .xbindkeysrcutworzoną inaczej:

xbindkeys -d > ~/.xbindkeysrc

Skopiuj fragment i wklej go do pliku .xbindkeysrc.

"xdotool key KP_Space; xinput set-int-prop <kbd-id> "Device Enabled" 8 0; sleep .05 ; xinput set-int-prop <kbd-id> "Device Enabled" 8 1"
     m:0x0 + c:65 + Release
    space

Oto <kbd-id>identyfikator klawiatury, który można znaleźć za pomocą xinputpolecenia. Teraz chcesz skonfigurować xbindkeys, aby uruchamiał się przy każdym uruchomieniu komputera.

Otwórz /etc/rc.locali dodaj xbindkeyswcześniej linię exit 0.

Gotowe. Otwórz terminal i wpisz, xbindkeysaby na razie go uruchomić. Sprawdź, czy to działa. Jeśli nie wykrył podwójnych spacji lub znaków po braku spacji, dostosuj odpowiednio delaynasze polecenie ~/.xbindkeysrci uruchom ponownie.

Bibliografia:

daltonfury42
źródło
Miałem kilka problemów z tą odpowiedzią. Polecenie xinput, które połączyłeś , nie wyłącza klawiatury, tylko ekran dotykowy. Próbowałem dostosować polecenie, aby wyłączyć klawiaturę, ale to też nie działało. Poprawna komenda: xinput float 13 ; sleep .1 ; xinput reattach 13 3, co czyni pracę. Jednak samo rozwiązanie nie działa. Kiedy uruchamiam klawisze xbindkeys za pomocą tego polecenia, spacja nie wchodzi już w spację. Wyłącza klawiaturę na krótko, tak jak powinno, ale nie wprowadza się spacji. czy robię coś źle?
Faiz Saleem
Właśnie znalazłem sposób, aby wyłączyć tylko klawisz spacji. To zależy od xmodmap: xmodmap -e 'keycode 65=NoSymbol' ; sleep .1; xmodmap -e 'keycode 65=KP_Space
Faiz Saleem
@FaizSaleem, przykro mi z powodu pierwszego problemu, to był mój błąd. Podałem swój identyfikator klawiatury, który wynosi 10. Możesz go znaleźć, pisząc xinput. Ale nie będziemy tego potrzebować, sam znalazłeś sposób na wyłączenie przestrzeni.
daltonfury42
Co do drugiego problemu, testowałem także tylko wtedy, gdy klawiatura się dezaktywuje. Próbowałem ręcznie wstawić spację xdotool getactivewindow key KP_Space, ale to nie działa.
daltonfury42
xdotool key spaceteż nie działa, a każda inna metoda, którą próbowałem wstawić spację, nie powiodła się.
Faiz Saleem