Aunque esta pregunta es un poco antigua, pensé en compartir mi solución, ya que ninguna de las otras respuestas abordaba cómo hacer que esto funcione en el arranque.
Mi situación:
tengo un teclado Happy Hacking que se conecta a través de un usb que tiene teclas movidas (controla dónde está el bloqueo de mayúsculas, etc.). Lo uso la mayor parte del tiempo, pero a veces me gustaría usar el teclado estándar para computadora portátil u otro teclado usb. Para estos teclados, creé un diseño de teclado personalizado.
El truco es que el diseño del teclado personalizado no debe aplicarse al teclado Happy Hacking.
Solución:
creé un archivo de configuración de Xorg como tal:
$ cat /etc/X11/xorg.conf.d/30-keyboard.conf
Section "InputClass"
Identifier "Happily Hacked Keyboard"
MatchDevicePath "/dev/input/event*"
MatchIsKeyboard "on"
Driver "evdev"
Option "XkbLayout" "us"
Option "XkbVariant" "hhk"
EndSection
Section "InputClass"
Identifier "Happy Hacking Keyboard"
MatchIsKeyboard "on"
MatchVendor "Topre_Corporation"
Driver "evdev"
Option "XkbLayout" "us"
Option "XkbVariant" "basic"
EndSection
La primera parte básicamente dice que para cualquier teclado estándar, aplique el diseño de EE. UU. Con la variante personalizada. La segunda parte dice que para el teclado de pirateo feliz, use el diseño de EE. UU. Con la variante básica.
Puede hacer coincidir dispositivos en función de varios parámetros: xorg doc