Objectif:
Je voudrais attribuer Alt à CapsLock-key et Meta à Alt-key. Mais de cette manière, Alt-key ne serait plus reconnu comme Alt et CapsLock-key ne serait plus reconnu comme CapsLock.
openSUSE 11.4
Précédemment:
openSUSE 11.1 - puisque je suis le seul utilisateur de mon ordinateur, j'ai "simplement" édité le fichier / usr / share / X11 / xkb / keycodes / xfree86 et cela a fonctionné sans problème. Les clés étaient câblées à leurs symboles au niveau le plus bas.
Problèmes:
xkb
J'ai créé une variante de la mise en page polonaise (pl_ext) qui (pour test) se compose de ces entrées:
key <CAPS> { [ Alt_L ] }; modifier_map Mod1 { Alt_L, Alt_R };
Cependant, cela ne fait tout simplement rien, la touche CapsLock dans xev est reconnue (symbole) comme Alt_L, mais lorsque j'appuie sur la touche CapsLock, elle se comporte comme CapsLock (par exemple, en supposant que vous avez Fichier dans le menu, Alt + F devrait ouvrir ce menu, il ne le fait pas ).
Question: Comment définir un fichier de disposition pour définir CapsLock-key comme Alt et Alt-key comme Meta?
Edit: la moitié du succès ici! Maintenant, j'ai de telles entrées:
key <CAPS> { [ Alt_L ] }; modifier_map Mod1 { <CAPS> }; // this is a difference
et cela fonctionne comme vous le souhaitez. Cela ne signifie pas:
key <LALT> { [ Meta_L ] } ; key <RALT> { [ Meta_R ] } ; modifier_map Mod5 { <LALT>,<RALT> };
Les touches Alt sont reconnues comme Meta par xev, mais je peux toujours ouvrir les menus avec Alt + F, changer de fenêtre, et je ne devrais pas. Et d'un autre côté, je ne peux entrer dans aucun caractère national, et je le devrais.
xfree86
Mais maintenant, cela ne fonctionne pas, je suppose que l'autre table de fichiers est lue au lieu de xfree86.
Question: Comment savoir quel fichier de table de codes clés est utilisé par le système (X / Gnome)?
Edit: La meilleure option pour moi - l'édition des tables de codes clés - a été résolue par la réponse de macias !
xmodmap
La moitié du succès ici. Cette partie fonctionne comme vous le souhaitez:
supprimer Lock = Caps_Lock keysym Caps_Lock = Alt_L
Maintenant, j'ai vraiment la touche CapsLock qui est mappée sur Alt. Mais ça:
keysym Alt_L = Meta_L
... fait une chose étrange. xev montre que Alt-key est mappé sur Meta, mais lorsque j'appuie sur Alt + F (cela devrait être mappé sur Meta + F -> ne rien faire), le menu Fichier est ouvert. De plus, lorsque j'appuie sur Alt + Tab, je reçois un commutateur de fenêtre (je ne devrais pas - Alt est Meta maintenant).
Question: Comment "supprimer" l'ancien comportement de la touche Alt?
Edit: Cette partie est résolue par la réponse de Gilles .
Sommaire:
Répondre à n'importe quelle question résoudrait (espérons-le) mon problème, mais je préfère utiliser xkb entièrement car je pourrais alors emballer tous les fichiers pour xkb et changer la disposition en un seul endroit. Merci d'avance pour toute aide!
Réponses:
(Cette réponse concerne uniquement xmodmap. Je suis sûr qu'il est possible de le faire avec XKB, je ne sais pas comment.)
Les modificateurs et les keyymes sont attribués indépendamment. Mais vous obtenez des effets étranges si vous ne les définissez pas de manière cohérente. Je pense que tout ce qui vous manque, c'est la
add
commande à laquelle attribuer un modificateurMeta_L
, mais vous devrez peut-être également effacer et réaffecter les touches de modification. Vous pouvez remplacerMod1
etMod2
parMod3
,Mod4
etMod5
: ils sont interchangeables, assurez-vous simplement de ne pas en utiliser un à deux fins différentes.la source
keysym Caps_Lock = Alt_L
est que si vous l'exécutez deux fois, cela remet le système dans un état indésirable. C'est pourquoi j'utilise des codes clés ; ils varient entre les systèmes d'exploitation et les architectures (pas entre les claviers), mais pas si souvent.Modification de l'approche des codes clés
J'ai trouvé la réponse sur le forum polonais d'Ubuntu. Maintenant, on n'édite pas le fichier "xfree86" mais le fichier "evdev". De cette façon, vous pouvez apporter des modifications permanentes qui fonctionnent pour toutes les mises en page.
Exemple (sur demande de Gilles) - connectez-vous en tant que root, allez sur
effectuez une sauvegarde du fichier "evdev", puis modifiez-le. Modifiez les codes à votre guise, par exemple dans mon cas:
Vous pouvez trouver ce que les codes en exécutant la commande "xev", mais vous pouvez simplement regarder le fichier "evdev" d'origine.
Déconnectez-vous, connectez-vous, profitez de votre nouveau clavier :-).
la source
Keyboard Preferences
options pourCapslock
remplacer laXKB
configuration personnalisée que j'écris. Comme il s'agit d'une sélection de bouton radio, je ne vois aucun moyen d'empêcher l'application d'une des règles de l'interface graphique.essaye ça:
notez les définitions à deux niveaux. En effet, la valeur par défaut pour LALT est [Alt_L, Meta_L]; si vous ne redéfinissez pas le second, il restera Meta_L.
Regardez cette réponse sur xkb pour savoir comment redéfinir certaines clés sans avoir besoin de modifier les principaux fichiers par défaut (donc pas besoin d'être root). Dans ce cas, vous aurez besoin dans le fichier de symboles locaux d'une petite section comme:
la source