Como configurar o Ubuntu para ativar automaticamente o NumLock quando um teclado externo é conectado e desligado quando não está?

12

Ter o NumLock ativado é conveniente quando se usa um teclado externo de tamanho normal (com teclado) e muito inconveniente ao usar o teclado embutido do laptop (que insere dígitos em vez de letras no sid direito do teclado, a menos que Fn seja pressionado). / p>

Então eu tenho que ligar o NumLock toda vez que eu conecto um teclado externo (ou inicializo com ele conectado) e desligo toda vez que eu desanexo um teclado externo (ou inicializo com ele desanexado). E faço isso com frequência porque prefiro usar um teclado externo de tamanho normal, mas não tenho (apenas 3) portas USB suficientes para conectá-lo juntamente com um mouse, um modem 3G e um disco rígido / flash externo.

Posso automatizar isso? Parece uma tarefa muito formal e logicamente simples: se há um teclado USB conectado (algum dispositivo em / dev presente?) - NumLock está ativado, se não - o NumLock está desativado. O teclado interno do meu laptop é conectado ao PS / 2, externo é USB.

Talvez eu deva codificar por mim mesmo, mas onde colocá-lo neste caso?

Eu uso o Ubuntu 10.10.

    
por Ivan 03.10.2010 / 23:06

4 respostas

13
Primeiro, instale o numlockx ( clique aqui para instalar o numlockx ). Basicamente, isso permite que você escreva scripts para definir o estado do Num Lock - consulte a página do manual do numlockx para detalhes.

Em seguida, precisamos começar a nos aprofundar na diversão das regras do udev. Primeiro precisamos descobrir como o teclado é identificado. Você pode fazer isso por

ls /dev/input/by-id/

Isso deve dar a você alguns nomes de arquivo legíveis (que são links suaves para o nome verdadeiro não legível). Meu teclado foi

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

Então, precisamos descobrir todas as informações sobre o teclado. Eu fiz

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

Mas insira seu próprio caminho lá, é claro. Você obterá muitas informações, mas deseja ver o primeiro bloco que nomeia o teclado e tem SUBSYSTEMS=="usb" . (Em vez do controlador USB ou qualquer outro). No meu caso, isso foi:

  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"

Então, agora temos informações suficientes para escrever algumas regras. Use seu editor favorito para criar /etc/udev/rules.d/10-local.rules e inserir:

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"

Novamente, coloque o nome do seu teclado aqui e o ATTRS, se for diferente. Então deve funcionar:)

Note que não consegui testar isso, embora tenha executado todos os comandos até criar o arquivo de regras. E as fontes no caso de você precisar fazer mais alguma investigação são:

por Hamish Downer 06.10.2010 / 01:13
1

Se você estiver usando o shell do Gnome3.

Instale o numlockx

, em seguida, inicie as preferências do aplicativo de inicialização gnome-session-properties

Imagem (novos usuários não podem postar imagens :))

Clique em Adicionar

Escreva qualquer coisa no campo de nome e no campo de comando copie isto: numlockx on

Imagem

    
por Lukas Ignatavičius 27.09.2011 / 10:24
0

Não sei ao certo o que estou fazendo de diferente, porque o meu numlock neste teclado está ativado por padrão (este é um teclado Mac Pro Aluminium). Existem algumas instruções aqui que devem resolver o problema.

Espero que isso ajude!

    
por Craig Maloney 05.10.2010 / 15:47
0

Se você está usando o gnome-shell, então você pode instalar o Numlock & amp; Status do Capslock na extensão "Lock Keys" do painel. Por favor, encontrei aqui

    
por Tatui1969 04.01.2014 / 16:30