Wie richte ich Ubuntu so ein, dass NumLock automatisch aktiviert wird, wenn eine externe Tastatur angeschlossen ist, und deaktiviert wird, wenn dies nicht der Fall ist?

12

Das Aktivieren von NumLock ist praktisch, wenn Sie eine externe Tastatur in voller Größe (mit Tastatur) verwenden, und sehr unpraktisch, wenn Sie die integrierte Tastatur des Laptops verwenden (bei der Ziffern anstelle von Buchstaben auf der rechten Seite der Tastatur platziert werden, sofern nicht Fn gedrückt wird).

Ich muss NumLock also jedes Mal einschalten, wenn ich eine externe Tastatur anschließe (oder mit dieser booten) und jedes Mal ausschalten, wenn ich eine externe Tastatur abnehme (oder mit dieser booten). Und das mache ich häufig, weil ich eine externe Tastatur in voller Größe bevorzuge, aber nicht genug (nur 3) USB-Anschlüsse habe, um sie zusammen mit einer Maus, einem 3G-Modem und einer externen Festplatte / einem externen Flash-Laufwerk anzuschließen.

Kann ich das automatisieren? Scheint eine sehr formalisierbare, logisch einfache Aufgabe zu sein: Wenn eine USB-Tastatur angeschlossen ist (ein Gerät in / dev vorhanden?) - NumLock ist an, wenn nicht - NumLock ist aus. Die eingebaute Tastatur meines Laptops ist an PS / 2 angeschlossen, extern ist USB.

Vielleicht sollte ich es selbst codieren, aber wo soll ich es in diesem Fall ablegen?

Ich benutze Ubuntu 10.10.

Ivan
quelle

Antworten:

14

Installieren Sie zunächst numlockx ( klicken Sie hier, um numlockx zu installieren ). Grundsätzlich können Sie Skripte schreiben, um den Status der Num-Sperre festzulegen. Weitere Informationen finden Sie auf der Manpage zu numlockx .

Als nächstes müssen wir uns mit dem Spaß an udev-Regeln befassen. Zuerst müssen wir herausfinden, wie die Tastatur identifiziert wird. Sie können dies tun, indem Sie

ls /dev/input/by-id/

Dies sollte Ihnen einige von Menschen lesbare Dateinamen geben (die weiche Links zu dem nicht besonders lesbaren wahren Namen sind). Meine Tastatur war

/dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd

Dann müssen wir alle Informationen über die Tastatur herausfinden. Ich tat

udevadm info -a -p $(udevadm info -q path -n /dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd)

Aber geben Sie dort natürlich Ihren eigenen Weg ein. Sie werden eine Menge Informationen erhalten, aber Sie möchten sich den ersten Block ansehen, der die Tastatur benennt und hat SUBSYSTEMS=="usb". (Anstelle des USB-Controllers oder was auch immer). In meinem Fall war das:

  looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.3':
    KERNELS=="3-2.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 2"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="a0"
    ATTRS{bMaxPower}==" 50mA"
    ATTRS{urbnum}=="6284"
    ATTRS{idVendor}=="058f"
    ATTRS{idProduct}=="9410"
    ATTRS{bcdDevice}=="0122"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{speed}=="1.5"
    ATTRS{busnum}=="3"
    ATTRS{devnum}=="3"
    ATTRS{devpath}=="2.3"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="KINESIS FREESTYLE KB700"
    ATTRS{product}=="KB700 Kinesis Freestyle"

Jetzt haben wir genug Informationen, um einige Regeln zu schreiben. Verwenden Sie Ihren bevorzugten Editor zum Erstellen /etc/udev/rules.d/10-local.rulesund Einfügen von:

BUS=="usb",ATTRS{product}=="KB700 Kinesis Freestyle",ACTION=="add",RUN+="/usr/bin/numlockx on"
BUS=="usb",ATTRS{product}=="KB700 Kinesis Freestyle",ACTION=="remove",RUN+="/usr/bin/numlockx off"

Geben Sie hier erneut den Namen Ihrer Tastatur und, falls anders, die ATTRS ein. Dann sollte es klappen :)

Hinweis: Ich konnte dies nicht testen, obwohl ich alle Befehle ausgeführt habe, bis ich die Regeldatei erstellt habe. Und die Quellen, falls Sie weitere Nachforschungen anstellen müssen, sind:

Hamish Downer
quelle
Vielen Dank, sehr gut. Um ehrlich zu sein, hatte ich nicht erwartet, eine Antwort zu erhalten, die so aussagekräftig wäre. Ich wünschte, ich könnte es mehr als nur richtig und +1 vergeben. Ich hoffe, dass alle, die meine Frage ausgewählt und bewertet haben, auch Sie belohnen.
Ivan
1

Wenn Sie die Gnome3-Shell verwenden.

Installieren Sie numlockx

Starten Sie dann die Anwendungseinstellungen für den Start gnome-session-properties

Bild (neue Benutzer können keine Bilder posten :))

Klicken Sie auf Hinzufügen

Schreiben Sie etwas in das Namensfeld und kopieren Sie es in das Befehlsfeld:numlockx on

Bild

Lukas Ignatavičius
quelle
0

Ich bin mir nicht sicher, was ich anders mache, da mein Numlock auf dieser Tastatur standardmäßig aktiviert ist (Dies ist eine Mac Pro Aluminium-Tastatur). Es gibt hier einige Anweisungen , die den Trick machen sollten.

Hoffe das hilft!

Craig Maloney
quelle
0

Wenn Sie Gnome-Shell verwenden, können Sie den Numlock & Capslock-Status in der Panel-Erweiterung "Lock Keys" installieren. Bitte, hier gefunden

Tatui1969
quelle