GNU/Linux >> Tutoriales Linux >  >> Linux

Reasignar teclas sin xmodmap o cualquier herramienta X

Primero, las buenas noticias

La consola del sistema Linux tiene absolutamente su propio conjunto de asignaciones de teclado, que se pueden administrar utilizando las herramientas del kbd paquete, específicamente dumpkeys y showkey para descubrimiento y loadkeys para cargar en un mapeo personalizado. La pregunta de SuperUser ¿Cómo cambiar el mapa de teclas de la consola en Linux? tiene una respuesta con buena información sobre cómo usar estas herramientas.

Ahora, las malas noticias

Si bien es cierto que esas herramientas le permitirán reasignar las teclas en la consola de Linux, sin involucrar a xmodmap o requiriendo que X se esté ejecutando, solo afectan las asignaciones de teclas en la consola de texto virtual. Los cambios no tendrán absolutamente ningún efecto en el entorno gráfico, porque el sistema XInput/evdev de X lee los dispositivos de entrada directamente y realiza su propio procesamiento.

Entonces, si esperaba evitar usar xmodmap simplemente reasignando en la consola y haciendo que se aplique en todas partes, me temo que eso no funcionará. De hecho, necesitaría reasignar ambos la consola (usando loadkeys ) y X11 (usando un método como xmodmap ), para usar el mismo diseño de teclado en todas partes.

La solución al xmodmap lentitud (y errores, ya que sus reasignaciones fallan y no son persistentes en entornos de escritorio que usan cambios de diseño) sería definir un nuevo diseño de teclado basado en el diseño que estaba usando anteriormente, en lugar de aplicar modificaciones de tiempo de ejecución. En el inicio de X, cargaría ese diseño nuevo y reasignado en lugar de lo que esté usando ahora. (Parece que este es ahora el único forma de modificar de manera confiable la distribución del teclado en Ubuntus recientes, y posiblemente en otras distribuciones, como su xmodmap ya no es útil.)

Para obtener información sobre cómo definir y usar un xkb personalizado disposición del teclado, consulte:

  1. Cómo:Definiciones de diseños de teclado personalizados en la Wiki de la comunidad de Ubuntu.
  2. Cómo modificar un diseño de teclado en Linux, una publicación de blog de Romano Giannetti.

Ambos fueron escritos este año (2014), por lo que la información debe estar actualizada. La información de la wiki de Ubuntu debería ser aplicable a cualquier distribución, en su mayor parte, ya que todas usan el xkb sistema en X.


En realidad, hay formas de reasignar a un nivel lo suficientemente bajo como para aplicarlo a todo el sistema, X11 o no, y se han vuelto más importantes que nunca ahora que estamos viendo la aceptación de los compositores de Wayland que no exponen una interfaz de usuario para la reasignación de libinput. apoyo.

Básicamente, debe reconfigurar cómo la capa de entrada del kernel traduce los códigos de escaneo sin procesar en códigos clave antes de que lleguen a la consola o a la API evdev sobre la que se asientan X11 y Wayland.

Conozco dos formas de hacerlo:

  1. Modificar la base de datos de hardware (hwdb ) entrada para su teclado. udev te permite hacer eso agregando archivos de reglas a /etc/udev/hwdb.d/ y activar una reconstrucción de la base de datos con systemd-hwdb update , y luego obligarlo a que se aplique sin reiniciar a través de udevadm trigger .

    Esta página de ArchiWiki tiene instrucciones completas y dice explícitamente que funcionará tanto para X11 como para entrada de consola.

  2. Hay un demonio llamado evdevremapkeys que se escribió específicamente para reasignar eventos clave en dispositivos evdev para admitir la reasignación de parches mono en clientes evdev que no los admiten, como los compositores de Wayland.

    Básicamente, utiliza el mismo enfoque que los controladores de espacio de usuario como G15Daemon, que necesitan compensar los dispositivos de entrada no estándar. (Abra el dispositivo evdev, trague cualquier evento que pretenda reasignar, para que nadie más que escuche en el dispositivo pueda verlos, luego emita los eventos corregidos a través del uinput API para crear dispositivos de entrada a nivel de kernel desde el espacio de usuario).


Linux
  1. ¿Cambiar la distribución/asignación del teclado tanto en la consola (tty) como en X de una manera agnóstica de X/consola?

  2. Linux – ¿Teclas de reasignación duras del teclado?

  3. ¿Cómo copiar el diseño de partición de un disco completo usando herramientas estándar?

  4. ¿Teclas de acceso directo que son independientes de la distribución del teclado?

  5. ¿Relación entre la distribución del teclado y Xmodmap?

Cómo cambiar entre TTY sin usar teclas de función en Linux

Reasignar teclas de teclado personalizadas en Linux - Tutorial

4 herramientas para descargar cualquier archivo usando la línea de comandos en Linux

¿Cómo abrir el puerto serie en Linux sin cambiar ningún pin?

Cedilla bajo C (ç) en el diseño de teclado 'US international with dead keys' en Linux

¿Qué herramienta puede obtener una vista previa de la fuente de la consola?