Co to jest tryb surowej klawiatury?


27

W kombinacjach klawiszy magicznego sysrq istnieje kombinacja, alt+sysrq+rktóra według wikipedii wykonuje następujące czynności:

Przełącz klawiaturę z trybu raw, trybu używanego przez programy takie jak X11 i svgalib, na tryb XLATE

Co to jest tryb surowy? i co to jest tryb XLATE?

Czy mogę przełączyć się z powrotem na tryb RAW po przejściu na tryb XLATE?

Jak mogę sprawdzić, w jakim trybie jest moja klawiatura?

Odpowiedzi:


23

Naciśnięcie klawisza na klawiaturze powoduje wysłanie do komputera kodu numerycznego, zwanego kodem skanowania. Kod skanowania informuje komputer, który klawisz został naciśnięty; na przykład na typowej klawiaturze amerykańskiej Aklawisz wysyła kod skanowania 30 po naciśnięciu (i 158 po zwolnieniu). Sterownik klawiatury zgłasza te kody bezpośrednio do aplikacji, gdy klawiatura jest w trybie surowym („surowe” oznacza nieprzetworzone, prosto z klawiatury). Kilka programów używa trybu raw i wykonuje własne przetwarzanie klawiatury; serwer X jest najbardziej widocznym jeden.

Większość programów oczekuje, że po naciśnięciu Aklawisza program odczyta znak a(ASCII 97), a po naciśnięciu Shift+ Aprogram odczyta A(ASCII 65), a po naciśnięciu Ctrl+ Aprogram odczyta Ctrl+Aznak (ASCII 1). Klawisze, które nie mają powiązanych znaków, wysyłają sekwencje specjalne, np. \e[ADla Left, gdzie \ejest znak ESC (ASCII 27). Sterownik klawiatury wykonuje to tłumaczenie, gdy klawiatura znajduje się w trybie ASCII, zwanym także trybem XLATE (skrót od „translate”). Tryb XLATE umożliwia aplikacjom wprowadzanie znaków kosztem braku dostępu do takich niuansów, jak „naciśnięty lewy klawisz Shift” lub Ctrl + Shift + A w odróżnieniu od Ctrl + A.

kbd_modePozwala przełączać się między trybami i pokazuje aktualny tryb jeśli wywołać go bez argumentów.

Magiczne kombinacje klawiszy SysRq mają na celu wyjście z różnych nieprzyjemnych sytuacji. Jedną z kluczowych kombinacji jest Alt+SysRq+Kzabicie wszystkich programów na bieżącej konsoli wirtualnej; jeśli ten program przełączy klawiaturę w tryb nieprzetworzony, nie będziesz mógł pisać po znaku zachęty (który często się pojawia, w zależności od konfiguracji systemu). Naciśnięcie Alt+SysRq+Rprzywraca normalny (poza X) tryb ASCII, w którym można wpisywać znaki.


9

Możesz zdefiniować rodzaj kodu wysyłanego przez klawiaturę. Odbywa się to za pomocą trybu klawiatury. Możesz zmienić tryb klawiatury za pomocą kbd_mode.

Oto opcje ze strony man:

   -s: scancode mode (RAW),
   -k: keycode mode (MEDIUMRAW),
   -a: ASCII mode (XLATE),
   -u: UTF-8 mode (UNICODE).

Deweloperowi łatwiej jest uchwycić kluczowe zdarzenia, takie jak wciśnięty lewy klawisz Shift, jeśli może po prostu uzyskać skancody wciśniętych klawiszy.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.