Criar o seu próprio teclado

Poderá criar os seus próprios teclado ao criar os ficheiros respectivos. De momento, o KTouch não tem um editor de teclados, mas é à mesma fácil definir o seu próprio teclado. Não necessita de muito mais que alguma matemática para lidar com a geometria e de algum tempo. O melhor é começar com um ficheiro de teclado existente, criar uma cópia para a disposição do seu teclado e depois ajustar as linhas.

De momento, os ficheiros de teclado são ficheiros de texto simples codificados em UTF-8. Numa próxima versão do KTouch, os dados do teclado também serão guardados em ficheiros XML. Como tal, será aqui explicada de forma breve a estrutura de um ficheiro de teclado.

Um ficheiro de teclado normalmente começa com um cabeçalho que inclui algumas informações sobre o autor e o tipo de teclado.

####################################################
#    KTouch
#    Ficheiro do formato do teclado alemão
#    Código=UTF-8
####################################################

Todas as linhas que comecem por um cardinal '#' são consideradas comentários. Depois da secção do comentário, existe um bloco de teclas dos dedos, que indicam as posições de repouso de todos os 8 dedos.

#
#          Unicode  Carácter 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

As teclas têm a dimensão predefinida de 8 unidades, como tal, se usar uma grelha de 10 unidades irá obter um teclado de aspecto normal. O primeiro número é o código do carácter Unicode, como um número decimal. O Carácter é o texto impresso na tecla, codificado como UTF-8 (isto é automático nas versões mais recentes do Linux®; garanta apenas que o seu editor grava os ficheiros no formato UTF-8).

A próxima secção contém as teclas especiais, que são - à parte do BackSpace e do Enter - meramente decorativas.

#
#           Unicode  Texto      x     y     Largura Altura
#
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

O texto que indicar para a tecla é impresso por completo no teclado. Contudo, para os textos de teclas Shift, CapsLock, Tab, BackSpace e Enter, o KTouch desenha os símbolos apropriados. Deste modo, poderá usar estes textos, independentemente da língua. Os outros textos de teclas, como o Ctrl ou o Alt, necessitam de ser traduzidos à mesma. A geometria das teclas de controlo poderá ser qualquer rectângulo, desde que descrito pelas coordenadas em X e Y do canto superior esquerdo, bem como a largura e a altura.

A próxima secção contém todos os caracteres do teclado (excepto as teclas dos dedos, que já foram definidas) que poderão ser escritas sem carregar no Shift.

#
#          Unicode  Carácter  x    y      TeclaDedoUnicode
#
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

A definição destas teclas ou caracteres primários é mais ou menos a mesma que para as teclas de dedos, só que adicionam uma propriedade adicional. O último código de carácter Unicode identifica a tecla de dedo associada. Basicamente, refere qual o dedo que deverá ser usado para carregar nesta tecla.

A próxima e última sessão de um formato de teclado define todas as teclas que são carregadas com uma tecla modificadora, como a tecla Shift.

#
#           Unicode   UnicodeDestino  UnicodeDedo     UnicodeControlo     Comentário
#
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                 #@

As teclas escondidas estão de facto a controlar o que deverá acontecer ao teclado quando você escreve um determinado carácter. O primeiro número Unicode é o código do carácter que definir. O segundo número é o código do carácter da tecla no teclado (uma das teclas normais já definidas). O terceiro número indica uma tecla de dedo (onde o dedo repousa, quando não é necessário escrever qualquer letra) e o último número indica a tecla modificadora que necessita de pressionar para obter este carácter.

Vejamos um exemplo:

Imagine que deseja definir o carácter 'R' maiúsculo. Ele tem o código Unicode 82. O carácter obtido quando fora carregada a tecla 'R' sem o modificador é o 'r' minúsculo com o código Unicode 114. O dedo do 'R' descansa sobre a tecla 'f', que tem o código 102. Deste modo, para obter o 'R', terá de carregar na tecla Shift direita (ou esquerda) que tem o código 264 (de facto, não um código Unicode mas sim o código obtido por um evento de teclado do QT). Lembre-se que a identificação de teclas de controlo poderá mudar na próxima versão do KTouch. Mas, por agora, poderá usar os códigos dos outros ficheiros de teclado.