web-dev-qa-db-fra.com

Comment mapper une touche sur une autre sur mon clavier?

Mon bouton de barre d'espace ne fonctionne plus, alors je veux changer le comportement de celui-ci en une autre touche pour simuler un bouton d'espace, alors comment mapper un bouton d'espace à la touche alt/windows de droite ???

7
Black Block

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 y a deux façons d'exécuter les modifications:

  • soit de la ligne de commande

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

    xmodmap .xmodmaprc
    

    Si vous utilisez le fichier ~/.xmodmap, il sera exécuté automatiquement lors de la connexion.

Alt et Super (la touche Windows) sont des modificateurs et se comportent spécialement pour le système. Les clés doivent être désaffectées de leur modificateur avant que vous puissiez remapper quoi que ce soit d'autre. La barre d'espace est considérée comme une clé normale.

Démappage du modificateur

Ouvrez une fenêtre de terminal (Ctrl-Alt-T, si vous ne le connaissez pas bien).

Exécutez la commande xmodmap -pm pour obtenir la liste des touches de modification de votre système. Dans la sortie, la colonne la plus à gauche est la liste des modificateurs disponibles pour le système. Les autres colonnes répertorient les clés liées à ces modificateurs sous forme de paires par keysym (keycode). Par exemple, une ligne de ma sortie est

mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)

Les keycodes correspondent aux clés physiques et peuvent (hypothétiquement) différer entre les claviers. Le keysym est le 'nom' d'une clé. Si la clé est un caractère imprimable, le nom correspond au caractère imprimé.

Vous avez maintenant ce dont vous avez besoin pour retirer une clé de son modificateur correspondant. Je vais prétendre que nous travaillons avec Alt_R.

Exécutez la commande xmodmap (en utilisant l'une des méthodes en haut)

remove mod1 = Alt_R

Remapper la barre d'espace

Ensuite, nous devons savoir ce qu'est la barre d'espace. Exécutez xmodmap -pke dans la fenêtre de votre terminal. Ceci imprimera le contenu de chaque touche de votre clavier. Quelque part dans cette liste, quatre ou cinq écrans est une référence à la barre d'espace. Nous avons besoin de son nom pour pouvoir en associer une clé.

Alerte spoiler: la barre d'espace s'appelle space

Nous avons toujours une clé nommée Alt_R, mais elle ne fait rien. Nous pouvons utiliser son nom pour le remapper à la barre d'espace. Exécutez cette commande xmodmap:

keysym Alt_R = space

Il se peut que vous ayez déjà changé le nom de Alt_R pendant que vous les testez. Peut-être que vous l'avez accidentellement transformé en lettre "a". Vous ne voulez pas transformer "a" en quelque chose d'autre, car vous avez toujours besoin d'une des clés portant ce nom. Si vous vous retrouvez dans cette situation, vous pouvez toujours vous référer à Alt_R par son code clé. Rappelez-vous que sur mon clavier c'est 0x6c. Cela pourrait être différent pour vous. Vous pouvez utiliser cette commande xmodmap pour le changer:

keycode 0x6c = space

Bonne chance!

9
pconley