Trucs et astuces

De Disposition de clavier bépo

Les trucs et astuces permettent de bidouiller vos fichiers de configuration gérants le comportement du claviers.

Pages spécifiques à certains outils

Modifier la place des touches

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 sous Windows

Pour Windows XP et Windows Server 2003 il existe le programme remapkey.exe disponible dans le Windows Server 2003 Resource Kit Tools [1].

Il n'a pas été « validé » pour vista, cependant en le lançant en administrateur (clic droit sur l'exe) j'ai réussi à intervertir Alt avec Majuscule Gauche, j'ai pas poussé plus loin les tests (Olympi 18 janvier 2009 à 12:25 (CET))

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 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 :-)