Come configurare Ubuntu per attivare automaticamente il Bloc Num quando una tastiera esterna è collegata e spenta quando non lo è?

12

L'attivazione di NumLock è comoda quando si utilizza una tastiera esterna di dimensioni standard (con tastiera) e molto scomoda quando si utilizza la tastiera integrata del portatile (che posiziona cifre anziché lettere sul lato destro della tastiera a meno che non venga premuto Fn).

Quindi devo attivare NumLock ogni volta che allego una tastiera esterna (o avvio con esso collegato) e spenta ogni volta che rimuovo una tastiera esterna (o avvio con esso staccato). E lo faccio spesso perché preferisco usare una tastiera esterna di dimensioni normali, ma non ho abbastanza (solo 3) porte USB per collegarlo insieme a un mouse, un modem 3G e un'unità esterna hard / flash.

Posso automatizzare questo? Sembra un'operazione molto semplice e logicamente semplice: se è presente una tastiera USB collegata (qualche dispositivo in / dev è presente?) - NumLock è attivo, in caso contrario - NumLock è disattivato. La tastiera incorporata del mio portatile è collegata PS / 2, esterna è USB.

Forse dovrei codificarlo da solo, ma dove metterlo in questo caso?

Io uso Ubuntu 10.10.

    
posta Ivan 03.10.2010 - 23:06
fonte

4 risposte

13

Innanzitutto, installa numlockx ( fai clic qui per installare numlockx ). Fondamentalmente questo ti permette di scrivere script per impostare lo stato di Bloc Num - guarda la pagina man numlockx per i dettagli.

Quindi dobbiamo iniziare a scavare nel divertimento delle regole di udev. Per prima cosa dobbiamo scoprire come viene identificata la tastiera. Puoi farlo con

ls /dev/input/by-id/

Questo dovrebbe darti alcuni nomi di file leggibili dall'uomo (che sono soft link al vero nome non particolarmente leggibile). La mia tastiera era

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

Quindi abbiamo bisogno di trovare tutte le informazioni sulla tastiera. L'ho fatto

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

Ma inserisci il tuo percorso lì, naturalmente. Riceverai un sacco di informazioni, ma vuoi vedere il primo blocco che nomina la tastiera e ha SUBSYSTEMS=="usb" . (Piuttosto che il controller USB o qualsiasi altra cosa). Nel mio caso era:

  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"

Quindi ora abbiamo abbastanza informazioni per scrivere alcune regole. Usa il tuo editor preferito per creare /etc/udev/rules.d/10-local.rules e inserisci:

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"

Di nuovo, inserisci qui il nome della tua tastiera e l'ATTRS se è diverso. Quindi dovrebbe funzionare:)

Nota Non sono stato in grado di verificarlo, sebbene abbia eseguito tutti i comandi fino alla creazione del file delle regole. E le fonti nel caso in cui hai bisogno di fare ulteriori indagini sono:

risposta data Hamish Downer 06.10.2010 - 01:13
fonte
1

Se stai usando la shell Gnome3.

Installa numlockx

quindi avvia le preferenze dell'applicazione di avvio gnome-session-properties

Immagine (i nuovi utenti non possono pubblicare immagini :))

Fai clic su Aggiungi

Scrivi qualcosa nel campo nome e nel campo comando copia questo: numlockx on

Immagine

    
risposta data Lukas Ignatavičius 27.09.2011 - 10:24
fonte
0

Non sono sicuro di cosa sto facendo in modo diverso, perché il mio numlock su questa tastiera è impostato su On (questa è una tastiera Mac Pro in alluminio). Ci sono alcune istruzioni qui che dovrebbero fare il trucco.

Spero che questo aiuti!

    
risposta data Craig Maloney 05.10.2010 - 15:47
fonte
0

Se stai usando gnome-shell, allora potresti installare Numlock & amp; Stato Capslock sull'estensione del pannello "Blocca chiavi". Per favore, trovato qui

    
risposta data Tatui1969 04.01.2014 - 16:30
fonte

Leggi altre domande sui tag