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.