Je veux remapper mon AltGR + Right_Windows mais je ne sais pas comment. Peu importe ce que j'essaie, appuyer sur la touche droite de la fenêtre émet le nom de keysym lorsque la touche droite est enfoncée ou non.
Voici le contenu du fichier xmodmap que je teste actuellement. Dans mon clavier, 38 est le code clé pour "a", 48 est le code clé pour un portrophe / doublequote et 134 est le code clé pour la touche Windows droite.
keycode 38 = 1 2 3 4 5 6 7 8
keycode 48 = 1 2 3 4 5 6 7 8
keycode 134 = 1 2 3 4 5 6 7 8
Lorsque j'appuie sur Right_Alt + apostrophe, il produit 5 mais Right_Alt + a et Right_Alt + Right_Windows donnent 1 (à la fois lorsque l'alt droite est enfoncée et quand ce n'est pas le cas), ce qui n'est pas ce que je voulais.
Ma disposition actuelle du clavier est us(alt-intl)
et l'alt droit est apparemment configuré pour agir comme AltGr / Iso_Level3_Shift. La sortie de xmodmap -pm
est la suivante:
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), 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)
xev
et appuyer sur les différentes combinaisons de touches pour voir si le matériel et jusqu'au niveau Xwindows obtient des touches distinctes pour commencer.us(cz_sk_de)
disposition du clavier et xmodmap.Réponses:
Utilisation de xmodmap pour configurer des mappages de clés individuels
Il est temps de noter les résultats de mes propres recherches.
J'ai pensé que j'avais dû manquer quelque chose dans xmodmap et que ce n'était pas très bien documenté et que les gens étaient confus. Mais il s'est avéré que la conception de X.Org concernant XKB et xmodmap est tout simplement stupide.
Échec épique: xmodmap
Vous pouvez utiliser xmodmap pour redéfinir les mappages existants tant que ces mappages existent réellement dans votre disposition de clavier d'origine. Dans le cas décrit dans la question, vous ne pouvez pas étendre le comportement des touches pour utiliser AltGr. Vous pouvez uniquement modifier les noms de clés AltGr pour les codes clés qui utilisent déjà AltGr.
Voir aussi: http://blog.azundris.com/archives/193-X-treme-pain-XKB-vs-XModMap.html
Solution: Mode_switch
Cette solution de contournement est décrite dans la réponse de @ Ned64. Vous pouvez remapper
AltGr
deISO_Level3_Shift
àMode_switch
.J'ai utilisé avec succès la ligne de commande suivante pour remapper
AltGr
.L'inconvénient est qu'il va casser votre disposition de clavier actuelle mais vous pouvez recréer tous les mappages un par un en utilisant
xmodmap
comme @ Ned64 déjà mentionné.Solution: disposition du clavier modifiée
J'utilise
us(cz_sk_de)
ma disposition de clavier et j'ai essayé de la modifier en ajoutant la configuration des touches que je voulais étendre.(Dans la section
xkb_symbols "cz_sk_de"
de/usr/share/X11/xkb/symbols/us
)Réinitialisez simplement la disposition du clavier pour utiliser la version modifiée.
Maintenant , vous pouvez (1) de type tchèque et entre guillemets anglais et ellipses en utilisant des combinaisons de
,
,.
,Shift
et lesAltGr
clés et / ou (2) remapper les clés à l' aidexmodmap
maintenant qu'ils sont définis.Le principal inconvénient est qu'il
setxkbmap
ne semble pas prendre en charge des emplacements arbitraires pour les dispositions de clavier et que vous devez donc écrire dans la configuration système au lieu de votre répertoire personnel.Conclusion
Cela semble être un exemple de conception trop ingénieuse et mauvaise de X.Org où même une chose aussi triviale que le mappage d'un code clé et une combinaison de modificateurs en un symbole s'avère être un problème. Les outils ne semblent pas fournir un moyen raisonnable de simplement modifier les mappages de touches individuelles dans la configuration utilisateur sans aucun effet secondaire.
la source
Première étape: rendre AltGr utilisable
J'ai découvert que les clés modifiées par AltGr ne fonctionnent sur mon système que si je remappe également la clé AltGr
Mode_switch
, comme ceci:Si vous avez un clavier différent, vous devrez peut-être remplacer le
108
par votre code, vérifiez en tapantpuis utilisez ce numéro. (La clé est normalement appelée
Alt_R
sur les systèmes que je connais.)Alternativement, cela peut également fonctionner si Alt_R n'est pas encore affecté à autre chose:
Votre modificateur AltGr servira désormais la position 3 (avec Maj: 4) dans votre liste de modificateurs.
Étape deux: attribuer des clés selon les besoins
Vous pouvez attribuer des variantes AltGr pour n'importe quelle touche de votre clavier que vous souhaitez. Si vous avez maintenant d'autres clés qui ne correspondent pas au code souhaité, vous devez les réaffecter tout comme vos autres clés (celles que vous avez testées).
Troisième étape: convertir ceci en script
Maintenant, prenez simplement vos
xmodmap
commandes et écrivez toutes les modifications (mais seulement) de votre clavier par défaut dans un fichier - ce qui est plus rapide que de charger un clavier complet. Démarrez ce script une fois après chaque connexion et chaque fois que le clavier est réinitialisé par un processus.J'ai beaucoup expérimenté cela au fil des ans, sous Solaris, IRIX et Linux, et à ma connaissance, c'est la seule solution pour faire fonctionner AltGr - et cela a bien fonctionné pour moi pendant plus de 20 ans.
la source
xmodmap -pm
etxmodmap -pke | grep -w SOMECHANGEDKEY
dans cette situation, pour une clé qui ne fonctionne plus.xmodmap
fonction de votre sortie)xmodmap -pke | grep Alt_R
ne renvoie aucun résultat sur mon système. Mon système est Lenovo ThinkPad X230 avec Gentoo stable. J'ai également essayégrep -i
en vain.us(cz_sk_de)
fonctionnaient plus pour moi. Par conséquent, cette réponse ne fonctionne pas pour moi et ne fonctionnera pas pour beaucoup d'autres.Apparemment, xmodmap ne lit pas l'AltGR par défaut comme il se doit, il peut être limité à des dispositions de clavier spécifiques, peut-être que ce sont toutes des dispositions non américaines, de toute façon, le vrai problème est que vous pouvez remplacer votre disposition de clavier, certaines personnes pourraient pas vraiment envie de le faire car ils doivent utiliser des caractères spéciaux sur la disposition à laquelle ils sont habitués (comme les dispositions de clavier scandinaves qui ont des caractères comme ðþæöáúíóåů et ainsi de suite) ce serait difficile de configurer pour d'autres dispositions de clavier.
Tu peux courir
Pour lier à nouveau AltGR à quelque chose que xmodmap peut fonctionner, et en effet, la 3ème affectation d'un keycoad sera sortie lorsque vous appuyez sur AltGR maintenant, mais cela rompra complètement la disposition du clavier d'origine car aucune liaison de touches AltGR ne fonctionnera plus avec la touche AltGR.
J'ai trouvé deux solutions de contournement qui ne cassent pas ma disposition de clavier existante et n'impliquent pas de changer de disposition , l'une consiste à lier Mode_switch à une autre touche.
La clé idéale pour cela est Super_R qui est juste à côté d'AltGR, le code de clé est 134. Cependant, tous les claviers ne les ont pas et dans mon cas sur un ordinateur portable, je ne les ai pas non plus, j'ai donc décidé de les lier au dernier clé restante que je n'utilise pratiquement jamais, Right Control.
J'ai une disposition de clavier physique américaine, mais la configuration de disposition européenne et la touche moins / plus / bar (également connue sous le nom ISO_Backslash, bien que cela ne soit pas reconnu par xmodmap lui-même) généralement à côté de Z sur ces claviers sont manquantes. Je l'ai lié à Menu (135) mais cela pourrait servir d'alternative à R_Ctrl et Super_R
C'est une mauvaise solution, je suppose.
La deuxième solution de contournement a pris un peu plus de temps à comprendre. Utilisation de sxhkd (alternative à xbindkeys)
Si vous ajoutez ceci à ~ / .config / sxhkd / sxhkdrc :
Votre AltGR fonctionnera normalement, mais lorsqu'il est enfoncé, Mode_switch est basculé (un peu comme le verrouillage des majuscules, mais pour Mode_switch) et toutes les touches xmodmap qui l'utilisent seront verrouillées en mode AltGR jusqu'à ce que vous appuyiez à nouveau sur AltGR pour le désactiver. Cela devrait être simple de faire un script pour le désenclencher automatiquement lorsque la clé est relâchée, mais mes tentatives pour le faire étaient assez boguées, pour dire le moins.
la source