Me gustaría definir una composeclave en mi sistema (Debian Sid "Wheezy"). No tengo Xorg (y no quiero ningún entorno de escritorio). Solo en terminal.
Me gustaría configurarlo en mi Alt-Grtecla (derecha Alt). Lo he intentado durante un tiempo, pero no puedo entender cómo configurarlo.
He estado investigando y encontré algunas instrucciones:
$ showkeyme da el códigoAlt-Grclave de mi clave (# 100)$ dumpkeysy$ dumpkeys --compose-onlygenerar "el contenido actual del controlador del teclado", en el formato especificado porkeymaps, de acuerdo con lamanpágina$ loadkeyscargar una tabla de traducción de teclado
Estoy seguro de que no es tan difícil, pero extraño cómo lidiar con eso ...
console
keyboard-layout
cedbeu
fuente
fuente

Respuestas:
En los sistemas Debian y Ubuntu más nuevos, la configuración del teclado se coloca
/etc/default/keyboardy comparte entre X y la consola. Solo correy seleccione
Compose key:Right Alt (AltGr)en la pantalla apropiada.También puede poner
XKBOPTIONS=compose:ralten/etc/default/keyboardy correrLos sistemas más antiguos tienen una clave de composición en la consola de forma predeterminada. En el
usdiseño, presionar ambas Alt teclas juntas actúa como Compose. 1Por ejemplo: Alt+ AltGr, ", A=> Ä
Si prefiere AltGrsolo ser Compose, necesita cambiar
en su mapa de teclado activo para
La forma más fácil de hacer esto es realizar los cambios anteriores
/lib/kbd/keymaps/i386/include/linux-with-alt-and-altgr.inc.Una mejor manera es crear un nuevo archivo llamado
/lib/kbd/keymaps/i386/include/altgr-is-compose.inccon la línea anterior, crear un nuevo mapa de teclas que lo incluya y establecerlo en su mapa de teclas predeterminado.fuente
dpkg-reconfigureasistente realmente pregunta sobre una clave de redacción, pero dice que no funciona en "modo Unicode" (?). Además, cuando no está en ese modo, dice que Control + período funciona como una clave de redacción. Pero tampoco estoy haciendo que eso funcione.unicode_start. Para mí, todavía funciona, siempre que corrasetupconcomodpkg-reconfiguredice.setupconen mi terminal X (urxvt), dice "No estamos en la consola, la consola queda sin configurar". Además, seshowkeyqueja "No se pudo obtener un descriptor de archivo para la consola". Entty, ambos funcionan peroshowkeydicen (lo primero) que "el modo kb era UNICODE", por lo que quizás esa sea la razón por la que no funciona. Pero, el período Control + funcionatty. OK, tiene sentido ahora.X? Debe ejecutarsetupconen la consola virtual de Linux, por ejemplo, Ctrl + Alt + F1.console-setupque no admite muchas secuencias de composición por defecto. Puedes correrdumpkeys --compose-onlypara ver cuáles. Debería poder modificar elconsole-setupguión de inicio para agregar reglas de redacción adicionales donde se ejecutaloadkeys."componer" en la consola permite escribir dos caracteres pero generar un tercero.
El problema es que las definiciones de composición usan bytes , tanto como las dos entradas (es decir, no se puede definir la composición en términos de teclas mecanografiadas sino solo en términos de símbolos mecanografiados) y para la salida.
para que funcione en UTF-8, que es multibyte (1 a 4 bytes, al menos) requeriría grandes cambios en la forma en que se maneja la entrada de la consola, y reemplaza la matriz de caracteres simple actualmente utilizada por algo más complejo. Parece que no hay planes para hacerlo (el consenso entre los desarrolladores de kernel es que la consola debería seguir siendo una consola, algo simple, solo utilizada para el último recurso; si realmente necesita unicode, entonces probablemente también necesite bidi, modelado, etc.) es mejor ejecutar un terminal gráfico (un xterm de pantalla completa en X11; pero hay otras posibilidades).
Entonces, de hecho, no funciona, y no funcionará, con caracteres multibyte en la consola. PERO, todavía funciona si restringe las definiciones de redacción a ASCII simple.
Y también descubrí que también funciona si la salida está en iso-8859-1 (que corresponde a valores unicode de hasta 0x00ff); para eso puedes poner un guión de inicio en una línea:
y coloque en ese archivo las definiciones de composición que desee (tenga cuidado de guardar el archivo en la codificación ISO-8859-1; y use caracteres más grandes que 0x7f como salida solamente) la sintaxis de dicho archivo es muy simple, líneas como esta:
p.ej:
componer 'a' 'a' a 'å' componer 'a' 'e' a 'æ'el apóstrofe tiene que ser escapado.
el efecto de las claves diacríticas muertas también se definen en ese archivo; para dead_acute + a define una línea como:
dead_grave usa backtick (`), dead_diaeresis usa doublequote ("), dead_circumflex usa circumflex (^) y dead_tilde usa tilde (~).
fuente
compose 'a' 'a' to 'å'encompose 'o' 'a' to U+00E5, de lo contrarioloadkeysse quejó de un error de sintaxis.iconv -f utf-8 -t utf-8 filenamesi no hay errores, está en utf-8echo $?al menos no hay errores y no hay salidastderr. Además,fileme dice que es UTF-8, por lo que tiene sentido.