Les clés AltGr ne fonctionnent pas avec Ubuntu dans VirtualBox

8

Je viens d'installer VirtualBox (d'Oracle) dans Windows 7 et j'ai créé une machine virtuelle avec la dernière Ubuntu.

Ici, dans Firefox, je peux utiliser la touche Ctrl gauche, tandis que celle de droite n'a aucun effet. Cependant, je ne peux pas utiliser la touche AltGr (également connue sous le nom de Right Alt) pour produire, par exemple, des accolades comme {} (je l'ai collé via Ctrl V).

Dans une fenêtre de terminal, je peux basculer la "méthode d'entrée" sur "Multipress", puis je peux utiliser AltGr pour taper par exemple {}, c'est ainsi que j'ai produit ces caractères pour cette publication. Cependant, avec "Multipress", les touches Ctrl semblent n'avoir aucun effet. Ainsi, pour par exemple taper Ctrl DI, vous devez cliquer avec le bouton droit et basculer la "Méthode d'entrée" sur "Système (IBus (Intelligent Input Bus))". Ensuite, AltGr ne fonctionne pas.

J'ai essayé de spécifier la touche de composition dans la disposition du clavier des paramètres système.

Avec cela, ni Ctrl ni AltGr ne fonctionnaient.

Voici ce que rapporte xmodmap:

[~]
$ xmodmap -pke | contrôle grep -i
keycode 37 = Control_L NoSymbol Control_L
code clé 105 = Control_R NoSymbol Control_R
[~]
$ xmodmap -pke | grep -i alt
keycode 64 = Alt_L Meta_L Alt_L Meta_L
code clé 204 = NoSymbol Alt_L NoSymbol Alt_L
[~]
$ _

Comment puis-je réparer cela?

Informations supplémentaires: le clavier est un clavier PC standard, un Logitech K120, avec une disposition norvégienne.

De plus, j'ai d'abord essayé de poser cette question sur le site Superuser, mais aucune réponse après 2 jours ...

Alf P. Steinbach
la source
J'ai obtenu la clé AltGr dans Ubuntu. Je devais juste savoir que je devais créer un fichier appelé ".Xmodmap" et ajouter cette ligne: "keycode 113 = Mode_switch Multi_key". Ce que j'ai trouvé dans un rapport de bug sur un problème similaire, à bugs.launchpad.net/ubuntu/+source/xkeyboard-config/+bug/349487/…
Alf P. Steinbach

Réponses:

5

Exécutez la commande xev. Dans la fenêtre xev, appuyez sur la AltGrtouche. Vous verrez quelque chose comme

KeyPress event, serial 29, synthetic NO, window 0x6400001,
    root 0x105, subw 0x0, time 966635535, (243,-207), root:(1891,26),
    state 0x0, keycode 66 (keysym 0xff7e, Mode_switch), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

Notez le code clé; puisque la clé ne fait pas ce que vous voulez, vous verrez quelque chose d'autre (éventuellement Alt_R) au lieu de Mode_switch. Vous souhaitez attribuer ce code clé à Mode_switch, qui est le nom de X11 pour AltGr. Placez la commande suivante dans un fichier appelé .Xmodmap(note majuscule X) dans votre répertoire personnel:

keycode 66 = Mode_switch

De plus, vous devrez peut-être attribuer un modificateur à Mode_switch, mais si tout ce qui se passe est une différence de code clé, il y en aura déjà un. Voir Définir la clé de la lettre espagnole pour plus d'informations.

Exécutez xmodmap ~/.Xmodmappour tester votre fichier. Sur de nombreux systèmes, y compris Ubuntu 10.04, ce fichier est chargé automatiquement dans l'environnement Gnome par défaut. Sur d'autres distributions ou environnements, vous devrez peut-être indiquer explicitement que vous souhaitez exécuter xmodmap ~/.Xmodmaplorsque vous vous connectez.

Gilles 'SO- arrête d'être méchant'
la source
C'est une réponse intéressante, en utilisant le code clé 66. Dans mon commentaire avant de poster cette réponse, j'ai noté que le code clé 113, que je viens de copier et coller sur le net, fonctionne pour cette ligne. Maintenant, lorsque je cours xevcomme vous le suggérez, il rapporte le code clé 108. Pourtant, la ligne que j'ai copiée à partir du réseau fonctionne. Donc, cela n'a apparemment rien à voir avec le code clé. Je l'ai changé à 66, juste pour le plaisir, et j'ai redémarré: cela fonctionne toujours. Je conclus donc que ce n'est pas du tout quelque chose de techniquement exact, mais évidemment un Heisenbug dans Ubuntu.
Alf P. Steinbach
@ AlfP.Steinbach Le code clé est déterminé par votre matériel (ou émulateur matériel, dans une machine virtuelle) et par votre version du noyau et du serveur X. Sur les claviers PC, la bonne touche Alt a le code de touche 113 sur les anciennes distributions Linux et 108 sur les plus récentes (mon exemple avec 66 est parce que j'ai AltGr sur la touche de verrouillage des majuscules). Il y a quelque temps, j'ai demandé comment déterminer automatiquement si j'avais un «ancien» ou un «nouveau» système concernant les affectations de codes clés.
Gilles 'SO- arrête d'être méchant'
Eh bien, cela fonctionne toujours après avoir renommé ce fichier et redémarré. Et le terminal se souvient toujours de l'historique des commandes après le redémarrage. Avec des états dynamiques persistants idiots comme ça, je pense qu'il doit être assez difficile de traquer les bogues: ils ne peuvent pas être reproduits de manière fiable dans un environnement aussi interférent. Je pense qu'une autre preuve de cela est la façon dont le bug sur AltGr est devenu yoyo: fermé comme résolu, rouvert, fermé comme résolu, rouvert, etc. Je pense donc que ce serait une bonne idée (TM) de punir sévèrement la personne qui a introduit cette persistance des paramètres et de l'état. :-)
Alf P. Steinbach