Como manter as configurações de layout por teclado?

3

Estou usando xmodmap (e às vezes xkbcomp ) para ajustar o layout do meu teclado (por exemplo, mapeando o Caps Lock para o modificador Mod3).

Quando eu conecto um teclado USB no meu laptop ou insiro um YubiKey (que funciona como um teclado), as configurações do teclado do meu laptop são imediatamente perdidas, deixando-me em situações em que o Mod3 pára de funcionar e não posso mais usar meu gerenciador de janelas.

Como posso fazer minhas configurações de xmodmap / xkbcomp persistentes ou pelo menos persistentes por sessão X para o meu teclado interno, para que ele mantenha o layout, não importa se eu conecto outros teclados?

    
por nh2 16.08.2013 / 15:52

2 respostas

2

Você pode tentar inputplug , um daemon que se conecta ao seu servidor X e ouve eventos XInput. Pode executar o script que recarrega o mapa de teclado:

inputplug -c ~/.xkb_load_hook

E ~/.xkb_load_hook no meu caso é:

#!/bin/sh

xkbcomp -I$HOME/.xkb ~/.xkb_keymap :0 2>/dev/null 1>/dev/null
xmodmap ~/.xmodmaprc

sun_id=$(xinput list | grep "HID 0430:0005" | grep -o 'id=[0-9]*' | cut -d = -f 2)

if [ -n "$sun_id" ]
then
    xkbcomp -i "$sun_id" -I$HOME/.xkb ~/.xkb_keymap_sun :0 2>/dev/null 1>/dev/null
fi

O último bit detecta um teclado Sun Type 6 e aplica diferentes configurações para ele.

    
por 14.01.2015 / 13:23
1

Parece que não é X, mas gnome-settings-daemon redefine meus layouts quando eu conecto um novo teclado.

Isso ajudou: A regra do udev para carregar automaticamente o layout do teclado quando o teclado USB é conectado

dconf write /org/gnome/settings-daemon/plugins/keyboard/active false

para desativá-lo de fazer isso.

    
por 16.08.2013 / 16:14