Lassen Sie den Zoomregler der Microsoft Natural Ergonomic Keyboard 4000 und 7000 in 14.04 (Trusty) nach oben und unten scrollen.

29

Ich habe versucht, mithilfe dieses Lernprogramms die Funktion des Bildlaufschalters auf meiner Microsoft Natural Ergonomic Keyboard 4000 zu aktivieren. Es tritt jedoch der folgende Fehler auf:

sudo: /lib/udev/keymap: command not found

Ich habe eine udev-Version 204-5ubuntu20.2(die in Trusty gefundene Version)

Mir ist aufgefallen, dass diese Version kein keymapTool enthält. Ich stelle jedoch fest, dass größere udevVersionen ( die zum Beispiel für Debian verfügbar sind) dieses Tool enthalten.

Könnte mir jemand diesen Unterschied erklären? =) Und was soll ich in diesem Fall tun - Paket von Debian Repo installieren?

Dmitry Belaventsev
quelle
Möchten Sie dieses Problem mit udev beheben, oder stehen Ihnen Alternativen zur Verfügung? Ich würde ein bisschen zögern, ungepackte udev-debian-Pakete auf Ubuntu zu installieren.
jobin
Alle
Hilft das ?
jobin
Was macht das nicht mehr mitgelieferte keymapDienstprogramm überhaupt?
Matt
Ich habe mein Tutorial (mit dem Sie verlinkt haben) so aktualisiert, dass es die folgende Antwort enthält. Danke :-)
Terence Eden

Antworten:

27

Wenn Sie sich das ansehen, werden /lib/udev/rules.d/60-keyboard.rulesSie feststellen, dass alles durcheinander gebracht wurde. Dies ist nur ein Teil der Fusion von udev und systemd.

Alle Hardwareregeln werden in eine binäre Hardwaredatenbank übersetzt. Diese folgen einem wirklich seltsamen Format. Die bestehenden Regeln für Tastaturen, die mit udev ausgeliefert werden, gelten für /lib/udev/hwdb.d/60-keyboard.hwdb. Schauen Sie sich das an, aber bearbeiten Sie es nicht (Updates werden es wahrscheinlich überschreiben).

Um Ihre benutzerdefinierten Regeln hinzuzufügen, erstellen wir /etc/udev/hwdb.d/durch Ausführen eine neue Datei sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb. Alles was Sie tun müssen, ist Folgendes einzufügen -

Wenn Sie das Modell 4000 verwenden:

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_0c022d=pageup
 KEYBOARD_KEY_0c022e=pagedown

Wenn Sie das Modell 7000 verwenden:

keyboard:usb:v045Ep071D*
 KEYBOARD_KEY_0c022d=pageup
 KEYBOARD_KEY_0c022e=pagedown

Dies wurde aus dem von Ihnen veröffentlichten Tutorial übernommen, sodass Sie möglicherweise Anpassungen an Ihrer Tastatur vornehmen müssen. Schauen Sie sich lsusbden vendor:productobigen Code (as v####p####) an und vergewissern Sie sich , dass er korrekt ist. Es wird nicht funktionieren, wenn sie nicht zusammenpassen.

Wenn Sie mit der Bearbeitung fertig sind, kompilieren Sie das hwdb, was udev verwendet, erneut:

sudo udevadm hwdb --update

Und dann müssen Sie möglicherweise den Stecker wieder einstecken. Wenn es sich um eine PS / 2-Tastatur handelt, müssen Sie möglicherweise einen Neustart durchführen. In einigen Fällen müssen Sie auch neu starten.

Oli
quelle
Danke für die Antwort! hwdb.ddir ist leer, rules.denthält nur 3 Dateien ( 70-persistent-cd.rules, 70-persistent-net.rules, README). Meinten Sie also, dass ich eine neue Datei erstellen muss? Oder muss ich welche bearbeiten?
Dmitry Belaventsev
Ja, Sie sollten eine neue Datei erstellen. Die vorhandenen Tastaturregeln bleiben erhalten, /lib/udev/hwdb.d/60-keyboard.hwdbaber Änderungen gehen nach udev-Aktualisierungen verloren.
Oli
2
Leider macht
Zielknopf
1
@matt, Sie können mehrere Aliase wie hier setzen
user.dz
1
Anstelle des Einsteckens | Herausziehens kann man auch udevadm trigger /dev/input/by-id/usb-Microsoft-*das Update auslösen
Alexandr Priymak
37

Ubuntu 15.10 : Ich hatte mit vorherigen Antworten keinen Erfolg.

Ich habe den Ansatz ähnlich wie die vorherigen erfolgreich angewendet - Anweisungen wurden in erwähnt /lib/udev/hwdb.d/60-keyboard.hwdb.

Ich habe eine neue hwdb-Datei mit folgendem Inhalt erstellt sudo nano /etc/udev/hwdb.d/70-keyboard.hwdb :

# Microsoft Natural Ergonomic Keyboard 4000 - Vergrößern / Verkleinern, um eine Seite nach oben / unten zu verschieben
evdev: input: b0003v045Ep00DB *
 KEYBOARD_KEY_c022d = Seite hoch
 KEYBOARD_KEY_c022e = ausgelagert

danach bin ich gelaufen

sudo udevadm hwdb --update
sudo udevadm control - reload

und steckte die Tastatur um und es funktionierte.

Für Modell 7000 verwenden evdev:input:b003v045Ep071D*

Adam Chýlek
quelle
9
Dies ist die richtige Antwort für Ubuntu 16.04
Greg Dan
2
Vielen Dank. Es sieht tatsächlich so aus, als würden die keyboard:Definitionen unter Ubuntu 1604 nicht mehr funktionieren und müssen es auch sein evdev:. Es gibt sogar ein Standard-Mapping /lib/udev/hwdb.d/60-keyboard.hwdbfür das 4000-Modell, das sie auf zoomin/ abbildet. zoomoutX ignoriert jedoch die Ereignisse vollständig (xev zeigt nichts an), sodass Sie weiterhin eine solche Konfigurationsänderung benötigen.
Wump
2
Es b0003sieht so aus, als wäre es busspezifisch (so dass es möglicherweise nur in einigen USB-Anschlüssen funktioniert). Wenn so etwas b*v045Ep071D*funktioniert, ist es vielleicht besser.
Oli
3
Danke, es funktioniert in Ubuntu 16.04 ( evdev:input:XXXstatt keyboard:usb:YYY). Sie können anstelle von pageup/ auch ein anderes Mapping verwenden pagedown. Zum Beispiel verwende ich scrollupund scrolldown, um wirklich zu scrollen.
Martin Grůber
1
Funktioniert auch in Kubuntu 17.10
OOPMan
7

Die ursprüngliche Lösung von Oli hat bei mir nicht funktioniert, aber sie funktioniert, nachdem ich die Schlüsselnummern "0c022d"und "0c022e"zu "c022d"und geändert habe "c022e". Ich verwende ein 4000er-Modell, daher kann ich nicht überprüfen, ob für das 7000er-Modell dieselbe Änderung erforderlich ist.

Um Olis Antwort zu wiederholen, habe ich Folgendes getan: Erstellen Sie eine neue Datei, indem Sie sie ausführen sudo nano /etc/udev/hwdb.d/61-keyboard-local.hwdb. Fügen Sie die folgenden Zeilen in die Datei ein (für das 4000-Modell):

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=pageup
 KEYBOARD_KEY_c022e=pagedown

Kompilieren Sie nach dem Bearbeiten der Datei die von udev verwendete hwdb erneut:

sudo udevadm hwdb --update

Stecken Sie dann die Tastatur wieder ein.

user261903
quelle
Vielen Dank. Seltsamerweise musste ich diese Änderung jetzt auch durchführen, und es war schließlich ein Neustart erforderlich (nicht nur ein erneutes Einstecken).
Matt
arbeitete für mich an Ubuntu 15.04. Vielen Dank!
Pierre
Dies funktionierte für mich unter Debian Jessie 8.5.
Nicolás
Ich möchte eine kostengünstige Tastatur kaufen und bin gespannt, ob sie mit 16.04 LTS funktioniert? Oder es gibt dort kein solches Problem.
Arpad Horvath
4

Zur Antwort von Oli hinzufügen: Wenn Sie einen Zeilenumbruch wie bei einer Maus wünschen, können Sie in Ihrer benutzerdefinierten Regel Pageup / Pagedown in Up / Down ändern. Mögen:

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=up
 KEYBOARD_KEY_c022e=down
r11
quelle
Übrigens: Up / Down ist in 18.04 voreingestellt.
LinuxLuigi
1

Eine gute Lösung ist hier , und ich kann nur hinzufügen, dass Sie die Tasten nicht verwendeten X-Tasten wie folgt zuordnen können:

$ cat /lib/udev/rules.d/95-keymap.rules
...
ENV{ID_VENDOR}=="Microsoft", ENV{ID_MODEL_ID}=="00db", RUN+="keymap $name 0xc022d katakana 0xc022e katakanahiragana
...

Die richtigen Namen, die anstelle von katakanaverwendet werden sollen, finden Sie hier .

Nach dem Neustart ;-) Sie können das testen zoominund zoomoutSchlüssel erfolgreich abgebildet, und auch einen Eigennamen des Schlüssels , um herauszufinden , (auf dem Einsatz in rc.xmlfür OpenBox WM, zum Beispiel) mit xev:

$ xev
...
KeyRelease event, serial 46, synthetic NO, window 0x3c00001,
    root 0x291, subw 0x0, time 1492891, (-261,-61), root:(573,380),
    state 0x0, keycode 101 (keysym 0xff27, Hiragana_Katakana), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
...

Jetzt können Sie neue Tasten an völlig beliebige Aktionen anschließen. In meinem Fall von OpenBox Window Manager habe ich so etwas verwendet:

$ cat <whatever>/rc.xml
...
<keybind key="Katakana">
  <action name="Execute">
    <command>volume_up.sh</command>
  </action>
</keybind>
<keybind key="Hiragana_Katakana">
  <action name="Execute">
    <command>volume_down.sh</command>
  </action>
</keybind>
...
dmitry_romanov
quelle