Opret dit eget tastatur

Du kan oprette dine egne tastaturer ved at oprette tastaturfiler. For øjeblikket har KTouch ikke en tastaturseditor, men det er alligevel ganske enkelt at definere sit eget tastatur. Det kræver ikke meget mere end lidt matematik for at regne geometrien ud og en del tid. Det bedste er at begynde med en eksisterende tastatursfil, oprette en kopi for din tastaturslayout og blot justere linjerne.

For øjeblikket er tastaturfiler almindelige tekstfiler kodede med UTF-8. I en af de følgende versioner af KTouch kommer tastaturdata også at opbevares i XML-filer. Derfor forklarer jeg kun kortfattet tastaturfilens struktur.

En tastatursfil begynder oftest med et sidehoved som indeholder nogen information om forfatterne og tastaturets type.

####################################################
#    Ktouch
#    Tastaturslayoutfil for dansk tastaturslayout
#    Kod=UTF-8
####################################################

Alle linjer som begynder med et nummertegn '#' anses for at være kommentarer. Efter afsnittet med sidehovedet følger en blok med såkaldte “fingertaster”, som angiver hvilepositioner for alle otte fingre.

#
#          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

Taster har standarddimensionen 8 enheder, så ved at bruge et gitter på 10 enheder får du et tastatur som ser normalt ud. Det første tal er Unicode-tegnkoden som er et decimalt tal. Tastteksten er teksten som skrives på tasten kodet som UTF-8 (automatisk med nyere versioner af Linux, sørg blot for om at editoren gemmer filer i UTF-8 format).

Næste afsnit indeholder specialtaster, som bortset fra backspace og returtasten kun er dekorative.

#
#           Unicode Tasttekst x     y     Bredde Højd
#
ControlKey  260      Tab        0     10    15    10
ControlKey  13       Enter      138   20    12    10
ControlKey  258      Shift      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      Shift      0     30    13    10
ControlKey  259      CapsLock   0     20    18    10
ControlKey  8        BackSpace  130   0     20    10

Teksten du angiver for tasten skrives ud helt og holdent på tastaturet. For tastteksterne “Shift”, “CapsLock”, “Tab”, “BackSpace” og “Enter” tegner KTouch et passende symbol. Derfor kan du bruge disse tasttekster uafhængig af sprog. Øvrige tasttekster såsom Ctrl og Alt skal imidlertid oversættes. Geometrien for kontroltasterne kan være et hvilket som helst rektangel defineret af X- og Y-koordinaterne oppe til venstre samt bredde og højde.

Næste afsnit indeholder alle tegn på tastaturet (undtagen fingertasterne som allerede er defineret) som kan skrives uden at trykke på shifttasten.

#
#          Unicode  Tegn    x    y      Fingertast-Unicode
#
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

Definitionen af disse primære taster eller tegn er stort set det samme som for fingertasterne, men de inkluderer en yderligere egenskab. Den sidste Unicode-tegnkoden identificerer tilhørende fingertast, egentlig hvilket finger som skal bruges for at trykke på tasten.

Det følgende og sidste afsnit i en tastaturslayoutfil definerer alle taster som trykkes ned ved at bruge en modifikatortast såsom shifttasten.

#
#           Unicode   Mål-Unicode     Finger-Unicode  Ctrl-Unicode    Kommentar
#
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                 #@

De “skjulte taster” styrer i virkeligheden hvad der skal ske på tastaturet når du skriver et bestemt tegn. Det første Unicode-tal er tegnkoden for tegnet du definerer. Det andet tal er tegnkoden på tastaturet (en af de allerede definerede normale taster). Det tredje tal angiver en fingertast (hvor hviler fingeren som skal bruges til at trykke på tasten) og det sidste tal angiver modifikatortasten som du skal trykke ned for at få tegnet.

Lad os kigge på et eksempel:

Du ønsker at definere tegnet stort 'R'. Det har unicode 82. Tegnet opnået når der trykkes på 'R' uden en modifikatortast er lille 'r' med unicode 114. Fingeren for 'R' hviler over 'f'-tasten som har unicode 102. For at få 'R' skal du trykke på højre (eller venstre) shift-tast som har koden 264 (dette er rent faktisk ikke en unicode men koden opnået fra et tastetryk i QT). Bemærk at identifikationen af kontroltaster formodentlig vil blive ændret i næste version af KTouch. Men indtil videre kan du bruge de koder der bruges i andre tastaturfiler.