segundo teclado para ejecutar comandos

16

En mi computadora tengo dos teclados USB enchufados. En lugar de que ambos simplemente escriban la misma tecla, ¿es posible configurar un segundo teclado para ejecutar comandos en lugar de escribir letras? Y si eso no es posible, ¿se puede configurar para al menos escribir en otro idioma como el ruso, por ejemplo?

captainandcoke
fuente
¿Desea vincular comandos específicos a las teclas elegidas del segundo teclado para poder ejecutar algo y no escribir letras?
pbm
Y la siguiente pregunta: ¿desea usar métodos abreviados para ejecutar aplicaciones en segundo plano (o aplicaciones en un entorno X) o simplemente escriba el nombre del comando en el terminal activo utilizando el método abreviado de teclado?
pbm
Forma alternativa de deshabilitar el envío de claves a las aplicaciones. askubuntu.com/a/178741/554601
Ariunbayar

Respuestas:

15

Esta es mi tercera respuesta cuando puedo recomendar actkbd... :)

Entonces, si desea configurar todas las teclas del segundo teclado para ejecutar comandos para no escribir letras, puede usar actkbd... :)

Después de la instalación actkbd, necesitamos encontrar qué archivo de dispositivo se usa para recibir eventos desde nuestro 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]

En esta lista, debe encontrar su teclado y verificar los controladores. Use sudo actkbd -s -d /dev/input/HANDLER_NAMEpara verificar si ese controlador envía eventos. Si ejecuta este comando y presiona la tecla en el teclado (verifique las teclas que desea vincular a los comandos), debería obtener algo como eso:

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

Si tiene códigos clave, podríamos crear un actkbdarchivo de configuración:

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

Cuando guarde ese archivo, deberíamos probar si la configuración funciona:

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

Cuando presione la tecla que tiene en su archivo de configuración, se iniciará el comando de la última columna del archivo de configuración.

Creo que hay una manera de deshabilitar el envío de claves a las aplicaciones, pero no pude encontrarlo: consulte el archivo README .

En lugar de intentar deshabilitarlo usando actkbd, puede apagar su teclado en 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

Se debe hacer el trabajo ... :) Para obtener más información sobre actkbdel registro de salida esta respuesta .

Usando actkbd(y algunas secuencias de comandos probablemente) también puede configurar su teclado para cambiar los modos del modo comando al modo de entrada con letras rusas. Por esta Ulrich Schwarz'srespuesta leída .

pbm
fuente
1
He hecho esta pregunta un millón de veces en mil millones de foros y tú eres el único que realmente sabe esto. Gracias un billón.
captainandcoke
0

He escrito un pequeño programa en C que puede hacer eso. Lo he escrito 'sobre la marcha', por lo que no es muy bueno, pero funciona. Puedes conseguirlo aquí .

usuario388315
fuente
Hola y bienvenidos al sitio Unix y Linux Stack Exchange. Revise el Centro de ayuda y realice el recorrido para obtener más información sobre este sitio. Si bien su enlace puede proporcionar una solución al problema del usuario, ¿podría agregar contexto adicional a su publicación? Actualmente, esta es solo una oferta para descargar software de un sitio de terceros. Debe incluir lo que hace, cómo instalarlo y usarlo, y por qué responde la pregunta en cuestión. Gracias.
kemotep