Je suis un utilisateur d’Ubuntu 10.04 qui cherche un moyen, par exemple, de faire taper le caractère "+" sur mon ordinateur lorsque je Windows Key (je pense que ça s'appelle Super dans le monde Linux) et appuyez sur la touche K clé. J'ai besoin que cela fonctionne dans toutes les applications. (Je suis une personne handicapée en dactylographie et je dois adapter Ubuntu à mes besoins.) Merci!
Puisque vous souhaitez remapper les clés pour toutes les applications, la meilleure option consiste à utiliser xmodmap. Il est flexible et très puissant, mais implique la saisie de quelques commandes dans un terminal.
Le serveur X gère le clavier et tous les événements clés et le traduit en codes clés pour toutes les applications.
L’approche consisterait à mapper une touche de modification (telle que la touche Super ou la touche Alt droite) en tant que touche "commutateur de mode" et à demander au serveur X de générer des codes différents selon que l’on appuie sur une touche avec la touche Mode enfoncée ou non.
Par défaut, aucune clé de commutateur de mode n'est définie et toutes les clés sont configurées pour générer le même code lorsqu'elles sont actionnées avec ou sans commutateur de mode. C'est bien, car cela signifie qu'à l'exception des clés que vous remplacez explicitement, aucune autre clé ne se comportera différemment ni ne nécessitera une configuration supplémentaire.
Toutefois, j'aimerais que vous envisagiez d'utiliser la touche Alt droite comme commutateur de mode, en particulier si vous utilisez également Compiz, car certains plug-ins mappent les raccourcis de la clé (par exemple, le sélecteur de fenêtre, le sélecteur de vitesse, etc.). Si vous n’aimez pas contrôler Compiz via le clavier, alors tout va bien pour Super.
Pour xmodmap, les super-clés sont identifiées comme Super_L ou Super_R. Vous devez en choisir une à utiliser comme clé de changement de mode. Alternativement, la touche alt droite est Alt_R. Vous pouvez les confirmer en exécutant xev et en appuyant sur les touches nécessaires de votre clavier. Voir ce post pour les étapes.
Ouvrez un terminal (Applications -> Accesories -> Terminal
) et exécutez la commande suivante pour créer un fichier avec des associations de clé actuelles . Nous allons utiliser cela comme point de départ.
xmodmap -pke > curkeys.map
xmodmap -pm >> curkeys.map
Ouvrez-le dans votre éditeur de texte préféré. gedit curkeys.map &
l'ouvre dans gedit. Vers la fin du fichier, vous verrez quelques lignes comme celle-ci:
keycode 253 =
keycode 254 =
keycode 255 =
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
Supprimer la ligne commençant par "xmodmap: up to 4 ..."
Modifiez la carte des modificateurs pour qu'elle ressemble à ceci. Mettez le mot "ajouter" au début de chaque ligne et insérez "=" après le nom du modificateur. Supprimez ensuite les codes entre parenthèses et virgules. Notez également que j'ai déplacé Mode_switch
de la ligne mod5
vers la ligne mod3
car elle était vide. Le tableau modifié devrait ressembler à ceci: le contenu réel sera légèrement différent de celui présenté ci-dessous (cela dépend de la disposition de votre clavier).
add shift = Shift_L Shift_R
add lock = Caps_Lock
add control = Control_L Control_R
add mod1 = Alt_L Meta_L Alt_R
add mod2 = Num_Lock
add mod3 = Mode_switch
add mod4 = Super_L Super_R Super_L Hyper_L
add mod5 = ISO_Level3_Shift
Remappez la clé de commutation de mode physique. Ajoutez une ligne comme celle-ci à la fin (remplacez Super_L par Super_R ou Alt_R si nécessaire).
keysym Super_L = Mode_switch
Supprimez le nom de clé (Super_L) de toute définition de modificateur. Pour Super_L, cela signifie le supprimer de la ligne mod4.
add mod4 = Super_R Hyper_L
Maintenant, la touche "Super" de droite agira toujours comme une super touche normale tandis que la touche de gauche aura des propriétés spéciales.
Nous devons maintenant remapper les touches pour produire différents codes, qu’elles soient appuyées en maintenant Super_L enfoncé ou non. Chaque ligne de notre fichier commençant par keycode
spécifie 4 clés d’entraînement pour chaque clé à générer, selon que vous appuyez sur les touches Mod1 (touches majuscules) et Mode switch. ( lien )
!...........................................................................
! Key Base Shift Mode Mode+Shift
!---------------------------------------------------------------------------
keycode 13 = 4 dollar 4 quotedbl
keycode 14 = 5 percent 5 colon
keycode 15 = 6 asciicircum 6 comma
keycode 16 = 7 ampersand 7 period
...
keycode 45 = k K k K
Si nous voulons que Super_L + k génère une touche "+", nous devons le modifier pour le lire.
keycode 45 = k K plus plus
Le dernier plus associe également Maj + Super_L + k à plus, mais cela peut être mappé à autre chose. Pour chaque touche, il y a exactement 1 ligne à modifier. Éditez plus de lignes pour remapper plus de touches - laissez les 2 premières entrées intactes pour conserver le comportement normal de frappe.
Enregistrez le fichier et quittez l'éditeur.
Installez le clavier en exécutant les commandes suivantes dans un terminal. Le premier le configure pour cette session, le second le rend permanent pour les sessions futures.
xmodmap curkeys.map
cp curkeys.map ~/.Xmodmap
Vous pouvez le tester immédiatement en appuyant sur les touches modifiées (Super_L + k par exemple).
Une fois la carte modifiée installée, il est facile d’ajouter de nouvelles clés.
Utilisez xev pour trouver les keycodes et keysyms
testez-le en exécutant cette commande pour mapper la clé:
xmodmap -e "keycode <code> = <base> <shift> <new-mapping> <new-shift-mapping>"
Remplacez les éléments entre crochets (comme <code>
<base>
etc.) par les valeurs appropriées.
Sauvegardez le fichier curkeys.map
.
curkeys.map
et éditez la ligne pour le code correspondant.Renouvelez l'application avec les commandes ci-dessous (la première n'est pas nécessaire si vous avez exécuté l'étape 2)
xmodmap curkeys.map
cp curkeys.map ~/.Xmodmap
Remarque: 1 : les modifications apportées aux raccourcis clavier (via _, par exemple, System -> Preferences -> Keyboard Shortcuts
) affectent la carte de modificateur et seront généralement perdues lors de la prochaine connexion. Alors s'il te plaît, évite ça.
Remarque: 2 : Je reçois parfois des messages d'erreur de ce type lorsque j'utilise cette méthode. Je ne sais pas ce que cela signifie, cependant, ils sont généralement inoffensifs.
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 118 (X_SetModifierMapping)
Value in failed request: 0x17
Serial number of failed request: 263
Current serial number in output stream: 263
Une aide détaillée sur xmodmap est disponible ici .