it-swarm.com.de

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?

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 ich mache das 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.

12
Ivan

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 in der numlockx-Manpage .

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/

Das sollte Ihnen einige 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 viele Informationen erhalten, aber Sie möchten sich den ersten Block ansehen, der die Tastatur benennt und SUBSYSTEMS=="usb" enthält. (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, um /etc/udev/rules.d/10-local.rules zu erstellen und Folgendes einzugeben:

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:

13
Hamish Downer

Wenn Sie Gnome3 Shell verwenden.

Installieren Sie numlockx

dann starte Startup application preferences 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

1

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

Hoffe das hilft!

0
Craig Maloney

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

0
Tatui1969