Créer votre propre clavier

Vous pouvez créer votre propre clavier en créant des fichiers de clavier. Pour l'instant KTouch ne possède pas d'éditeur de clavier mais il est relativement facile de définir votre propre clavier. Cela ne requiert pas beaucoup plus qu'un peu de mathématiques pour établir la géométrie, et un peu de temps. Le mieux est de commencer avec un fichier de clavier existant, créer une copie pour votre propre disposition de clavier et modifier simplement les lignes.

Pour l'instant les fichiers de clavier sont des fichiers texte encodés en UTF-8. Dans une des futures versions de KTouch, les données de clavier seront enregistrées dans des fichiers XML également. Par conséquent je n'expliquerai que brièvement la structure d'un fichier de clavier.

Un fichier de clavier commence habituellement avec un en-tête incluant quelques informations à propos de l'auteur et du type de clavier.

####################################################
#    KTouch
#    Fichier de disposition du clavier pour les dispositions de claviers allemands
#    Code=UTF-8
####################################################

Toutes les lignes commençant par le caractère « # » sont considérées comme des commentaires. La section d'en-tête est suivi par un bloc appelé « touches des doigts », indiquant les positions de repos pour les huit doigts.

#
#          Unicode  KeyChar  x    y
#
FingerKey  97       A        18   20
FingerKey  115      S        28   20
FingerKey  100      D        38   20
FingerKey  102      F        48   20
FingerKey  106      J        78   20
FingerKey  107      K        88   20
FingerKey  108      L        98   20
FingerKey  246      Ö        108  20

Les touches ont les dimensions par défaut de huit unités, utiliser alors une grille de 10 unités donne un clavier d'aspect normal. Le premier chiffre est le code unicode du caractère sous la forme d'un chiffre décimal. Le KetChar est le texte imprimé sur la touche encodé au format UTF-8 (automatique sous les nouvelles versions de Linux®, assurez vous simplement que votre éditeur enregistre les fichiers au format UTF-8).

La section suivante contient les touches spéciales, qui sont - exception faite de Retour chariot et Entrée - justes décoratives.

#
#           Unicode  KeyText    x     y     Width Height
#
ControlKey  260      Tab        0     10    15    10
ControlKey  13       Enter      138   20    12    10
ControlKey  258      Maj      123   30    27    10
ControlKey  264      AltGr      120   40    15    10
ControlKey  265      Ctrl       135   40    15    10
ControlKey  263      Alt        15    40    15    10
ControlKey  262      Strg       0     40    15    10
ControlKey  32       Leertaste  30    40    90    10
ControlKey  257      Maj      0     30    13    10
ControlKey  259      CapsLock   0     20    18    10
ControlKey  8        BackSpace  130   0     20    10

Le texte que vous spécifiez pour la touche est imprimé en totalité sur le clavier. Cependant, pour les textes « Maj », « CapsLock », « Tab », « BackSpace » et « Enter » KTouch dessine les symboles appropriés. Par conséquent vous pouvez utiliser ces KeyText indépendamment de la langue. Cependant les autres KeyText comme Ctrl ou Alt nécessitent d'être traduits. La géométrie des touches de contrôles peut être tout rectangle, défini par les coordonnées supérieures x et y et la largeur et la hauteur.

La section suivante contient tous les caractères présents sur le clavier (exception faite des touches des doigts déjà définies) qui peuvent être saisis sans appuyer sur la touche Maj.

#
#          Unicode  KeyChar   x    y      FingerKeyUnicode
#
NormalKey  94       ^         0    0      97
NormalKey  49       1         10   0      97
NormalKey  50       2         20   0      115
NormalKey  51       3         30   0      100
NormalKey  52       4         40   0      102
NormalKey  53       5         50   0      102
NormalKey  54       6         60   0      102
.
.
.
NormalKey  46       .         103  30     108
NormalKey  45       -         113  30     246

La définition de ces touches est principalement la même que celle des touches des doigts, mais elle inclut une propriété additionnelle. Le dernier code de caractère unicode identifie les doigts associés aux touches. Plus simplement quel doigt doit être utilisé pour appuyer sur cette touche.

La section suivante, qui est également la dernière dans la disposition du clavier, définit toutes les touches qui sont pressées en utilisant l'une des touches de modifications telle que la touche Maj.

#
#           Unicode   TargetUnicode   FingerUnicode   ControllUnicode    
Comment
#
HiddenKey   65        97              97              258                 #A
HiddenKey   66        98              102             258                 #B
HiddenKey   67        99              100             258                 #C
HiddenKey   68        100             100             258                 #D
.
.
.
HiddenKey   124       60              97              264                 #|
HiddenKey   64        113             97              264                 #@

Les « touches cachées » contrôlent réellement ce qui devrait arriver sur le clavier lorsque vous saisissez un certain caractère. Le premier chiffre unicode est le code de caractère du caractère que vous définissez. Le second chiffre est le code de caractère de la touche sur le clavier (une des touches normales précédemment définies). Le troisième chiffre indique une touche de doigt (où est la position de repos du doigt qui doit appuyer sur cette touche) et le dernier chiffre indique la touche de modification qur laquelle vous devez appuyer pour obtenir ce caractère.

Regardons un exemple :

Vous voulez définir le caractère majuscule « R ». Il a le code unicode 82. Le caractère qui est obtenu lorsque le « R » est pressé sans la touche de modification est le « r » minuscule avec le code unicode 114. Le doigt pour le « R » se repose au-dessus de la touche « f » qui a le code unicode 102. Et pour obtenir le « R » vous devez appuyer sur la touche Maj de droite (ou de gauche) qui a le code 264 (en fait ce n'est pas un code unicode mais un code obtenu à partir d'un évènement keypress de QT). Notez que l'identification des touches de contrôle changera probablement dans les prochaines versions de KTouch. Mais pour l'instant vous pouvez utiliser les codes présents dans les autres fichiers de clavier.