Spis treści

Wprowadzenie

Jeśli Twój ekran używa klawiatury do interaktywnej aplikacji, możesz chcieć zastąpić lub rozszerzyć wiązania klawiszy dla akcji interaktywności. Można to łatwo zrobić, korzystając z Zaawansowanych Directives Odtwarzacza. Klawiatury występują w wielu formach i wariantach, dlatego zamienniki klawiszy muszą być zadeklarowane w postaci kodów klawiszy.


Znajdowanie kodów klawiszy dla twojego urządzenia

Aby znaleźć kody klawiszy dla wybranej klawiatury, najpierw podłącz ją do Odtwarzacza, a następnie ssh do tego samego Odtwarzacza. Następnie kod klawisza dla dowolnego klawisza można odzyskać za pomocą narzędzia evtest.

Uruchomienie evtest poczyniowo wyświetli dostępne urządzenia wejściowe:

$ evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: Dell KB216 Wired Keyboard
/dev/input/event1: Dell KB216 Wired Keyboard System Control
/dev/input/event2: Dell KB216 Wired Keyboard Consumer Control
Select the device event number [0-2]: 0
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x413c product 0x2113 version 0x111
Input device name: "Dell KB216 Wired Keyboard"

Po wybraniu urządzenia, które w naszym przypadku to 0, narzędzie wyświetla podstawowe informacje o klawiaturze i czeka na wprowadzenie.

Select the device event number [0-2]: 0
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x413c product 0x2113 version 0x111
Input device name: "Dell KB216 Wired Keyboard"
Supported events: 
Event type 0 (EV_SYN) 
Event type 1 (EV_KEY) 
Event code 1 (KEY_ESC)
Event code 2 (KEY_1) 
Event code 3 (KEY_2) 
Event code 4 (KEY_3) 
(more event codes...) 
Properties:
Testing ... (interrupt to exit)

Wypisując dowolny klawisz, program wyświetla szczegółowe informacje o zdarzeniu, w tym kod klawisza. Na przykład, naciśnięcie przycisku spacebar zwraca następujące odpowiedzi:

Event: time 1694082009.896384, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002c
Event: time 1694082009.896384, type 1 (EV_KEY), code 57 (KEY_SPACE), value 1
Event: time 1694082009.896384, -------------- SYN_REPORT ------------

Zdarzenie EV_KEY zawiera potrzebne informacje, ponieważ KEY_SPACE odpowiada klawiszowi z kodem 57.


Dostosowywanie klawiszy akcji interaktywności

Obecnie do dostosowania są wspierane akcje enter oraz exit, które domyślnie odpowiadają spacebar i esc odpowiednio.

Możesz skonfigurować to w konfiguracji Zaawansowanych Directives Odtwarzacza (konfiguracja Ekran → Advanced → Customization → Advanced Player Directives) przy pomocy następującej dyrektywy:

custom_keyboard_configuration={"enter": [30, 31], "exit": [37, 38]}

W tym przykładzie klawisze enter realizują akcje A(30) i S(31), a klawisze exit realizują akcje K(37), L(38).