Je veux remapper le verrouillage des majuscules pour qu'il s'échappe dans X11 (c'est-à-dire que le fait d'appuyer sur le bouton de verrouillage des majuscules physiques sera interprété comme esc par les applications et le comportement de esc ne changera pas). La solution doit survivre à un redémarrage de X . xmodmap et setxkbmap sont des solutions acceptables (tout comme des programmes similaires). Je ne veux pas traiter avec une interface graphique, car je veux que la solution soit portable et fasse partie de mes fichiers dot. Si je manque une solution meilleure / plus facile / plus évidente, dites-le-moi, mais notez que je n'utilise pas de DE (j'essaye i3wm).
Jusqu'à présent, j'ai essayé d'utiliser xmodmap et setxkbmap avec peu de succès.
Voici ma tentative d'utilisation de xmodmap:
# ~/.xinitrc
xmodmap ~/.xmodmap
et
# ~/.xmodmap
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
Exécuter à $ xmodmap ~/.xmodmap
partir de la ligne de commande fonctionne et fait ce que je veux. Le problème est que cela est réinitialisé à chaque redémarrage de x. C'est là que je m'attends à ce que le xinitrc entre - ne devrait-il pas se charger à chaque démarrage de x et exécuter la commande xmodmap? Si la commande fonctionne, pourquoi ne fait-elle rien lorsqu'elle est lue à partir d'un fichier?
J'ai essayé deux ou trois choses avec setxkbmap, mais aucune n'a fonctionné. Les deux tentatives ci-dessous figuraient dans le dossier à des moments différents.
# ~/.xinitrc
setxkbmap -option caps:esc # attempt 1
setxkbmap -option esc:nocaps # attempt 2
Aucune des commandes n'a fait quoi que ce soit de perceptible à partir de la ligne de commande, donc je suppose que j'ai mal la commande. J'aime l'idée de cette solution car elle est monoligne et ne nécessite rien dans un autre fichier. Si seulement ça marchait.
Est-ce que .xinitrc est le mauvais fichier à utiliser? Je sais que startx se charge depuis ~ / .xinitrc.
Je demande que les solutions possibles contiennent le (s) fichier (s) entier (s), pas seulement une ligne (si plus d'un est requis dans le fichier) donc je ne gâche pas une étape intermédiaire. Par exemple, si j'ai besoin de quelque chose en .xinitrc et de quelque chose en .xcapsrebind, veuillez montrer les deux fichiers et tout le contenu requis (je peux aussi gérer qu'on me dise d'ajouter quelque chose à la fin, mais si un & ou similaire peut être requis, s'il vous plaît dites-moi).
.xinitrc
:setxkbmap -option caps:escape
xmodmap
en.xinitrc
devrait fonctionner. C'est ce que je fais. Peut-être mappez-vous quelque chose d'inhabituel, pour vous assurer qu'il fonctionne réellement lorsque vous démarrez x? De plus, quel gestionnaire de fenêtres / environnement de bureau utilisez-vous? KDE «corrige» périodiquement le mappage de mon clavier sans que je le lui dise. Vérifiez peut-être les paramètres de votre bureau pour vous assurer que rien ne tournexmodmap
derrière votre dos.~/.xinitrc
ne se fait pas fuir. J'utilise i3wm et aucun DE en ce moment, bien que la même chose se produise au Panthéon lorsque j'ai essayé. Pour autant que je sache, i3 ne joue pas avec le xinitrc ou ne charge pas le sien (mais je suis un noob, alors qu'est-ce que je sais?).Option "XkbOptions" "caps:escape"
dans unX
fichier de configuration du clavier, par exemple/etc/X11/xorg.conf.d/10-keyboard.conf
Réponses:
EDIT: Comme l'a souligné un utilisateur utile, ma solution initiale ne survivra pas à une mise à jour. Sa solution dans les commentaires devrait fonctionner. Si vous préférez permuter Caps Lock et Escape à la place, je recommanderais d'ajouter les commandes suivantes à partir de votre configuration .xinitrc ou i3:
.xinitrc:
Fichier de configuration i3 (généralement situé dans .config / i3 / config ou dans .i3 / config)
Je me rends compte que cette question est assez ancienne, mais j'ai pensé que je pourrais ajouter une réponse pour ceux d'entre nous qui essayent encore de comprendre cela.
Après avoir rencontré des problèmes similaires avec certains DE qui ne se chargeaient pas
~/.xinitrc
, j'ai complètement évité xmodmap, je suis allé directement et j'ai/usr/share/X11/xkb/symbols
modifié le mappage key => symbol.Pour ce faire, j'ai édité le fichier de configuration de mon clavier situé à
/usr/share/X11/xkb/symbols
. Pour la plupart des claviers, ce devrait être lepc
fichier.Après avoir ouvert le fichier, j'ai basculé manuellement autour de Escape et Caps_Lock pour leurs clés respectives, le résultat est indiqué ci-dessous). Comme cela affecte la façon dont X mappe le matériel au symbole clé, cela devrait fonctionner, que vous soyez sur GNOME ou i3 ou quelque chose comme ça.
Un extrait de mon fichier résultant est le suivant:
Cela a fonctionné comme un charme pour moi.
En parcourant les fichiers associés, j'ai trouvé des mentions répétées et des implémentations partielles d'une sorte d'indicateur utilisé pour basculer autour de certaines clés, telles que l'échange Escape et Caps Lock. Je suppose que c'est ce que Gnome Tweak Tool et setxkbmap utilisent; cependant, je ne pouvais pas comprendre comment garder ces drapeaux avec le gestionnaire de fenêtres i3. La solution ci-dessus devrait fonctionner correctement.
J'espère que cela résout le problème!
la source
exec --no-startup-id setxkbmap -layout whatever -variant whatever -option caps:escape
...xkb/symbols/pc
fichier système seront écrasées la prochaine foisxkeyboard-config
ou que lesxkb-data
packages seront mis à jour.Deux possibilités:
1)
.xinitrc
n'est pas en cours d'exécution - il est utilisé par xinit, startx et quelques autres méthodes pour démarrer des sessions X, mais n'est pas universellement pris en charge - vous utilisez peut-être un gestionnaire d'affichage qui ne l'exécute pas. Ajouter quelque chose à .xinitrc comme celatouch /tmp/xinitrc-was-run
peut aider à déterminer si c'est le cas.2) Xorg réinitialise automatiquement les paramètres par défaut lorsqu'aucun client n'est connecté - si le .xinitrc se termine avant que le gestionnaire de fenêtres ou quoi que ce soit ne démarre, les modifications de xmodmap ou setxkbmap seront perdues.
S'il y a une option XKB déjà définie que vous souhaitez utiliser, au lieu d'exécuter des programmes pour changer le paramètre à chaque démarrage de Xorg, vous pouvez simplement dire à Xorg de démarrer avec les bons paramètres déjà. Par exemple, afin d'activer les touches Ctrl-Alt-Backspace pour tuer mon Xserver, j'ai installé un fichier nommé
/etc/X11/xorg.conf.d/90-zap.conf
qui contient:Vous pouvez en savoir plus à ce sujet dans les documents X.Org à https://www.x.org/releases/X11R7.7/doc/xorg-docs/input/XKB-Config.html .
la source