GNU/Linux >> Tutoriales Linux >  >> Linux

Reasignar teclas de teclado personalizadas en Linux - Tutorial

Los problemas modernos requieren soluciones modernas. Recientemente me compré una nueva computadora portátil de prueba con Linux, una IdeaPad 3, que compré (desafortunadamente, debido a la escasez del mercado) con el diseño de teclado del Reino Unido en lugar del diseño de EE. UU. Esto significa una ubicación de tecla física subóptima, incluso si usa una variante de teclado diferente. Es decir, las teclas de barra y de retroceso y demás están colocadas de forma incorrecta, además de que la tecla Intro es demasiado pequeña.

Además, esto también significa, con la memoria muscular y todo, terminas escribiendo \ cuando en realidad quieres saltar a una nueva línea, y esto puede ser bastante molesto. Entonces pensé, ¿quizás pueda reasignar las teclas del teclado de una manera pequeña? Pero no quería simplemente reasignar la tecla de retroceso (con la tilde del Reino Unido y los símbolos hash) a un "segundo" Enter, creando así una tecla Enter más grande, todavía quería tener la barra y las teclas de retroceso disponibles. De ahí un ejercicio más complejo. Déjame mostrarte cómo puedes hacer esta configuración un tanto enrevesada pero súper agradable.

Tarea en cuestión

Entonces, déjame explicarte claramente lo que tengo en mente:

  • El teclado físico IdeaPad 3 asignado al Reino Unido tiene la tecla hash/tilde cerca de Intro. Tiene la barra/barra invertida cerca del Desplazamiento a la izquierda (lo que lo hace efectivamente más pequeño).
  • Cuando usa el diseño de EE. UU. en este teclado, termina con:barra/barra invertida asignada a hash/tilde cerca de la tecla Intro, y la tecla con el símbolo de barra/retroceso asignado a los corchetes izquierdo y derecho ( ). Pero eso ya se cumple con la función Shift en las teclas de punto y coma en el diseño de EE. UU., por lo que hay un excedente de teclas, ya sea corchetes o combinación de barra/retroceso.

Por lo tanto, quiero hacer lo siguiente:

  • Vuelva a asignar la clave con la etiqueta del símbolo físico de hash/tilde (usada como barra/barra invertida) a un SEGUNDO Enter. Esto hará que la tecla Intro sea efectivamente más grande, y yo quería esa gran Intro en forma de L invertida como la que normalmente obtendrías en un teclado estadounidense.
  • Vuelva a asignar la tecla separada con el símbolo de barra/barra invertida cerca del cambio a la izquierda (usado como flecha izquierda y derecha en el diseño de EE. UU.) a barra/barra invertida, porque los estoy perdiendo por la reasignación en el primer punto.

Observe el cambio a la izquierda "roto" y Enter. Solo por un diseño físico ineficiente.

Mi tarea requiere dos reasignaciones:primero Enter, luego la barra/barra invertida. Ahora, es importante hacer las reasignaciones de esta manera, de lo contrario, si primero reasignamos la barra/barra invertida, entonces la tecla al lado de Enter no tendrá ninguna asignación en absoluto. ¿Tiene sentido?

Herramientas del oficio:xev y xmodmap

Necesitamos dos utilidades que formen parte del paquete X:no tengo idea de si se haría esto en Wayland y cómo, pero no uso Wayland en general, porque no tiene paridad funcional con X, además Xorg es la sesión predeterminada en la mayoría de las distribuciones que uso, como Ubuntu o Kubuntu.

Vamos a reasignar con xmodmap, pero necesitamos "capturar" los símbolos clave reales para que podamos hacer la reasignación. Para ello, ejecute xev desde una ventana de terminal. La herramienta abrirá una pequeña ventana en la esquina de su pantalla y comenzará a capturar entradas. Si presiona una tecla en el teclado, verá el siguiente resultado en la ventana del terminal, solo un ejemplo:

Evento KeyRelease, serial 40, NO sintético, ventana 0x5a00001,
raíz 0x6a9, subw 0x0, tiempo 2784437, (1131,438), raíz:(1131,475),
estado 0x0, código clave 94 (keysym 0x3c, menos), misma_pantalla SÍ,
XLookupString da 1 byte:(3c) "<"
XFilterEvent devuelve:Falso

Haga esto para agarrar el keysym para la barra/retroceso y las teclas de flecha. No olvide tomar la "segunda" tecla asignada (con Shift), para que pueda asignar ambas y no solo una. De lo contrario, tendremos solo la barra o las teclas de barra invertida, pero no ambas disponibles.

Antes de hacer eso, déjame mostrarte cómo realmente reasignas las teclas. Con xev en ejecución, presione una vez la tecla que desea reemplazar y la tecla con la que desea reemplazarla. Luego ejecuta xmodmap así:

xmodmap -e "keysym HEX =NOMBRE"

Volverá a asignar una clave con el valor HEX para hacer lo que debería hacer la clave con el valor NOMBRE. Por ejemplo:

xmodmap -e "keysym 0x5c =Retorno"

Este comando asigna el símbolo de tecla 0x5c (que corresponde a barra/barra invertida) para que sea Intro. Entonces, una vez que se completa este comando, en mi caso, la tecla física del Reino Unido marcada con el símbolo de almohadilla/tilde, asignada a la función de barra/retroceso en el diseño de EE. UU., ahora actuará como una segunda tecla Intro. Genial.

Pero ahora, también necesitamos mapear la función de barra/retroceso.

Modificador

De hecho, para mapear tanto la funcionalidad estándar como la segunda (Shift) para una tecla, necesitaremos un modificador. Puede verificar qué modificadores existen con:

xmodmap -pm
xmodmap:hasta 4 teclas por modificador (códigos de tecla entre paréntesis):

shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
controlar Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)

Ahora, para reasignar una tecla con DOS funciones, la sintaxis es la siguiente:

xmodmap -e "keysym HEX MOD =NOMBRE1 NOMBRE2"

En nuestro ejemplo:

xmodmap -e "keysym 0x3c Shift_L =barra de barra invertida"

Reasignamos una tecla que corresponde a 0x3c:esta es la tecla marcada con barra/retroceso en el teclado físico del Reino Unido, asignada a flecha izquierda y derecha en el teclado de EE. UU., para que funcione realmente como barra/retroceso. El modificador es la tecla Mayús izquierda. Entonces, si presiona la tecla por sí sola, obtiene una barra invertida, si la usa con Left Shift, obtiene el símbolo de barra (tubería). Y ahora tenemos el diseño que queremos.

Una vez más, recuerde que no estamos perdiendo las teclas de flecha porque ya están asignadas a las teclas de coma y punto cerca de la tecla Mayús derecha. Efectivamente, la combinación del teclado físico del Reino Unido y el teclado virtual de los EE. UU. resultó en dos pares de teclas de flecha, por lo que nos deshacemos de uno y ganamos un Intro adicional.

Script de inicio automático

No se preocupe si comete un error. Reinicie su sistema y volverá a la normalidad. Por lo tanto, para que las reasignaciones personalizadas sean permanentes, necesitaremos crear una secuencia de comandos de inicio automático, que se ejecuta en cada inicio de sesión de usuario y realiza los cambios que necesitamos.

Hay muchas maneras de hacer esto. Le mostraré cómo crear un script de inicio automático para el escritorio Plasma, aunque los principios son los mismos para casi todos los escritorios que existen. Esto es muy similar a lo que hice con el botón Mostrar escritorio en Gnome.

Abra una ventana de Konsole, vaya a ~/.config/autostart-scripts. Aquí, crea un archivo de texto con el siguiente contenido:

[Entrada de escritorio]
Nombre=Intercambio de clave
Exec=intercambio de clave.sh
Terminal=falso
Tipo=Aplicación

Puede usar cualquier nombre que desee y puede nombrar el archivo como desee, pero asegúrese de que tenga un sufijo de escritorio. En mi ejemplo, guardé esto como key-swap.desktop. Hacer este archivo ejecutable:

chmod +x ~/.config/autostart-scripts/key-swap.desktop

Ahora, la línea Exec en el archivo de escritorio hace referencia a un script, que aún no existe. Normalmente, si observa las líneas Exec para otros scripts de escritorio (puede verificar Firefox o Chrome o lo que sea), notará que se escribe un solo comando. Dado que necesitamos dos comandos xmodmap, la solución más fácil es colocarlos dentro de un script de shell separado y luego usar el script como el comando Exec.

En el directorio de secuencias de comandos de inicio automático, cree un archivo llamado key-swap.sh; también hágalo ejecutable.

#!/bin/bash

xmodmap -e "keysym 0x5c =Retorno"
xmodmap -e "keysym 0x3c Shift_L =barra invertida"

salir 0

Este es mi ejemplo. Es posible que tenga necesidades completamente diferentes y que solo necesite un xmodmap, o tal vez siete. Solo como referencia y en aras de la integridad, si tuviera que hacer un solo cambio de xmodmap, podría omitir el script de shell y simplemente colocarlo en el archivo de escritorio.

[Entrada de escritorio]
Nombre=Intercambio de clave clave única
Exec=xmodmap -e "keysym 0x5c =Retorno"
Terminal=falso
Tipo=Aplicación

A través de la utilidad de configuración de Plasma, puede verificar que todo esté bien:

Si alguna vez cambia de opinión, puede deshabilitar o eliminar los scripts, usar diferentes asignaciones de teclado y, en el próximo reinicio, las cosas volverán al estado predeterminado o al nuevo estado personalizado que desee. De esta manera usted tiene la flexibilidad necesaria. Si bien las cosas son permanentes, por así decirlo, siempre puedes cambiarlas.

Conclusión

Ahí tienes Este es mi pequeño tutorial que muestra cómo mejoré la ergonomía predeterminada de mi teclado Lenovo IdeaPad, haciendo un mejor uso de su diseño físico y cambiando las asignaciones de teclas a valores personalizados. Lo que hace que la guía sea aún más interesante es el hecho de que estaba usando un diseño de EE. UU., por lo que hay otro pequeño giro, pero definitivamente será útil si también usa otros idiomas. Recuerde, las marcas físicas en las teclas y la función real no tienen nada en común. Es solo una referencia visual para que a las personas les resulte más fácil encontrar los símbolos correctos.

Con suerte, esto fue práctico. He notado una mejora instantánea en mi velocidad de escritura, además estoy cometiendo muchos menos errores de retroceso. Mis manos pueden continuar trabajando rápido, sin tener que volver a entrenarse para otro diseño físico, que es tan drásticamente diferente de la mayoría de las otras computadoras portátiles y/o teclados que tengo. Con xev y xmodmap, deberías divertirte mucho. Si tiene alguna solicitud similar, o tal vez arcana, envíeme un mensaje y veré qué puedo hacer. Feliz escribiendo.


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

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

  3. Cómo configurar claves SSH para SSH "clave pública/privada" Iniciar sesión en Linux

  4. ¿Cómo puedo obtener el estado del teclado en Linux?

  5. Reasignar las teclas Win, Ctrl y Alt en Linux

Cómo instalar y usar KompoZer en Linux - Tutorial

Cómo instalar y usar Kerkythea en Linux - Tutorial

Cómo instalar Mono o dotNET45 en Linux - Tutorial

Optimización de Notepad++ en Linux

Cómo configurar claves SSH en Debian 11 Linux

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