Trucs et astuces
Les trucs et astuces permettent de bidouiller vos fichiers de configuration gérants le comportement du claviers.
Pages spécifiques à certains outils
- Vim et Vimperator ;
- Usage dans Latex ;
- Eee PC : modifications spécifiques à l'Eee PC d'Asus.
Modifier la place des touches
Changer la disposition des touches systèmes sous Linux
Je voudrais avoir les < et > en accès direct
Sous GNU/Linux, dans le fichier xkb de la disposition, déplacer less (<) et greater (>) en première colonne en les inversant avec guillemotleft («) et guillemotright (»). Le code :
key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, leftdoublequotemark ] }; // « 2 < “
key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, rightdoublequotemark ] }; // » 3 > ”
devient :
key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ less, 2, guillemotleft, leftdoublequotemark ] }; // < 2 « “
key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ greater, 3, guillemotright, rightdoublequotemark ] }; // > 3 » ”
Je voudrais avoir un espace insécable automatique avec les guillemets
Il faut ajouter les lignes suivantes dans votre ~/.Xcompose
. Assurez-vous que ce sont bien des espaces insécables qui sont après et avant les guillemets (autrement dit, méfiez-vous des copier-coller : certains éditeurs de texte vont les remplacer par des espaces, ou par un caractère quelconque). Les guillemets sans insécables sont encore accessibles avec <span class="touche" style="background: </>; ">clavier bépoCompose.
# Insécables automatiques
<guillemotleft> : "« "
<guillemotright> : " »"
Rendre capslock utile
Inverser Maj et CapsLock
Dans le fichier xkb de la disposition bépo :
key <CAPS> { [ Shift_L ], actions = [ SetMods(modifiers=Shift) ] };
key <LFSH> { [ Caps_Lock ], actions = [ LockMods(modifiers=Lock) ] };
Maj sur CapsLock en gardant CapsLock en AltGr au même endroit
Dans la section xkb_types
:
type "ALTGR_TWO" { modifiers = LevelThree; map[None] = Level1; map[LevelThree] = Level2; level_name[Level1] = "Base"; level_name[Level2] = "AltGr"; };
Puis :
key <CAPS> { type = "ALTGR_TWO", [ Shift_L, Caps_Lock ], actions = [ SetMods(modifiers=Shift), LockMods(modifiers=Lock) ] };
AltGr dupliqué à gauche
Choisir une touche, comme CAPS ou LFSH ou LWIN ou…
key <CAPS> { [ ISO_Level3_Shift ], actions = [ SetMods(modifiers=LevelThree) ] };
Mettre Backspace sur CapsLock
Sous linux à rajouter dans le xkb :
key <CAPS> { [ BackSpace ] };
Changer la disposition des touches systèmes sur Mac
Sur un Mac (avec Tiger, Leopard ou SnowLeopard, i.e OS X 10.4 ou supérieur), on peut installer et utiliser le panneau de Préférences Systèmes KeyRemap4MacBook (qui n’est pas que pour les MacBook, malgré son nom !) qui permet de changer tout ce qu’on veut ou presque (plusieurs centaines de réglages disponibles, et on peut facilement apprendre comment en créer d’autres — ou bien même demander à l’auteur de KR4MB de les ajouter si on n’y arrive pas), éventuellement avec son compagnon PCKeyboardHack si on veut également re-mapper CapsLock.
Exemple de changements :
- transformer la touche Commande (= « Cmd » ou « Pomme ») qui est à droite de la barre espace en touche Alt (= « Option »), notamment pour les claviers de portables qui n’ont qu’une touche Alt à gauche : sélectionner « Change Command_R to Option_R » dans le sous-menu « Change Command_R Key » ;
- pour ceux qui ont branché un clavier PC sur le Mac, mais veulent retrouver la touche Commande immédiatement à gauche de la barre espace : inverser à gauche les touches Alt et Commande en cliquant sur « Option_L to Command_L » et sur « Command_L to Option_L » dans les sous-menus appropriés (« Change Option_L Key » et « Change Command_L Key ») ;
- échanger CapsLock et la touche Majuscule gauche (Shift_L) : 1. utiliser PCKeyboardHack pour mapper CapsLock sur Shift_L : cocher « Change CapsLock Key », et entrer à droite sur la même ligne le keycode correspondant à Shift_L (= 56, cf. liste indicative sur le panneau de Préférences Système de PCKeyboardHack) [note : sur certains modèles, il se peut que vous ayez à cocher d’abord l’option « Enable CapsLock LED Hack » dans KeyRemap4MacBook (dans le sous-menu « General ») pour que ça marche, cf. la page de PCKeyboardHack (en anglais)] ; 2. utiliser KeyRemap4MacBook pour mapper Shift_L sur CapsLock : dans le sous-menu « Change Shift_L Key », cocher l’option « Shift_L to CapsLock » ;
- tirer profit des touches spéciales Couper/Copier/Coller qui existent sur certains claviers (p. ex. TypeMatrix 2030) : le clavier envoie des « combos » à l’ordi — en l’occurrence : Shift+Delete, Control+Insert et Shift+Insert, respectivement —, vous pouvez remapper ces combos vers Command+X, Command+C et Command+V en cochant l’option correspondante « Use PC Style Copy/Paste #3 » [Attention, pour le bépo c’est un peu particulier, puisque X, C et V ne sont plus au même endroit que sur un clavier normal ! L’option correspondante devrait être disponible dans les jours à venir, le temps que le développeur de KR4MB intègre ces nouvelles suggestions…]
- bien entendu, vous pouvez faire en sorte que certains changements soient actifs sur un clavier, mais pas sur un autre (par exemple si vous branchez un chavier externe sur un portable : vous voulez peut-être que votre clavier interne fonctionne « normalement » — ou en tout cas différemment — quand vous débranchez le clavier externe) ;
- et même, en théorie [en pratique : peut-être à venir prochainement ?…], avoir des changements actifs pour le bépo, mais pas pour l’azerty ;
- si vous êtes un peu bidouilleur, vous pouvez facilement aller plus loin…
Changer la disposition des touches systèmes sous Windows
Pour Windows XP et Windows Server 2003, il existe le programme remapkey.exe
disponible dans le Windows Server 2003 Resource Kit Tools.
Il n'a pas été « validé » pour Windows Vista, toutefois en le lançant en tant qu'administrateur (avec un clic droit sur l'exécutable), vous devriez être en mesure de réaliser des changements :
Utiliser les Options de xkb
La liste des options se trouve généralement dans /usr/share/X11/xkb/rules/base.lst
Quelques options intéressantes :
caps:swapescape inverse ESC et Capslock. shift:breaks_caps Shift annule CapsLock. compose:lwin La touche windows gauche devient Compose. compose:rwin La touche windows droit devient Compose. compose:menu La touche menu devient Compose. compose:caps La touche capslock devient Compose. compose:102 La touche Less-than/Greater-than (êÊ/¦) devient Compose.
Pour activer les options sur une session il suffit de taper :
setxkbmap fr bepo Option1,Option2
Pour désactiver toutes les options :
setxkbmap -option
Pour activer les options à chaque redémarrage il faut rajouter dans la section input device dotée de l'identifiant keyboard :
Option "XkbOptions" "Option1,Option2"
Créer une touche de fonction Fn comme sur les portables
Pour XOrg (Linux, BSD, etc.)
Choisissez une touche comme Alt Gauche (LALT), Win Gauche ou droite (LWIN, RWIN), CAPS, etc. Puis
key <LALT> { [ VoidSymbol ], actions = [ SetControls(controls=Overlay1) ] };
Il ne vous reste plus qu’à choisir quelles touches vous voulez mettre en Fn: pavé numérique, flèches de déplacements, etc. Par exemple pour mettre une flèche de déplacement à gauche sur la touche clavier bépot:
key <AC07> {
type[group1]="FOUR_LEVEL_ALPHABETIC", [t, T, thorn, THORN], overlay1 = <LEFT> }
Vous trouverez un exemple complet ici (et ici une autre configuration plus adaptée pour les vimistes :-)).
Un exemple que l'on peut ajouter sur n'importe quel layout :
partial hidden alphanumeric_keys xkb_symbols "pc78" { key <CAPS> { [ VoidSymbol ], actions = [ SetControls(controls=Overlay1), LockControls(controls=Overlay1) ] }; key <AD07> { overlay1 = <HOME> }; key <AD08> { overlay1 = <UP> }; key <AD09> { overlay1 = <PGDN> }; key <AD11> { overlay1 = <BKSP> }; key <AC07> { overlay1 = <LEFT> }; key <AC08> { overlay1 = <DOWN> }; key <AC09> { overlay1 = <RGHT> }; key <AC10> { overlay1 = <PGUP> }; key <AC11> { overlay1 = <RTRN> }; key <AB07> { overlay1 = <END> }; };
dont le bépo :
partial alphanumeric_keys xkb_symbols "bepo-pc78" { include "fr(bepo)" include "fr(pc78)" };
(à mettre dans votre fichier fr.)
Pour Mac
Grâce à KeyRemap4MacBook, vous pouvez en théorie changer une touche quelconque en touche Fn ; en pratique, en ce moment (= version 6.8.1 de KR4MB), les réglages sont disponibles pour les touches suivantes : Command_R (= touche « Cmd »/« Pomme » de droite), Control_L (= touche Control de gauche), Enter, Option_L (= touche Alt/Option de gauche), Option_R (= la même, mais à droite), Shift_L (= touche majuscule à gauche), Shift_R (= idem à droite), la touche Application d’un clavier PC (ce dernier réglage est disponible dans le sous-menu « For PC Users », puis « Change PC Application Key »). Le réglage est à trouver chaque fois dans le sous-menu correspondant : « Change Command_R », « Change Control_L », etc.
Si cette liste ne suffit pas à vos besoins, on peut la compléter :
- soi-même, en apprenant la syntaxe (pas bien méchante + nombreux exemples dispos) du fichier XML de configuration de KR4MB (explications + tutoriel disponibles (en anglais) sur le site de KR4MB, page Source Code), et en envoyant ensuite sa contribution au développeur pour qu’elle soit intégrée aux prochaines versions (1. plus pratique, pour éviter de devoir recompiler/réinstaller quand on fait une mise à jour, 2. plus sympa, pour faire profiter les autres des additions créées) ;
- si on n’y arrive pas, en demandant gentiment au développeur ce qu’on veut (attention à ne pas abuser de sa disponibilité, même si elle est très grande !).
Pour Windows
Il est possible d'avoir cette fonctionnalité en utilisant PKL.
Modifier le comportement des touches mortes
Je suis espérantiste et je voudrais que ^+v=ŭ et ^+V=Ŭ
Il faut ajouter ce qui suit dans votre ~/.XCompose
<dead_circumflex> <v> : "ŭ" U016D <dead_circumflex> <V> : "Ŭ" U016C
Je voudrais définir des touches mortes de modifieurs (Alt, AltGr, Ctrl,…) (X.Org)
Il vous faut avoir votre propre fichier .xkb pour pouvoir le modifier. Dans la section "xkb_symbols" rajoutez par exemple:
key <FK13> { actions = [ LatchMods(modifiers=Control) ] }; // dead ctrl key <FK14> { actions = [ LatchMods(modifiers=Shift) ] }; // dead shift key <FK15> { actions = [ LatchMods(modifiers=Alt) ] }; // dead alt key <FK16> { actions = [ LatchMods(modifiers=AltGr) ] }; // dead altgr
Il ne vous reste plus qu'à utiliser ces keycodes comme bon vous semblera !
Par exemple, si vous avez défini une couche overlay1 (voir astuce plus haut):
key <AD01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ b, B, bar, brokenbar ], overlay1 = <FK13> }; // b B | ¦
pour avoir un Control mort en fn+b :-)