Estou usando xkbcomp para trocar as teclas Alt e Win em um teclado Apple meu.
Isso funciona:
xkbcomp -w0 -I"$DIR" "$DIR/keymap/mykbd" $DISPLAY
... mas muda o layout de todos os teclados, e isso não acontece porque eu estou freqüentemente mudando entre uma posição de pé e sentada (e trocando teclados).
Eu me dei ao trabalho de especificar um dispositivo. O texto da ajuda xkbcomp diz: -i <deviceid> Specifies device ID (not name) to compile for
xkbcomp -w0 -I"$DIR" -i 16 "$DIR/keymap/mykbd" $DISPLAY
... mas isso parece não ter efeito!
Eu desenhei o ID 16 de xinput list | grep Magic\ Keyboard . Eu também tentei /dev/input/event18 como um id, tirado de xinput list-props 16 | grep 'Device Node' , mas isso não produz um efeito melhor.
Atualização:
Surpreendentemente, quando eu forneço o id de Virtual core keyboard em vez de Magic Keyboard , eu faço obter um efeito: o novo mapeamento é aplicado ao meu teclado mágico, e se eu continuar a digitar no teclado do meu laptop integrado, o mapa de teclas então será revertido para a configuração original.
Eu não posso explicar isso. Alguém tem alguma ideia?