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íneakeycode 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
tenerkey <NMLK> { [Delete, Num_Lock] };
al final del mapa de teclas básico. - reiniciar computadora
también probé:
- Editar
/usr/share/X11/xkb/symbols/us
tenerreplace 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.