Niedawno kupiłem podświetlaną klawiaturę, która została zaprojektowana tak, aby klawisz Scroll Lock był używany do przełączania podświetlenia. Szybko odkryłem, że cynamon nie reaguje prawidłowo po naciśnięciu klawisza Scroll Lock. Początkowo myślałem, że podświetlenie klawiatury to DOA, ponieważ wszystko inne działało od razu po wyjęciu z pudełka. Po ponownym uruchomieniu zauważyłem, że przed uruchomieniem Xorg byłem w stanie z powodzeniem przełączać podświetlenie za pomocą klawisza Scroll Lock. Potem ponownie, po uruchomieniu Xorga (i w konsekwencji cynamonowej sesji), ta funkcja przestała działać.
Aby podświetlenie działało po uruchomieniu Xorg, byłem zmuszony wydać: xset led named "Scroll Lock"
aby włączyć i wyłączyć tę funkcję.
Po kilku badaniach natrafiłem na program o nazwie xev
zrzucone kluczowe informacje o zdarzeniu do terminala po jego uruchomieniu. Po naciśnięciu klawisza Scroll Lock terminal został wypełniony następującymi informacjami:
Zdarzenie KeyPress, numer seryjny 34, syntetyczny NO, okno 0x2c00001, root 0x2df, subw 0x0, czas 2609824, (410,0), root: (1724,142), stan 0x0, kod klucza 78 (keyym 0xff14, Scroll_Lock), same_ ekran TAK, XLookupString daje 0 bajtów: XmbLookupString daje 0 bajtów: XFilterEvent zwraca: False
Zdarzenie KeyRelease, numer seryjny 37, syntetyczny NO, okno 0x2c00001, root 0x2df, subw 0x0, czas 2609912, (410,0), root: (1724,142), stan 0x0, kod klucza 78 (keyym 0xff14, Scroll_Lock), same_ ekran TAK, XLookupString daje 0 bajtów:
Wiem, że kluczowe zdarzenie jest wysyłane do jądra.
Co ciekawe, zaobserwowałem dziwne zachowanie w terminalu (jeszcze przed uruchomieniem Xorg lub Cinnamon) i korzystaniem ze Scroll Lock. Mianowicie, w tym momencie moje podświetlenie przełączało się zgodnie z oczekiwaniami, ale kiedy włączona była blokada przewijania, nic, co wpisałem, nie zostało zapisane na ekranie. Po wyłączeniu Scroll Lock wszystko, co napisałem, zostało natychmiast zrzucone do terminala, tak jakby wcześniej było buforowane.
tl; dr Jaki jest układ Scroll Lock i Xorg?
źródło
Odpowiedzi:
Nie znam Cinnamon, ale powinno być możliwe włączenie klawisza Scroll Lock.
Najpierw musimy sprawdzić, czy masz wolne gniazdo modyfikatora klawiatury. Biegać:
Spowoduje to wydrukowanie listy aktualnej konfiguracji modyfikatora. Mamy nadzieję, że jedna z tych linii nie będzie zawierała żadnych kluczy; generalnie tak będzie
mod3
. Zakładając, że tak jest, możesz włączyć Scroll Lock za pomocą tego polecenia:Dioda LED Scroll Lock powinna teraz reagować na naciśnięcia klawiszy Scroll Lock.
Jeśli to zadziała, prawdopodobnie chcesz, aby X zrobił to automatycznie przy każdym uruchomieniu. Można to zrobić na różne sposoby: można to zrobić dla każdego użytkownika, ale myślę, że w przypadku czegoś takiego warto ustawić ją globalnie.
Ale nigdy wcześniej tego nie robiłem, więc lepiej przetestuję to, zanim podam dalsze szczegóły. :)
DOBRZE. Metoda, którą próbowałem aktywować globalnie, nie działa dla mnie w KDE. :( Ale aktywowanie go w moim katalogu domowym wydaje się działać OK.
Utwórz plik o nazwie
.Xmodmap
w katalogu domowym zawierający ten wiersz:Najłatwiej to zrobić:
Teraz uruchom ponownie X (wyloguj się i zaloguj ponownie). Mam nadzieję, że twój klawisz Scroll Lock będzie działał. Jeśli nie, proszę dać mi znać.
źródło
Znalazłem trwały sposób po długiej nocy z dużą ilością na wpół upieczonych rozwiązań.
Dodaj następujący wiersz w
xkb_symbols "basic" {
sekcji. nie martw się, jeśli nie ma tam drugiej linii, jest ona dostępna tylko w niektórych językach i nie było jej w moim systemie.Być może będziesz musiał zrobić to samo w innych układach, jeśli przełączasz się między językami
Ponadto istnieje pamięć podręczna, w której działają układy xkb. Należy wyczyścić go przed ponownym uruchomieniem serwera X, aby sprawdzić nowe pliki symboli klawiatury.
źródło
Jak Scroll Lockmoże kolidować z skrótów klawiaturowych, kiedy aktywny (nazwane F12, Ctrl+ Spacenie będzie działać zgodnie z oczekiwaniami), postanowiłem dopasować Scroll Lockklucz do ręcznego uruchomienia
xset
, przełączanie stanu LED uważając go poprzedniego stanu.Utworzyłem skrypt wykonywalny o nazwie
toggle_keyb_led.sh
:To analizuje wynik
xset q
, dopasowując linię doLED mask
.Uwaga 1 : Jeśli to nie działa, sprawdź,
xset -led; xset q | grep 'LED'
jaka jest bieżąca wartość maski.Uwaga 2 : Niektórzy użytkownicy muszą uruchomić,
xset led 3
aby aktywować światło. W takim przypadku proszę przepisać powyższy skrypt.Następnie możesz uruchomić ten skrypt jako Skrót niestandardowy za pomocą Środowiska pulpitu, takiego jak (tutaj z Cinnamon):
źródło