MacBook Pro firmy Apple ma niewielkie opóźnienie w klawiszu Caps Lock . Oznacza to, że klawisz Caps Lock należy przytrzymać nieco dłużej niż zwykle, aby zarejestrować naciśnięcie klawisza wymagane do włączenia blokady Caps.
To jest bardzo denerwujące. Czy ktoś wie, jak temu zapobiec?
(Powyżej skopiowano z stackoverflow, ponieważ został tam zamknięty jako „nie na temat”.)
W celu dalszego rozwinięcia: Apple uważa tę funkcję za przydatną, a artykuł z bazy wiedzy nie ujawnia, jak wyłączyć to opóźnienie.
Mam jednak powody, by sądzić, że jest to możliwe.
W szczególności zauważyłem, że przynajmniej z mojego doświadczenia, jeśli ponownie mapujesz klawisz Caps-Lock w Mac OS X (w Preferencjach systemowych .. Klawiatura .. Klawisze modyfikujące) i np. Mapujesz go na Control, wtedy opóźnienie znika podczas gdy jestem zalogowany do Mac OS X.
Mój problem polega na tym, że opóźnienie pozostaje, gdy uruchamiam system Ubuntu Linux, i w tym kontekście, nawet kiedy ponownie przypisuję klawisz Caps Lock do Control, opóźnienie jest nadal obecne.
Pytanie brzmi zatem: w jaki sposób Apple wyłącza opóźnienie, a co ważniejsze, w jaki sposób można replikować te działania w kontekście instalacji systemu Linux na laptopie?
Aktualizacja: W superużytkowniku jest wątek, który może zapewnić obejścia. Nie wypróbowałem jeszcze tam sugestii (mianowicie: (1) przełączanie CapsLock-NoAction wyłączanie / włączanie i (2) aktualizacja oprogramowania układowego). Nie mogę stwierdzić z kontekstu tego wątku, czy obejścia zostały przetestowane na instalacji Ubuntu.
Odpowiedzi:
Wymyśliłem, jak to zrobić. Krótko mówiąc, musisz wysłać „Raport funkcji” składający się z bajtów
0x9, 0x0, 0x0, 0x0
do odpowiedniego urządzenia hidraw jako root.Możesz znaleźć odpowiednie urządzenie hidraw za pomocą tego polecenia:
Kod do wysłania pakietu kontroli magii znajduje się poniżej. Kompiluje się z gcc, przyjmuje jako parametr parametr urządzenia hidraw. Cały przepływ to:
disable-capslock-delay.c
gcc -o disable-capslock-delay disable-capslock-delay.c
HIDDEVICE=$(dmesg | grep Apple | grep Keyboard | grep input0 | tail -1 | sed -e 's/.*hidraw\([[:digit:]]\+\).*/\/dev\/hidraw\1/')
sudo ./disable-capslock-delay $HIDDEVICE
Kroki 3 i 4 należy wykonać przy każdym ponownym uruchomieniu komputera (lub odłączeniu i ponownym podłączeniu klawiatury); możesz umieścić je w
/etc/rc.local
(lub odpowiedniku swojej dystrybucji), aby wykonać je przy starcie systemu (sudo
w tym przypadku nie potrzebujesz ; możesz chcieć przenieść skompilowany plik binarny/usr/local/sbin/
lub coś takiego).Przeprowadziłem kilka kontroli bezpieczeństwa dla identyfikatora dostawcy, identyfikatora urządzenia i długości deskryptora raportu. Być może będziesz musiał zmienić dwa ostatnie, jeśli twój model różni się od mojego.
źródło
Oto poprawka dla systemu macOS Sierra.
Przejdź do Preferencji systemowych > Dostępność
Gdy okno dostępności jest otwarte - w lewej części okna - kliknij Klawiatura
Następnie będą 2 opcje - dla klawiszy lepkich i dla wolnych klawiszy - kliknij pole obok wolnych klawiszy, aby je włączyć - następnie kliknij
Options...
przycisk - nowe okno wyświetli suwak, aby zmienić opóźnienie akceptacji - domyślnie to jest w środku. Przesuń przycisk do końca w lewo, aby był to najkrótszy możliwy czas.Teraz powinno to zostać naprawione. Nie eksperymentowałem, aby sprawdzić, czy poprawka pozostanie po ponownym uruchomieniu, ale mam nadzieję, że tak się stanie.
źródło
EDYCJA: To wydaje się być popularnym pytaniem dla użytkowników, którzy chcą usunąć opóźnienie na klawiszu Caps Lock w OS X. Od OS X Mojave,
Od El Capitan i wcześniejszych
Są to dziwne poprawki i nasuwa się pytanie, dlaczego nie zapewniają opcji usunięcia opóźnienia, gdy ta poprawka opiera się wyłącznie na oprogramowaniu. Ale hej, przynajmniej istnieje sposób!
Happy caping.
źródło
Przejdź do preferencji systemowych> dostępność> klawiatura> włącz wolne klawisze> zmień opóźnienie akceptacji aż do lewej (krótkie)! To zadziałało dla mnie.
źródło
Wiem na pewno, że opóźnienie Caps Lock jest funkcją oprogramowania układowego samej klawiatury - możesz więc mieć pewność, że opóźnienie ma miejsce bez względu na to, jaki system operacyjny obsługuje obecnie klawiatura.
Wiem również, że Apple nie oferuje ścieżki flashowania oprogramowania układowego na niższy poziom, więc wszyscy będziemy musieli poczekać, aż ktoś z wystarczającą ilością doświadczenia w blogowaniu narzędzi i kroków, które wykonali, aby nakłonić sprzęt do załadowania starszego oprogramowania (lub zapewnić coś, co wygląda na nowsze oprogramowanie układowe, które regresuje opóźnienie wcześniejszego działania).
Przepraszam za brak odpowiedzi, ale ścieżka do osiągnięcia tego celu jest dobrze oświetlona i może pomóc innym podjąć działania (wybierając starszą klawiaturę - lub powstrzymać się od aktualizacji oprogramowania układowego) w międzyczasie, podczas gdy czekamy na prawdziwe rozwiązanie do wdrożenia krótki lub brak timera na klawiszu Caps Lock.
źródło
Rozwiązanie „przełączanie CapsLock-NoAction off / on”, do którego odnosi się OP, działa zarówno na mojej przewodowej klawiaturze Mac, jak i na mojej MacBookPro. Bradley mówi, że działa to tylko na Yosemite, ale z powodzeniem użyłem go na Snow Leopard (10.6.8) i Mavericks (10.9.5). Przetestowałem to również w maszynie wirtualnej Kubuntu, a Caps Lock działał poprawnie w maszynie wirtualnej.
Modifier Keys...
:No Action
i kliknijOK
:Modifier Keys...
ponownie, ustaw klawisz Caps Lock naCaps Lock
i kliknijOK
:Działa to tylko do następnego ponownego uruchomienia.
źródło