Diseño xkb personalizado en el que una clave crea dos puntos de código Unicode

14

Estoy escribiendo un nuevo diseño de teclado personalizado para Xorg, pero hay un glifo particular que no existe en Unicode. Sin embargo, es fácil crearlo usando una letra estándar más una marca diacrítica combinada.

Por ejemplo, si quiero la letra vcon un macron debajo, la secuencia U0073+U0331crea el carácter que quiero.

En mi definición de diseño xkb, puedo especificar un único punto Unicode (aquí altgr+destá vinculado a ḏ y altgr+shift+dḎ):

key <AC03>  { [         d,          D,        U1E0F,        U1E0E ] }; // d with macron below

Pero parece que no puedo especificar un glifo Unicode 'combinado' para una sola clave:

key <AB04>  { [         v,          V,  U0076+U0331,  U0056+U0331 ] }; // v with macron below

¿Es posible crear una definición xkb de todo el sistema como esta?

SigueSigueBen
fuente

Respuestas:

11

EDITAR:

Aún intentando...

Las pruebas muestran que el mapa de teclas SOLO tomará una sola tecla en cada posición.

PERO, si usa un keyym raro / nunca usado en la definición del mapa de teclas, entonces un Xmodmap global para hacer que ese keyym genere los diversos caracteres Unicode que necesita, esto funcionará.

En el mapa de teclas:

key <AB04>  { [ v, V, XF86LaunchA, XF86LaunchB ] };

En un Xmodmap global: (¿quizás cargado desde /etc/profile.d?)

keysym XF86LaunchA = U0056 U0331
keysym XF86LaunchB = U0076 U0331

Hay bastantes símbolos de teclas no utilizados / de uso especial, elegí el LaunchA / B como ejemplo.

lornix
fuente
Gracias por la respuesta. Un inconveniente es que esta sería una configuración por uso, ¿verdad? Hacerlo con xkb lo haría en todo el sistema y significa que se puede distribuir en un solo archivo. ¡Por supuesto, esas condiciones estaban en mi pregunta original!
SigueSigueBen
2
Rebusqué en el código fuente, no parece haber ningún soporte para incluir múltiples pulsaciones de teclas en las definiciones de teclas del mapa de teclas. ¡Por supuesto, podría reescribirlo usted mismo para implementar esa habilidad!
lornix
No es la respuesta que quería, pero de todos modos esa es la respuesta. Voy a hurgar un poco en el código fuente y miraré las opciones que ha sugerido. Gracias.
SigueSigueBen
4

Por otro lado, puede adjuntar a una tecla determinada el carácter unicode que combina el carácter de diactitismo en sí, y luego puede escribirlo después de cualquier otro carácter. De hecho, esa es la forma en que se supone que funcionan los caracteres de combinación Unicode.

En X11 hay teclas muertas, las teclas muertas funcionan a la inversa: primero la tecla muerta, luego la letra base. Hay un <dead_belowmacron>, puedes adjuntarlo a alguna tecla.

Luego, debe editar el archivo de composición para su configuración regional (si alguien sabe cómo agregar definiciones al archivo de composición desde una ubicación definida por el usuario que agradecería) y agregar líneas como:

# when the output is a single unicode char, you put also the corresponding
# X11 symbol name
# <symbol> <symbol> : "one-char-string" <symbol>
<dead_belowmacron> <d> : "ḏ" U1E0F
<dead_tilde> <n> : "ñ" <ntilde>
# when the output is a multicharacter string, you put just the string
# <symbol> <symbol> : "string"
<dead_belowmacron> <v> : "v̱"

el archivo de composición a utilizar se define por la configuración regional en el archivo /usr/share/X11/locale/compose.dir (la ruta puede variar).

Pablo Saratxaga
fuente