Próbowałem użyć tego samouczka, aby przełącznik przewijania działał na mojej klawiaturze Microsoft Natural Ergonomic Keyboard 4000. Mam jednak następujący błąd:
sudo: /lib/udev/keymap: command not found
Mam wersję udev 204-5ubuntu20.2
(wersja znaleziona w Trusty)
Zauważyłem, że ta wersja nie zawiera keymap
narzędzia. Ale zauważam, że większe udev
wersje ( dostępne na przykład dla Debiana ) zawierają to narzędzie.
Czy ktoś mógłby mi wyjaśnić tę różnicę? =) A co powinienem zrobić w tym przypadku - zainstalować pakiet z repozytorium Debiana?
keymap
narzędzie?Odpowiedzi:
Jeśli spojrzysz na
/lib/udev/rules.d/60-keyboard.rules
to, zobaczysz, że wszystko zostało pomieszane. To tylko część trwającej fuzji udev w systemd.Wszystkie reguły sprzętowe są kompilowane w binarnej bazie danych sprzętu. Są to naprawdę dziwne formaty. Istniejące zasady dotyczące klawiatur dostarczanych z udev znajdują się w
/lib/udev/hwdb.d/60-keyboard.hwdb
. Spójrz na to, ale nie edytuj go (aktualizacje prawdopodobnie go zastąpią).Aby dodać niestandardowe reguły, utworzymy nowy plik
/etc/udev/hwdb.d/
, uruchamiającsudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb
. Wszystko, co musisz zrobić, to wkleić następujące elementy -Jeśli używasz modelu 4000:
Jeśli używasz modelu 7000:
Jest to dostosowane z opublikowanego samouczka, więc może być konieczne dostosowanie w zależności od klawiatury. Sprawdź
lsusb
i upewnij się, żevendor:product
powyższy kod (asv####p####
) jest poprawny. To nie zadziała, jeśli się nie zgadzają.Po zakończeniu edycji ponownie skompiluj to,
hwdb
czego używa udev:A może być konieczne ponowne podłączenie. Jeśli jest to klawiatura PS / 2, może być konieczne ponowne uruchomienie. W niektórych przypadkach konieczne jest również ponowne uruchomienie.
źródło
hwdb.d
dir jest pusty,rules.d
zawiera tylko 3 pliki (70-persistent-cd.rules
,70-persistent-net.rules
,README
). Czy miałeś na myśli, że muszę utworzyć nowy plik? Czy muszę mieć coś do edycji?/lib/udev/hwdb.d/60-keyboard.hwdb
ale zmiany zostaną utracone po aktualizacjach udev.udevadm trigger /dev/input/by-id/usb-Microsoft-*
do uruchomienia aktualizacjiUbuntu 15.10 : Nie udało mi się z poprzednimi odpowiedziami.
Z powodzeniem zastosowałem podejście podobne do poprzednich - instrukcje zostały wymienione w
/lib/udev/hwdb.d/60-keyboard.hwdb
.Utworzyłem nowy plik hwdb,
sudo nano /etc/udev/hwdb.d/70-keyboard.hwdb
zawierający:potem biegnę
i ponownie włożyłem klawiaturę i działało.
Do modelu 7000
evdev:input:b003v045Ep071D*
źródło
keyboard:
definicje nie działają już w systemie Ubuntu 1604 i tak musi byćevdev:
. Istnieje nawet domyślne odwzorowanie/lib/udev/hwdb.d/60-keyboard.hwdb
dla modelu 4000, które odwzorowuje je nazoomin
/zoomout
- jednak X całkowicie ignoruje zdarzenia (xev nic nie pokazuje), więc nadal potrzebujesz takiej zmiany konfiguracji.b0003
wygląda jakby bus-specific (tak to może działać tylko w niektórych portach USB). Jeśli coś takiegob*v045Ep071D*
działa, może być lepiej.evdev:input:XXX
zamiastkeyboard:usb:YYY
). Możesz także użyć innego mapowania zamiastpageup
/pagedown
. Na przykład używamscrollup
iscrolldown
do prawdziwego przewijania.Oryginalny rozwiązanie wysłane przez Oli nie dla mnie, ale to działa po zmianie kluczowych numerów
"0c022d"
i"0c022e"
do"c022d"
a"c022e"
. Używam modelu 4000, więc nie mogę zweryfikować, czy ta sama zmiana jest potrzebna w przypadku modelu 7000.Aby powtórzyć odpowiedź Oli, oto co zrobiłem: utwórz nowy plik, uruchamiając
sudo nano /etc/udev/hwdb.d/61-keyboard-local.hwdb
. Wklej następujące linie do pliku (dla modelu 4000):Po edycji pliku rekompiluj hwdb, którego używa udev:
Następnie ponownie podłącz klawiaturę.
źródło
Dodając do odpowiedzi Oli, jeśli chcesz przewijać wiersze tak jak w myszy, możesz zmodyfikować pageup / pagedown w górę / w dół w swojej niestandardowej regule. Lubić:
źródło
Ładne rozwiązanie jest tutaj i mogę jedynie dodać, że możesz mapować klucze na nieużywane klucze X w ten sposób:
Odpowiednie nazwy do użycia zamiast
katakana
można znaleźć tutaj .Po ponownym uruchomieniu ;-) możesz przetestować,
zoomin
czyzoomout
klucze są pomyślnie mapowane, a także znaleźć prawidłowe nazwy kluczy (na przykład wrc.xml
OpenBox WM), używającxev
:Teraz możesz podłączyć nowe klucze do całkowicie dowolnych działań. W moim przypadku menedżera okien OpenBox użyłem czegoś takiego:
źródło