web-dev-qa-db-fra.com

Faire un backtick produire juste un backtick

Mon backtick key (`) ne produit rien lorsque vous appuyez dessus - je dois appuyer deux fois dessus pour générer un`. Si j'oublie et tape `e, je reçois un e caractère accentué.

Je ne peux résoudre ce problème que temporairement, pour la session en cours, en exécutant:

xmodmap -e 'keycode 49 = Grave asciitilde'

Le problème est que je n'arrive pas à comprendre comment rendre ce changement permanent. J'ai trouvé de nombreuses questions connexes sur Ask Ubuntu, mais aucune ne résout ce problème spécifique.

J'utilise KDE.

5
Robin Green

Dans les préférences système, les dispositions de clavier, il existe trois "variantes" britanniques:

Layout          Variants
------          --------
English (UK)    Default
English (UK)    English (UK, extended WinKeys)
English (UK)    English (UK, international with dead keys)

Mon clavier est doté de touches Windows. J'avais donc choisi la deuxième variante lors du processus d'installation, ce qui semblait raisonnable.

En fait, la différence entre les variantes "Default" et "WinKeys étendues" semble n'avoir aucun rapport avec les touches Windows. La variante "extended WinKeys" apporte en fait de nombreux changements au comportement de la touche AltGr, la plupart d'entre eux pour le meilleur, par exemple, les touches apostrophe et circumflex décalées par AltGr ajoutent l'accent aigu et circonflexe à la lettre suivante, plutôt que la résultats aléatoires que la variante "Default" donne.

Cependant, la variante "extended Winkeys" corrige également le backtick décalé avec AltGr et renvoie une barre brisée telle qu’elle est imprimée sur la touche plutôt que la barre pleine incorrecte fournie par "Par défaut". Cela signifie à son tour que AltGr-backtick ne peut pas être utilisé pour ajouter l'accent Grave à la lettre suivante, ce qui serait cohérent avec la variante "Winkeys étendue", de sorte que quelqu'un a évidemment décidé de simplement remplacer le backtick par cette fonction.

Étant donné que tous les utilisateurs Linux britanniques utiliseraient la fonctionnalité Compose-key pour écrire des lettres accentuées, personne ne connaît les différences entre ces variantes de clavier et cela surprend tout simplement les gens. Dans les divers forums qui mentionnent le fait que ce comportement inattendu était la clé du backtick, tout le monde était perplexe quant à la raison pour laquelle cela s'était passé.

C'est le genre de chose que ce bug provoque. Si je voulais afficher le contenu d'un script Shell quelque part sur le chemin, je pourrais taper:

$ cat `which zegrep`

Mais au lieu de cela, je reçois:

$ cat ẁhich zegrep

... le backtick et "w" se combinent en w-with-grave

Voici le mappage de la clé d'identification par le biais de la mise en page britannique "WinKeys étendue":

$ xmodmap -pke | grep "keycode  49"
keycode  49 = dead_Grave notsign Grave notsign brokenbar notsign bar bar

Et si vous modifiez la configuration du clavier en UK "Par défaut", le mappage de la touche dead_Grave est déplacé vers la troisième position, qui est la position "mode_shifted" (activée par une touche Mode_shift si vous en avez défini une sur votre clavier), ce qui en fait beaucoup plus. sens:

$ xmodmap -pke | grep "keycode  49"
keycode  49 = Grave notsign dead_Grave notsign bar bar brokenbar notsign

Je pense que je devrais signaler un bogue, car il est évident que d'autres personnes se heurtent à cela, mais je ne sais pas trop quoi recommander. Peut-être renommer "UK, WinKeys étendu" en "UK, deadkeys via AltGr", afin que les gens ne la choisissent généralement pas à moins de savoir ce que sont les "deadkeys" et de vouloir ce comportement. Vous pouvez également déplacer la fonction dead_Grave sur la position AltGr-shifted de la clé à l’arrivée, ce qui la rend cohérente avec les autres touches mortes.

Quoi qu'il en soit, il suffit de passer aux dispositions de clavier, d'ajouter une nouvelle disposition et de sélectionner le clavier britannique par défaut.

11
Dave Farrance

Cela s'appelle une "clé morte". Recherchez une variante de la disposition de votre clavier qui dit quelque chose comme "éliminer les clés mortes" ou une variante qui n'est pas "des clés mortes". Pour le clavier allemand, la variante s'appelle English (UK) je pense. Vous pouvez également le définir avec la ligne de commande:

setxkbmap -layout gb -variant basic

Cependant, cela ne sera pas permanent. Fint la base

Si vous n'en trouvez pas, il est possible (et assez facile) de créer votre propre mise en page.

1
January

Merci à @ dave-farrance de répondre https://askubuntu.com/a/183368/5412 .

Si vous aimez par ailleurs la disposition 'WinKeys étendue' (c'était la seule disposition au Royaume-Uni qui me permet de taper AltGr + une voyelle pour produire áéíóú)

Voici une méthode légèrement avancée pour résoudre le problème. Vous devrez vous rappeler à l'avenir que votre dossier personnel contient une disposition de clavier personnalisée qui remplace celle du système.

xmodmap -pke > ~/.Xmodmap
sed -i 's|49 = dead_Grave|49 = Grave|g' ~/.Xmodmap
xmodmap ~/.Xmodmap
0
EoghanM