segundo teclado para executar comandos

segundo teclado para executar comandos

No meu computador, tenho dois teclados USB conectados. Em vez de ambos digitarem a mesma tecla, é possível configurar um segundo teclado para executar comandos em vez de digitar letras? E se isso não for possível, pode ser configurado para pelo menos digitar outro idioma como o russo, por exemplo?

Responder1

Esta é a minha terceira resposta quando posso recomendar actkbd... :)

Então se você quiser configurar todas as teclas do segundo teclado para executar comandos e não digitar letras você pode usar actkbd... :)

Após a instalação, actkbdprecisamos descobrir qual arquivo do dispositivo é usado para receber eventos do teclado:

pbm@tauri ~ $ cat /proc/bus/input/devices 
[cut]
I: Bus=0003 Vendor=046d Product=c31c Version=0110
N: Name="Logitech USB Keyboard"
P: Phys=usb-0000:00:1a.0-1.1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input7
U: Uniq=
H: Handlers=sysrq kbd event5 
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=1f

I: Bus=0003 Vendor=046d Product=c31c Version=0110
N: Name="Logitech USB Keyboard"
P: Phys=usb-0000:00:1a.0-1.1/input1
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.1/input/input8
U: Uniq=
H: Handlers=kbd event6 
B: PROP=0
B: EV=1b
B: KEY=2010000 397ad801d001 1e000000000000 0
B: ABS=100000000
B: MSC=10
[cut]

Nesta lista você deve encontrar seu teclado e verificar seus manipuladores. Use sudo actkbd -s -d /dev/input/HANDLER_NAMEpara verificar se esse manipulador envia eventos. Se você executar este comando e pressionar a tecla no teclado (verifique as teclas que deseja vincular aos comandos), deverá obter algo assim:

pbm@tauri ~ $ sudo actkbd -s -d /dev/input/event5 
Keys: 57
Keys: 35

Se você tiver códigos-chave, poderíamos criar actkbdum arquivo de configuração:

pbm@tauri ~ $ sudo nano /etc/actkbd.conf 
30:::sudo -u pbm DISPLAY=:0 amarok
//30 is keycode for letter a

Ao salvar esse arquivo, devemos testar se a configuração funciona:

pbm@tauri ~ $ sudo actkbd -d /dev/input/event5 -D

Quando você pressiona a tecla que você tem em seu arquivo de configuração, o comando da última coluna do arquivo de configuração será iniciado.

Acho que existe uma maneira de desabilitar o envio de chaves para aplicativos, mas não consegui encontrar - confiraArquivo LEIA-ME.

Em vez de tentar desativá-lo, actkbdvocê pode desligar o teclado no X.

pbm@tauri ~ $ xinput list
[cut]
    ↳ Logitech USB Keyboard                     id=12   [slave  keyboard (3)]
    ↳ Logitech USB Keyboard                     id=11   [slave  keyboard (3)]
pbm@tauri ~ $ xinput set-prop 11 "Device Enabled" 0
pbm@tauri ~ $ xinput set-prop 12 "Device Enabled" 0

Deve dar certo... :) Para mais informações sobre actkbdconfiraesta resposta.

Usando actkbd(e provavelmente poucos scripts), você também pode configurar seu teclado para alterar os modos do modo de comando para o modo de entrada com letras russas. Para esta Ulrich Schwarz'sresposta, leia.

Responder2

desculpe reabrir este tópico, mas só para você saber que existe uma alternativa ao actkbd escrito em pythonhttps://github.com/robinuniverse/Keebieque fazem as mesmas coisas, IMO mais avançado. um pouco mais fácil de usar e suporte para mais de um teclado macro.

você pode ver minha configuração aqui para ter uma ideia:https://github.com/mirsella/dotfiles/tree/master/.config/keebie keebiecloseprocess não está incluído no projeto, eu o escrevi.

Responder3

Eu escrevi um pequeno programa em C que pode fazer isso. Eu escrevi 'na hora', então não é muito bom, mas funciona. Você pode conseguir issoaqui.

Responder4

Isso funcionou para mim:

#!/bin/bash

# 15 is the id of the floating (ie disabled) usb keyboard
#    xinput --float 15

xinput --test 15 \
| grep --line-buffered "key press"| while read line; do
    echo "$line"
    if [ "$line" = "key press   38" ]; then
        echo "yay"
        # do something when 'a' is pressed
    fi

informação relacionada