Como alterar as configurações de teclado do usuário ativo usando o udev e o setxkbmap?

1

Eu tenho um teclado USB que eu conecto no meu desktop no trabalho. Ao usá-lo, tende a definir manualmente a seguinte opção setxkbmap :

setxkbmap -option compose:ralt
setxkbmap -option ctrl:swap_rwin_rctl
setxkbmap -option ctrl:swap_lwin_lctl

Como faço isso frequentemente, eu queria automatizar o processo usando uma regra udev . A regra a seguir corresponde ao evento quando eu plug-in no teclado:

ACTION=="add", SUBSYSTEM=="usb", DRIVER=="usb", ATTRS{idVendor}=="046a", ATTRS{idProduct}=="0023", RUN+="/home/cutuchiqueno/.local/bin/kbd_udev", OWNER="cutuchiqueno"

o script que é RUN contém as três linhas do início desta pergunta:

#!/bin/bash
setxkbmap -option compose:ralt
setxkbmap -option ctrl:swap_rwin_rctl
setxkbmap -option ctrl:swap_lwin_lctl
echo 'date +%T' >> /home/cutuchiqueno/udevtest

(adicionei a última linha apenas para fins de depuração). Infelizmente as opções não são colocadas. Eu posso imaginar que isso tem algo a ver com os parâmetros do ambiente, embora eu não saiba realmente como abordar o problema.

    
por Cutú Chiqueño 11.02.2016 / 09:36

1 resposta

1

Duas modificações fizeram com que esse caso específico funcionasse:

o script kbd precisava de uma adição DISPLAY:0.0

a regra do udev reagiu a um evento que era muito cedo. Eu mudei o subsistema para input .

e tudo funcionou bem.

    
por 12.02.2016 / 12:32