GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo reasignar la tecla Numlock para eliminarla?

Debido a la disposición de mi teclado, quiero tener presionada la tecla Bloq Num de forma permanente y usar la tecla Bloq Num como tecla de eliminación. Parece que no puedo hacer que esto funcione. Cualquier idea sobre cómo hacer esto sería apreciada.

Editar:estoy ejecutando Ubuntu 16

Esto es lo que he probado:

Usar Xmodmap con numlockx

Inspírate en esta pregunta. Tengo entendido que xmodmap está obsoleto, por lo que probablemente no sea una gran idea.

  • Cree un archivo ~/.Xmodmap con línea keycode 77 = Delete NoSymbol
  • Ejecute xmodmap ~/.Xmodmap
  • Ejecutar numlockx on

Esto permite que bloq num funcione como eliminar y habilita el teclado numérico hasta la primera vez que presiono la tecla bloq num. Luego, la tecla Bloq Num desactiva el teclado numérico.

Usar XKB

  • Editar /usr/share/X11/xkb/symbols/us tener key <NMLK> { [Delete, Num_Lock] }; al final del mapa de teclas básico.
  • reiniciar computadora

también probé:

  • Editar /usr/share/X11/xkb/symbols/us tener replace key <NMLK> { [Delete, Num_Lock] }; al final del mapa de teclas básico.
  • reiniciar computadora

Esto adolece de problemas similares a los del otro método, pudiendo eliminar trabajos, pero la tecla bloq num apaga el teclado numérico. También parece interferir con otras teclas, como la tecla de Windows, cuando el teclado numérico está habilitado. Me gusta tener el control del bloq num usando shift+bloq num. No puedo encontrar ninguna diferencia entre usar replace y no usarlo.

Respuesta aceptada:

Aquí hay una manera de hacer esto usando solo xkb, que creo que es superior a usar xmodmap. Esta respuesta incluye más detalles sobre lo que quería lograr que la pregunta original. Xmodmap y xkb no siempre funcionan bien juntos, este enfoque permite mucha más flexibilidad:

Todo esto proviene de:https://wiki.archlinux.org/index.php/X_keyboard_extension

Hay una lista de keysyms disponibles que parecen funcionar aquí:http://docs.ev3dev.org/projects/grx/en/ev3dev-stretch/c-api/input_keysyms.html

Esto se hace manualmente para permitirle comenzar con la configuración que ya está en su computadora para evitar problemas de compatibilidad con diferentes teclados.
Ejemplos de ejecuciones anteriores de esto se ven en config_files/linux/keyboards

Comience ejecutando xkbcomp $DISPLAY output.xkb para obtener la configuración actual de su teclado
.
Luego agregue:

    interpret osfLeft{
        repeat= True;
        action = RedirectKey(keycode=<LEFT>, clearmodifiers=Lock);
    };
    interpret osfRight{
        repeat= True;
        action = RedirectKey(keycode=<RGHT>, clearmodifiers=Lock);
    };
    interpret osfDown{
        repeat= True;
        action = RedirectKey(keycode=<DOWN>, clearmodifiers=Lock);
    };
    interpret osfUp{
        repeat= True;
        action = RedirectKey(keycode=<UP>, clearmodifiers=Lock);
    };
    interpret osfEndLine{
        repeat= True;
        action = RedirectKey(keycode=<END>, clearmodifiers=Lock);
    };
    interpret osfBeginLine{
        repeat= True;
        action = RedirectKey(keycode=<HOME>, clearmodifiers=Lock);
    };
    interpret osfEscape{
        repeat=True;
        action = RedirectKey(keycode=<ESC>, clearmodifiers=Lock);
    };

a la sección de compatibilidad del archivo generado.

Relacionado:¿Instalar programas en las particiones Root vs Home en Ubuntu?

Al final de la sección de tipos, agregue:

   type "CUST_CAPSLOCK" {
       modifiers= Shift+Lock;
       map[Shift] = Level2;            // Note that this maps Shift only of {Shift,Lock} to Level2. Alt+Shift will be mapped to Level2
       map[Shift+Lock] = Level3;       // but Lock+Shift won't map to Level2 even without this line.
       map[Lock] = Level3;
       level_name[Level1]= "Base";
       level_name[Level2]= "Shift";
       level_name[Level3]= "Lock";
   };
   interpret osfDelete{
       repeat=True;
       action = RedirectKey(keycode=<DELE>, clearmodifiers=Lock);
   };

Busque interpret Caps_Lock y cambie los LockMods a SetMods de modo que el bloqueo de mayúsculas solo establece el modificador, no lo bloquea.

Para permitir que Bloq Mayús + WASD funcionen como teclas de flecha:edite las teclas <AD02> , <AC01> , <AC02> , <AC03> tener tipo CUST_CAPSLOCK y tienen respectivamente osfUp , osfLeft , osfDown , osfRight en la tercera posición.

Para permitir que Bloq Mayús + HJKL funcionen como teclas de flecha:edite las teclas <AC06> , <AC07> , <AC08> , <AC09> tener tipo CUST_CAPSLOCK y tienen respectivamente osfLeft , osfDown , osfUp , osfRight en la tercera posición.

Para permitir que el bloqueo de mayúsculas + 0 se registre como inicio y el bloqueo de mayúsculas + $ para registrarse como fin:edite las teclas <AE04> y <AE10> tener tipo CUST_CAPSLOCK y tienen respectivamente osfEndLine y osfBeginLine en la tercera posición.

Para permitir que Bloq Mayús + barra espaciadora se registren como escape (útil para vim), edite la tecla <SPCE> tener tipo CUST_CAPSLOCK , tener space en la segunda posición y osfEscape en la tercera posición.

Para convertir la tecla bloq num en una tecla de borrar y hacer bloq mayús + bloq num hacer el <NMLK> tener tipo CUST_CAPSLOCK , tienen la posición uno y dos tienen osfDelete y la posición tres tiene Num_Lock

Ahora cargue el archivo modificado nuevamente en el servidor con:xkbcomp output.xkb $DISPLAY .

Si todo funciona, coloque el archivo en algún lugar, ~/.Xkeymap funciona y crea un script, por ejemplo, llamado ~/start_keyboard.sh con:

#!/bin/bash

xkbcomp ~/.Xkeymap $DISPLAY

Hazlo ejecutable (chmod u+x ~/start_keyboard.sh ) y agregue el script a sus aplicaciones de inicio.


Ubuntu
  1. ¿Cómo cambiar/reasignar la tecla de bloqueo de mayúsculas con la tecla de tabulación?

  2. ¿Cómo consolidar varias claves Mok o eliminar las innecesarias?

  3. ¿Cómo eliminar el panel de Gnome?

  4. Cómo eliminar trabajos cron

  5. Cómo eliminar un servicio en Kubernetes

Cómo eliminar un repositorio y una clave GPG en Ubuntu

Cómo eliminar un directorio en Ubuntu 20.04

Cómo eliminar un archivo en Ubuntu

¿Cómo eliminar un dominio en SolidCP?

¿Cómo eliminar un dominio en WebsitePanel 2.1?

Cómo instalar Ansible en Ubuntu 18.04