Cómo reasignar la tecla Super (izquierda) a la tecla de control


26

¿Alguien podría decirme cómo reasignar mi Super(izquierda) clave a Ctrlclave?

Quiero decir Super(izquierda) debería funcionar como Ctrlclave.


¿Desea que solo la tecla Super izquierda actúe como Ctrl? Es fácil reasignar ambos a la vez desde la configuración de Diseño del teclado, pero cambiar solo uno tendría que hacerse a través de los archivos de configuración.
pconley

Sí, solo quiero que la tecla Súper izquierda actúe como Ctrl ..
Sandy

¿La súper tecla se refiere a la tecla en mi teclado que tiene un logotipo de MS Windows en ella, una mentira entre Ctrl izquierdo e izquierdo alt / derecho alt gr y una tecla con otro logotipo extraño?
René Nyffenegger

1
@ RenéNyffenegger La tecla Super es la Windowstecla en los teclados de PC y la Commandtecla en los teclados de Apple. No estoy completamente seguro de cuál es la otra clave que describes
nhed

Respuestas:


28

Para realizar cambios importantes en su teclado, incluyendo la reasignación de caracteres y el cambio de modificadores, debe usar la utilidad xmodmap: consulte man xmodmap. Hay un par de formas de ejecutar los cambios:

  • ya sea desde la línea de comando

    xmodmap -e "your commands"
    
  • o escriba los comandos en un archivo como .xmodmaprc, luego ejecútelo en sus elementos de inicio de sesión o en su .bashrc con

    xmodmap .xmodmaprc
    

    Si nombra el archivo ~/.xmodmap, se ejecutará automáticamente al iniciar sesión.

Ahora los comandos

Lo que quieres hacer es un proceso de dos pasos. Primero, desasigna Super de su modificador, luego lo asigna al control.

  1. Ejecute xmodmap -pmen una ventana de terminal para obtener una lista de los modificadores vinculados. En mi máquina (y presumiblemente la suya) Super se conoce como mod4. Super_Ly Super_Rson teclas separadas que generan el mismo modificador.

    Ahora puede desasignar el modificador de él. Ejecute el comando xmodmap (utilizando uno de los métodos anteriores)

    remove mod4 = Super_L
    

    Ahora la clave física todavía se conoce internamente como Super_L, pero no hace nada.

  2. Ahora simplemente reasignarlo. Ejecute el comando xmodmap:

    add control = Super_L
    

Si desea deshacer esto más adelante, simplemente ejecute los mismos comandos con los argumentos apropiados.

No Super_R?

La salida de xmodmap -pm puede darle varias claves llamadas Super_L pero ninguna llamada Super_R). Si lo hizo, ahora tiene varias teclas adicionales asignadas a Control, pero ninguna asignada a Super. Tendrás que cambiar el nombre de una clave. (NB: podría darte varios Super_L y al menos un Super_R. Esto está bien).

Todos los nombres clave en la tabla tienen un número hexadecimal entre paréntesis junto a ellos. Este número es el código físico de la tecla en su teclado (puede variar según el modelo). Si necesita cambiar un Super_L a Super_R, primero encuentre el código clave que desea asociar a Super_R (¿no está seguro de cuál es el correcto? Ejecute y xevluego toque el Super correcto un par de veces. En algún lugar del laberinto de salida está " código clave = 133 "(con un número diferente)). Ejecute el comando xmodmap

keycode 133 = Super_R

cambiar el nombre de la clave, luego

add mod4 = Super_R

para asignarlo a Super.


En primer lugar, gracias por pasar tiempo conmigo. Cuando escribí "remove mod4 = Super_L" en la terminal recibí este mensaje: remove mod4 = Super_L: comando no encontrado . Captura de pantalla: i.imgur.com/fbvEA.png
Sandy

1
Ese es un comando para la utilidad xmodmap. Tienes que ejecutarlo por uno de los métodos que di en la primera sección. He editado mi respuesta para que quede más claro.
pconley

¿Podría también decirme cómo ejecutar esos comandos al inicio?
Sandy

¿Cuándo inicias sesión o cuando el sistema arranca? Si es lo primero, simplemente ponga los comandos en el archivo '.xmodmap' en su directorio de inicio; este último sería más apropiado para una pregunta separada en la línea de 'cómo ejecuto un script en el inicio' (presumiblemente, tales preguntas ya se han hecho antes).
pconley

Para mí no funcionó sin keyum . keysym Super_L = Control_L
Aliaksandr Sushkevich

19

Línea de comando:

xmodmap -e "remove mod4 = Super_L"
xmodmap -e "add control = Super_L"

O poner ~/.Xmodmappara activar al inicio:

remove mod4 = Super_L
add control = Super_L

4

En Ubuntu, puede editar /etc/default/keyboardy configurar:

XKBOPTIONS = "altwin: ctrl_win"

Cual:

Ctrl se asigna a las teclas Win (y las teclas Ctrl habituales)

Leer man 5 keyboardpara más información. Puede encontrar todas las combinaciones posibles de opciones en su sistema haciendo:

grep alt /usr/share/X11/xkb/rules/evdev.lst | grep win

2

Si quieres hacer con una GUI:

  1. Instalar / abrir ajustes de Gnome
  2. Hacer clic Keyboard & Mouse
  3. Hacer clic Additional Layout Options
  4. Expandir Ctrl position
  5. Seleccionar Swap Left Win with Left Ctrl

1

Prueba con esto:

clear Control
clear mod4
remove Control = Control_L Control_R
remove mod4 = Super_L Super_R
add Control = Super_L

Pon las líneas anteriores en tu ~/.Xmodmapy ejecuta xmodmap ~/.Xmodmap.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.