Comment remapper la touche Super (gauche) en touche de contrôle

26

Quelqu'un pourrait-il me dire comment remapper ma Superclé (gauche) en Ctrlclé?

Je veux dire Super(à gauche) devrait fonctionner comme Ctrlclé.

Sablonneux
la source
Voulez-vous que seule la touche Super gauche agisse comme Ctrl? Il est facile de remapper les deux à la fois à partir des paramètres de disposition du clavier, mais la modification d'un seul doit être effectuée via des fichiers de configuration.
pconley
Oui, je veux que seule la touche Super gauche agisse comme Ctrl ..
Sandy
La super touche se réfère-t-elle à la touche de mon clavier qui a un logo MS Windows et se situe entre Left ctrl et gauche alt / droite alt gr et une touche avec un autre logo bizarre?
René Nyffenegger
1
@ RenéNyffenegger La touche Super est la Windowstouche sur les claviers PC et la Commandtouche sur les claviers Apple. Je ne sais pas vraiment quelle est l'autre clé que vous décrivez
nhed

Réponses:

28

Pour apporter des modifications majeures à votre clavier, y compris le remappage des caractères et la modification des modificateurs, vous devez utiliser l'utilitaire xmodmap - voir man xmodmap. Il existe deux façons d'exécuter les modifications:

  • soit depuis la ligne de commande

    xmodmap -e "your commands"
    
  • ou écrivez les commandes dans un fichier comme .xmodmaprc, puis exécutez-le dans vos éléments de connexion ou votre .bashrc avec

    xmodmap .xmodmaprc
    

    Si vous nommez le fichier, ~/.xmodmapil sera exécuté automatiquement lors de la connexion.

Maintenant, les commandes

Ce que vous voulez faire, c'est un processus en deux étapes. D'abord, vous démappez Super de son modificateur, puis vous le mappez pour le contrôler.

  1. Exécutez xmodmap -pmdans une fenêtre de terminal pour obtenir une liste des modificateurs liés. Sur ma machine (et probablement la vôtre), Super est appelé mod4. Super_Let Super_Rsont des touches distinctes qui produisent le même modificateur.

    Vous pouvez maintenant en démapper le modificateur. Exécutez la commande xmodmap (en utilisant l'une des méthodes ci-dessus)

    remove mod4 = Super_L
    

    Maintenant, la clé physique est toujours appelée en interne Super_L, mais elle ne fait rien.

  2. Maintenant, remappez-le. Exécutez la commande xmodmap:

    add control = Super_L
    

Si vous souhaitez annuler cela plus tard, exécutez simplement les mêmes commandes avec les arguments appropriés.

Pas de Super_R?

La sortie de xmodmap -pm peut vous donner plusieurs clés nommées Super_L mais aucune nommée Super_R). Si c'est le cas, vous avez maintenant plusieurs touches supplémentaires attribuées à Control, mais aucune n'est assignée à Super. Vous devrez renommer une clé. (NB: cela pourrait vous donner plusieurs Super_L et au moins un Super_R. C'est très bien.)

Les noms de clé dans le tableau ont tous un nombre hexadécimal entre parenthèses à côté d'eux. Ce numéro est le code clé physique de la touche de votre clavier (il peut varier selon le modèle). Si vous devez changer un Super_L en Super_R, recherchez d'abord le code clé que vous souhaitez associer à Super_R (vous ne savez pas lequel est le bon? Exécutez, xevpuis appuyez plusieurs fois sur le bon Super. Quelque part dans le labyrinthe de sortie se trouve " keycode = 133 "(avec un numéro différent)). Exécutez la commande xmodmap

keycode 133 = Super_R

pour renommer la clé, puis

add mod4 = Super_R

pour l'assigner à Super.

pconley
la source
Tout d'abord merci d'avoir passé du temps pour moi. Lorsque j'ai tapé "supprimer mod4 = Super_L" dans le terminal, j'ai reçu ce message: supprimer mod4 = Super_L: commande introuvable . Capture d'écran: i.imgur.com/fbvEA.png
Sandy
1
C'est une commande pour l'utilitaire xmodmap. Vous devez l'exécuter selon l'une des méthodes que j'ai données dans la première section. J'ai modifié ma réponse pour que ce soit plus clair.
pconley
Pourriez-vous également me dire comment exécuter ces commandes au démarrage?
Sandy
Lorsque vous vous connectez ou lorsque le système démarre? Si c'est le cas, placez simplement les commandes dans le fichier '.xmodmap' de votre répertoire personnel; ce dernier serait plus approprié pour une question distincte du type «comment exécuter un script au démarrage» (de telles questions ont probablement été posées auparavant).
pconley
Pour moi, cela ne fonctionnait pas sans keysum . keysym Super_L = Control_L
Aliaksandr Sushkevich,
19

Ligne de commande:

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

Ou mettez-le ~/.Xmodmappour l'activer au démarrage:

remove mod4 = Super_L
add control = Super_L
Coc
la source
4

Sur Ubuntu, vous pouvez modifier /etc/default/keyboardet définir:

XKBOPTIONS = "altwin: ctrl_win"

Lequel:

Ctrl est mappé sur les touches Win (et les touches Ctrl habituelles)

Lisez man 5 keyboardpour plus d'informations. Vous pouvez trouver toutes les combinaisons possibles d'options sur votre système en procédant comme suit:

grep alt /usr/share/X11/xkb/rules/evdev.lst | grep win
Mitar
la source
2

Si vous voulez faire avec une interface graphique:

  1. Installer / ouvrir Gnome Tweaks
  2. Cliquez sur Keyboard & Mouse
  3. Cliquez sur Additional Layout Options
  4. Développer Ctrl position
  5. Sélectionner Swap Left Win with Left Ctrl
Riches
la source
1

Essayez avec ceci:

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

Mettez les lignes ci-dessus dans votre ~/.Xmodmapet exécutez xmodmap ~/.Xmodmap.

rendon
la source