Intercambiar teclas condicionalmente en un teclado (Debian, X11, KDE Plasma)

Intercambiar teclas condicionalmente en un teclado (Debian, X11, KDE Plasma)

Tengo esta distribución de teclado en mi Dell Latitude

Diseño del teclado

Realmente me molesta que las Homeclaves y Endestén asignadas a la clave compuesta Fn. Así que logré intercambiar PageUpcon Homey PageDowncon Endagregando esto /usr/share/X11/xkb/symbols/de(en realidad, es una variante alemana)

xkb_symbols "basic" {
  ...
  key <HOME> {    [  Prior        ]   };
  key <PGUP> {    [  Home         ]   };
  key  <END> {    [  Next         ]   };
  key <PGDN> {    [  End          ]   };
  ...
}

Está funcionando como se esperaba. Sin embargo, con bastante frecuencia cambio entre mi computadora portátil tal como está y mi escritorio de trabajo usando una estación de acoplamiento y un teclado completo, donde este truco es molesto.

Las manipulaciones de estos archivos de símbolos xkb requieren un reinicio (o al menos un reinicio del entorno de escritorio). ¿Existe alguna posibilidad de cambiar el comportamiento en tiempo de ejecución? ¿Quizás incluso automatizado, como un gancho udev que ve la base USB-C?

Respuesta1

Puede cambiar entre diseños con setxkbmap. Por ejemplo, uso el diseño de Dvorak, apliqué tus cambios a mi local /usr/share/X11/xkb/symbols/dey cambié al diseño en alemán:

setxkbmap de

Verifiqué si PGUP funciona como Inicio, y así es. Luego volví a dvorak:

setxkbmap dvorak

Si desea cambiar entre un diseño original y su diseño personalizado, creo que la mejor manera es eliminar las 4 líneas que mostró en su pregunta de un dearchivo de diseño original y crear un nuevo archivo de diseño personalizado, por ejemplo /usr/share/X11/ xkb/symbols/de-modified con las modificaciones agregadas. No será necesario reiniciar ni reiniciar X para cambiar entre los 2 diseños:

setxkbmap de # PGUP wouldn't work as home
setxkbmap de-modified # PGUP would work as home

información relacionada