Me gustaría definir una compose
clave 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-Gr
tecla (derecha Alt
). Lo he intentado durante un tiempo, pero no puedo entender cómo configurarlo.
He estado investigando y encontré algunas instrucciones:
$ showkey
me da el códigoAlt-Gr
clave de mi clave (# 100)$ dumpkeys
y$ dumpkeys --compose-only
generar "el contenido actual del controlador del teclado", en el formato especificado porkeymaps
, de acuerdo con laman
página$ loadkeys
cargar 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/keyboard
y comparte entre X y la consola. Solo correy seleccione
Compose key:
Right Alt (AltGr)
en la pantalla apropiada.También puede poner
XKBOPTIONS=compose:ralt
en/etc/default/keyboard
y correrLos sistemas más antiguos tienen una clave de composición en la consola de forma predeterminada. En el
us
diseñ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.inc
con la línea anterior, crear un nuevo mapa de teclas que lo incluya y establecerlo en su mapa de teclas predeterminado.fuente
dpkg-reconfigure
asistente 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 corrasetupcon
comodpkg-reconfigure
dice.setupcon
en mi terminal X (urxvt
), dice "No estamos en la consola, la consola queda sin configurar". Además, seshowkey
queja "No se pudo obtener un descriptor de archivo para la consola". Entty
, ambos funcionan peroshowkey
dicen (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 ejecutarsetupcon
en la consola virtual de Linux, por ejemplo, Ctrl + Alt + F1.console-setup
que no admite muchas secuencias de composición por defecto. Puedes correrdumpkeys --compose-only
para ver cuáles. Debería poder modificar elconsole-setup
guió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:
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 contrarioloadkeys
se quejó de un error de sintaxis.iconv -f utf-8 -t utf-8 filename
si no hay errores, está en utf-8echo $?
al menos no hay errores y no hay salidastderr
. Además,file
me dice que es UTF-8, por lo que tiene sentido.