Reasignación de mayúsculas para escapar y menú para componer en la consola de Linux

9

Al ejecutar XI, uso un .xmodmaprc para reasignar ciertas claves de esta manera:

! Make it so that both Caps Lock and Escape do Escape
clear Lock
keysym Caps_Lock = Escape
! Remap the menu key as Compose
keysym Menu = Multi_key

¿Cómo puedo lograr lo mismo en la consola?

actualizar

Además de la solución parcial dada en mi respuesta, he aprendido que la consola asigna CTRL- .a Compose. Así que puedo acostumbrarme a eso. Configurar la tecla Menú como Componer no es tan fácil, ya que hay un montón de códigos de teclas asignados nulos y no hay un competidor obvio para un nombre alternativo para Menú.

También me di cuenta de que los enlaces de composición en sí mismos son mucho más limitados de lo que estoy acostumbrado bajo X, y que la mayoría de los caracteres especiales que uso con frecuencia no están allí. ¿Quizás haya una utilidad que traduzca los enlaces de composición de sintaxis X en algo que loadkeyspueda leer?

intuido
fuente
1
Tradicionalmente: con loadkeys. Creo que hoy en día puedes hacer que la consola de Linux lea la configuración X, pero no sé cómo funciona.
Gilles 'SO- deja de ser malvado'

Respuestas:

8

Tendrás que editar el mapa de teclas de tu consola. En mi consola, he asignado Escape a Caps Lock y Caps Lock a Escape. Así es como funciona.

  1. Primero necesitas encontrar tu mapa de teclas. Yo uso el diseño estándar de EE. UU. En mi sistema, se encuentra debajo /usr/share/keymaps/i386/qwerty/us.map.gz.
  2. Haga una copia del archivo con un nuevo nombre, por ejemplo us-nocaps.map.gz.
  3. Descomprima el archivo y ábralo en un editor de texto: gunzip us-nocaps.map.gz && vim us-nocaps.map
  4. Cambie las asignaciones en el archivo a su gusto, por ejemplo, tuve a keycode 58 = Caps_Locklo que cambié keycode 58 = Escape.
  5. Gzip el archivo y cargarlo: gzip us-nocaps.map && loadkeys us-nocaps.

Una cosa más: probablemente tendrá que configurar su distribución de alguna manera para asegurarse de que los nuevos mapas de teclas siempre se carguen en el arranque, de lo contrario tendrá que cargar su mapa de teclas manualmente loadkeystodo el tiempo. Cómo lo hagas depende de qué distribución estés usando.

Cedric
fuente
1
El paso gunzip no es realmente necesario en este caso - en la mayoría de versiones de vimque sólo debe ser capaz devim us-nocaps.map.gz
glittershark
3

Para las nuevas distribuciones de Debian ya no necesita todo esto.

El archivo del teclado describe las propiedades del teclado. Se lee setupcon(1)para configurar el teclado en la consola. En los sistemas Debian, la distribución de teclado predeterminada se describe /etc/default/keyboardy se comparte entre X y la consola. (teclado hombre)

En /etc/default/keyboardconjunto XKBOPTIONS="caps:escape"y luego hacer:

~$ sudo setupcon

La descripción de todos los modelos de teclado, diseños, variantes y opciones disponibles está disponible en /usr/share/X11/xkb/rules/xorg.lst"(teclado de hombre)

Ingo
fuente
1

Con algo de ayuda de Cedric, descubrí que Ubuntu no ha instalado los mapas de teclas donde $ man loadkeysdice que se supone que deben estar ( /usr/share/keymaps). Esta es una instalación completamente nueva, por lo que tal vez solo necesite instalar un paquete para obtener mapas de teclas que no sean los que seleccioné durante la instalación.

En lugar de perseguir ese ángulo, y en un esfuerzo por hacer la solución un poco más robusta y conveniente, estoy haciendo esto:

    $ sudo dumpkeys | sed 's/CtrlL_Lock/Escape/' | sudo loadkeys

Aunque estoy un poco confundido en cuanto a por qué el sistema de Cedric usa el Caps_Lockbloqueo de mayúsculas y el mío CtrlL_Lock, funciona independientemente.

intuido
fuente
Eso es interesante, no sabía dónde había diferencias entre las distribuciones con esos mapas de teclas. Personalmente uso Gentoo, los mapas de teclas son del paquete sys-apps / kbd-1.15.
Cedric
2
A partir de Ubuntu 10.04, los mapas de teclas están en el console-datapaquete. No están instalados por defecto. Puede averiguar en qué paquete instala archivos /usr/share/keymapsejecutando apt-file search /usr/share/keymaps.
Gilles 'SO- deja de ser malvado'