Attribuer la fonction CTRL à la touche Super-L

Bonjour,

je me tourne vers vous pour un petit souci s’il vous plaît.

Les touches Contrôle (gauche et droite) ne fonctionnent plus. Dans la mesure où la touche CTRL gauche est très utilisée en touche raccourcis, je veux la remplacer par la touche windows (celle avec le drapeau).

J’utilise XFCE comme WM, sinon c’est gnome.

xev ne renvoie rien pour les deux touches CTRL par contre pour la touche SUPER :

KeyRelease event, serial 39, synthetic NO, window 0x2a00001, root 0x25c, subw 0x0, time 16089680, (563,13), root:(1376,673), state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False

En me basant sur le wiki keyboards MultimediaKeys, j’ai créé le fichier ~.xmodmaprc comportant :

Je ne sais pas si Control_L est le bon code. Ce fut le seul “code” que j’ai trouvé sur le net pour cette touche.

Je n’ai pas de fichier /usr/share/X11/XKeysymDB (comme indiqué dans le wiki) et il ne semble pas être présent à un quelconque autre emplacement.

J’ai créé le fichier ~/.xsessionrc comportant la ligne xmodmap ~/.xmodmaprc, rien ne semble se passer.

Le fichier .xsession-errors comporte notamment :

//etc/gdm3/Xsession: Beginning session setup... localuser:bastien being added to access control list xmodmap: unknown command on line /home/bastien/.xmodmaprc:1 xmodmap: 1 error encountered, aborting. openConnection: connect: Aucun fichier ou dossier de ce type cannot connect to brltty at :0 /usr/bin/startxfce4: X server already running on display :0 ssh-agent is already running

Des pistes ?

Merci

Chez moi j’ai ça pour mes touches CTRL GAUCHE (37 => CONTROL_L ), puis CTRL DROIT (105 => CONTROL_R ).

KeyPress event, serial 32, synthetic NO, window 0x1c00001,
    root 0x94, subw 0x0, time 253568740, (87,-11), root:(681,264),
    state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 32, synthetic NO, window 0x1c00001,
    root 0x94, subw 0x0, time 253568861, (87,-11), root:(681,264),
    state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 32, synthetic NO, window 0x1c00001,
    root 0x94, subw 0x0, time 253569031, (87,-11), root:(681,264),
    state 0x10, keycode 105 (keysym 0xffe4, Control_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 32, synthetic NO, window 0x1c00001,
    root 0x94, subw 0x0, time 253569132, (87,-11), root:(681,264),
    state 0x14, keycode 105 (keysym 0xffe4, Control_R), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Au pif: Il se peut que tu doives indiquer “keycode” en minuscules.

Bonsoir Zbf et merci pour ta réponse.

Effectivement, “Keyring” doit s’écrire exclusivement en minuscule (soit “keyring”). Lors de l’enregistrement du fichier, le Terminal m’a renvoyé un message d’erreur sur lequel je n’arrive plus à mettre la main. Cependant, dans ~/.xsessions-errors.old il y en a un autre similaire :

Dans le premier message d’erreur (celui que je ne retrouve pas), il s’agissait d’un autre dossier keyring-…

J’ai tenté en mettant Control_L en minuscule ou en le remplaçant par keyring 37.
Evidemment, je n’ai pas la touche SUPER “comme” la touche CTRL.

Il n’y a, effectivement, pas de dossier keyring-mtMoic dans le dossier .cache.

Edit : Alerte retrouvée en fin de fichier ~/.xsession-errors

???

On parlait de “keycode” là, pas de “keyring”.

keyring, c’est autre chose, c’est le gestionnaire de trousseau de clés de Gnome (les mots de passe). Donc rien à voir avec les histoires de clavier.

Quant à savoir pourquoi keyring ne retrouve pas certains des fichiers dans le cache, c’est un mystère, mais je ne m’en étonne pas beaucoup, et c’est peut être bénin.
D’ailleurs, il ne s’agit que d’un “warning”, et non d’une erreur fatale.

Par contre, Control_L, je confirme que tu dois conserver les majuscules.

Je parle donc de ton fichier ~/.xmodmaprc … et de sa 1ère ligne.
Le message d’erreur que tu as indiqué dans ton 1er post indique une erreur de syntaxe sur cette 1ère ligne.
Dedans, tu as mis:

Je te conseille de mettre:

Bonjour

Eh beh :108 bien fatigué moi, hier soir.

Ceci dit, il n’y a que sur le forum où j’ai écrit “keyring”. Dans ~/.xmodmaprc se trouve bien la ligne que tu m’as conseillé :
sur la première ligne : “keycode” écrit en minuscule, espace “133”, espace, signe égal, espace Control_L (avec “C” et “L” en majuscule).

Il n’empêche que lorsque j’ai remplacé le “K” majuscule " par le “k” minuscule au mot “keycode”, que j’ai sauvegardé et fermé gedit, le Terminal m’a retourné une erreur de clé. C’est la première fois que je vois passer cette erreur sur le PC, la coïncidence est tout de même troublante.

Re

sujet résolu (a-priori).

J’ai fini par trouver sur le net

[code]clear control
clear mod4

keycode 105 =
keycode 206 =

keycode 133 = Control_L NoSymbol Control_L
keycode 134 = Control_R NoSymbol Control_R
keycode 37 = Super_L NoSymbol Super_L

add control = Control_L
add control = Control_R
add mod4 = Super_L[/code]

Source : UbuntuAsk

J’ai écrit “a-priori” car je ne sais pas ce que font les autres changements.

Tu peux faire la même chose en rajoutant simplement l’option altwin:ctrl_win dans /etc/default/keyboard (sur la ligne XKBOPTIONS).
Extrait de /usr/share/X11/xkb/rules/base.lst :

  altwin:ctrl_win      Control is mapped to Win keys (and the usual Ctrl keys)

Je viens de faire le test avec succès.

Ca a été un peu long car j’ai commencé par supprimer ~/.xmodmaprc et ~/.xsessionrc.

En conséquence, plus de touche “CTRL” et, en root, impossible d’ouvrir gedit (pas les permissions). Evidemment, nano ne me sert à rien (ben oui, j’ai perdu le CTRL - oui, j’ai osé).

Bref, avec le fichier ~/.xmodmaprc comme précédemment complété :

  • su
  • nano
  • et ajout de la commande altwin:ctrl_win.
    Et enfin :
    rm ~/.xmodmaprc.

Redémarrage de la machine et la touche SUPER agit comme la touche CTRL. C’est SUPER (oui, j’ai osé).

T’aurais pas pu dire ça plus tôt, Iroy :075

:smiley: Je rigole.

J’ai conservé ta commande.

Le sujet est donc résolu avec deux solutions testées et approuvées par mes soins.

Merci tous les deux.

Je rajoute que l’avantage de passer par le fichier /etc/default/keyboard c’est que l’option est également active au niveau console, ce qui peut être utile le jour où le serveur xorg ne démarre plus.