¿Cómo deshabilitar el cambio de Alt-Arrow de las consolas virtuales?

37

Lo siguiente sucede en diferentes Linuces:

Cuando estoy en una consola virtual, mantenga Altpresionado o presione , el ciclo virtual ttys. Esto es realmente molesto ya que estoy usando fish-shell que también usa este combo de teclas. Yo podría volver a asignar atajos de pescado, pero yo no quiero. En cambio, quiero deshabilitar la función de Linux o reasignarla.

¿Cómo puedo desactivar o cambiar el tty-cycling-key-combo?

Max Ried
fuente
2
Una respuesta que puede ayudarte: superuser.com/questions/290115/…
Didi Kohen

Respuestas:

14

Puede usar el loadkeyscomando para reasignar claves en la consola de Linux. Las siguientes líneas definen las combinaciones de teclas para cambiar de consola (en un teclado de PC):

alt keycode 105 = Decr_Console
alt keycode 106 = Incr_Console

Cargue su propio archivo de mapa de teclas que anule estos enlaces con una secuencia de escape que los peces reconocen. Para hacer que una clave envíe una secuencia de escape, debe vincularla a un nombre de clave del formulario y definir una secuencia de caracteres para .FNUMBERFNUMBER

alt keycode 105 = F105
alt keycode 106 = F106
string F105 = "\033\033[D"
string F105 = "\033\033[C"

Diferentes distribuciones (y a veces paquetes diferentes para soporte de consola) almacenan el mapa de teclas del tiempo de arranque del sistema en diferentes ubicaciones en /etc. Busque un archivo llamado *.kmapo *.kmap.gzo *.mapo *.map.gzdebajo /etco consulte el manual de su distribución. Algunas distribuciones almacenan el nombre del mapa de teclas en su /etclugar y colocan el mapa de teclas real en otro lugar; busque una configuración relacionada con el mapa de teclas en /etc/sysconfigu otro directorio de configuración.

Puede escribir su propio mapa de teclas y utilizarlo include "/path/to/foo.map"para hacer referencia al mapa de teclas del sistema, o hacer arreglos para cargar su propio mapa de teclas que contenga solo la configuración que desea cambiar durante el proceso de arranque.

Gilles 'SO- deja de ser malvado'
fuente
¿Estás seguro de la .kmapextensión? No pude encontrar ningún archivo en Fedora 20, pero por otro lado lo encontré /lib/kbd/keymaps/legacy/i386/qwerty/us.map.gz.
Cristian Ciupitu
@CristianCiupitu Mi mal, debería haber mencionado otras formas en que esto se puede hacer. Creo que en Fedora hay una configuración en algún lugar /etc/sysconfigque determina el nombre del archivo de mapa de teclas para cargar al inicio.
Gilles 'SO- deja de ser malvado'
¿Debo obtener mi configuración dumpkeys, guardarla, cambiarla y cambiarla /etc/sysconfig? ¿Eso lo hará persistente?
Max Ried
@Gilles, quizás las páginas de manual para systemd-vconsole-setup.service y [vconsole.conf] ( freedesktop.org/software/systemd/man/vconsole.conf.html ) pueden arrojar algo de luz sobre esto.
Cristian Ciupitu
@MaxRied Recomiendo mantener los dos separados, será más fácil de mantener. Cambie la referencia /etc/sysconfiga un archivo que contenga una includedirectiva para el mapa de teclas estándar.
Gilles 'SO- deja de ser malvado'
44

Aquí hay una solución única:

sudo sh -c 'dumpkeys |grep -v cr_Console |loadkeys'
Tobu
fuente
Sugeriría agregar esto como un comando en 'aplicaciones de inicio'.
Samy Bencherif
20

Reformulé la respuesta de Tobu para cambiar solo lo absolutamente necesario:

sudo sh -c 'dumpkeys -k|grep -v Incr_Console|grep -v Decr_Console|grep -v Last_Console|loadkeys'

NB: Como se dijo, esta es una solución única, y probablemente desaparecerá después de un reinicio.

Gunar Gessner
fuente
1
Dos soluciones: 1. Volcar solo las combinaciones de teclas para evitar un error de sintaxis en las teclas de carga; 2. También elimine Last_Console (Alt + Tab): sudo sh -c 'dumpkeys | grep -v Incr_Console | grep -v Decr_Console | loadkeys' ¡Muchas gracias por esto!
Reuben Thomas
Además de mi comentario anterior, descubrí que la luz de Bloqueo de mayúsculas todavía se encendía y apagaba (aunque el Bloqueo de mayúsculas todavía estaba asignado a Control en mi sistema). Para solucionar esto, filtrar la línea que contiene Caps_Lock no funciona, ya que es la única asignación para el código clave relevante, por lo que no se sobrescribe cuando se vuelve a cargar la lista filtrada de asignaciones. Al final, la solución más simple fue volcar un mapa de teclas "bien conocido" y luego cargarlo explícitamente.
Reuben Thomas el
14

A veces tuve el problema con Ubuntu 18.04:

sudo kbd_mode -s

Hizo el trabajo. (por lo menos temporalmente)

Puede encontrar un informe de error largo aquí en la plataforma de lanzamiento .

Bobina
fuente
¿Como funciona esto? Dudo en experimentar porque la página del manual dice "Advertencia: cambiar el modo del teclado, aparte de entre ASCII y Unicode, probablemente hará que su teclado sea inutilizable".
nshiff
1
Hola, agregué un enlace.
Bobina
¡Gracias! Esto funcionó. Traté de hacer clic en "Sí, me afecta" en bugs.launchpad.net/ubuntu/+source/console-setup/+bug/520546 pero sigo recibiendo un error de tiempo de espera. ¿Alguna idea de como arreglarlo?
6005
Supongo que debería ser temporalmente o debe completar un informe de errores para el sistema de informes de errores. : p
Bobina