Actualización para 2020

Actualización para 2020

Estoy escribiendo una nueva distribución de teclado personalizada para Xorg, pero hay un glifo en particular que no existe en Unicode. Sin embargo, es fácil crearlo utilizando una letra estándar más un signo diacrítico combinado.

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+da Ḏ):

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 para todo el sistema como esta?

Respuesta1

EDITAR:

Aún intentando...

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

PERO, si usa un símbolo de clave raro/nunca usado en la definición del mapa de teclas, entonces un Xmodmap global para hacer que ESE símbolo de clave 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 claves no utilizados/de uso especial; elegí LaunchA/B como ejemplo.

Respuesta2

Por otro lado, puede adjuntar a una clave determinada el carácter Unicode que combina la diactitud y luego puede escribirlo después de cualquier otro carácter. De hecho, así es como se supone que funcionan los caracteres combinados Unicode.

En X11 hay claves muertas, las claves muertas funcionan al revés: primero la clave muerta, luego la letra base. Hay un <dead_belowmacron>, puedes adjuntarlo a alguna llave.

Luego necesita editar el archivo Compose para su configuración regional (si alguien sabe cómo agregar definiciones al archivo Compose desde una ubicación definida por el usuario, se lo 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 redacción que se utilizará está definido por la configuración regional en el archivo /usr/share/X11/locale/compose.dir (la ruta puede variar).

Respuesta3

Actualización para 2020

Esta pregunta se hizo en 2012 y la última respuesta (antes de esta) fue en 2013. Durante mucho tiempo, la mejor respuesta ha sido simplemente cambiar de ximauim. Es un reemplazo más o menos directo creado para admitir totalmente Unicode y entrada multilingüe. Entre muchas otras características, uim le permite generar caracteres de puntos de código múltiple U0073+U0331como resultado de presionar una tecla o una combinación de teclas inactivas.

información relacionada