
Pódense crear teclados propios creando ficheiros de teclado. Actualmente o KTouch carece de editor de teclados, mais ainda así é bastante doado definir un teclado personalizado. Non require máis que algo de matemáticas averiguar a xeometría e algo de tempo. O mellor é comezar cun ficheiro de teclado xa existente, crear unha copia para a nova disposición do teclado e simplemente axustar as liñas.
Actualmente os ficheiros de teclado son ficheiros simples de texto codificados en UTF-8. Nunha próxima versión do KTouch, os datos almacenaranse tamén en ficheiros XML. Polo tanto, só vou explicar brevemente a estrutura dun ficheiro de teclado.
Un ficheiro de teclado normalmente comeza cun cabezallo que inclúe información acerca do autor e o tipo de teclado.
####################################################
# KTouch
# Keyboard layout file for german keyboard layout
# Code=UTF-8
####################################################
Todas as liñas que comecen co carácter "#" considéranse comentarios. Despois da sección do cabezallo sigue un bloque do que se chaman « teclas dos dedos », que indica onde repousa cada un dos oito dedos.
# # 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
As teclas teñen por omisión un tamaño de 8 unidades, polo que empregar unha grella de 10 unidades crea un teclado de aparencia normal. O primeiro número é o código do carácter unicode como número decimal. KeyText é o texto impreso na tecla codificado como UTF-8 (automático nas versións recentes do Linux®; asegúrate de que o editor garda os ficheiros no formato UTF-8).
A sección seguinte contén teclas especiais que son, aparte da que borra para tras e o Intro, simplemente decorativas.
# # Unicode KeyText x y Width Height # 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 especificado para a tecla imprímese completamente no teclado. Porén, o KTouch debuxa os símbolos axeitados para « Maiúsculas », « Bloqueo de maiúsculas »« Tabulador », « Borrado para tras » e « Intro ». Por iso se poden empregar estes textos de tecla independentemente da lingua. Porén, hai que traducir os outros, como Ctrl ou Alt. A xeometría das teclas de control poden ser calquera rectángulo, definido con coordenadas x e y arriba á esquerda e largura e altura.
A sección seguinte contén todos os caracteres do teclado (excepto as teclas dos dedos xa definidas) que se poden escribir sen premer as Maiúsculas.
# # 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
A definición destas teclas ou caracteres primarios é basicamente a mesma que as teclas dos dedos, mais inclúen unha propiedade adicional. O derradeiro carácter unicode identifica a tecla do dedo asociada. Basicamente, que dedo hai que empregar para premer esta tecla.
A seguinte, e derradeira, sección dunha disposición de teclado define todas as teclas que se premen empregando unha tecla modificadora como a das maiúsculas.
# # 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 #@
As « teclas acochadas » realmente controlan o que acontece no teclado cando se escribe determinado carácter. O primeiro número unicode é o código do carácter do carácter que se defina. O segundo número é o código do carácter da tecla do teclado (unha das teclas normais xa definidas). O terceiro número indica unha tecla de dedo (onde repousa o dedo que hai que empregar con esa tecla) e o derradeiro número indica a tecla modificadora que hai que premer para obter ese carácter.
Vexamos un exemplo:
Queremos definir o carácter "R" maiúsculo. Ten o unicode 82. O carácter que se obtén cando se preme a tecla "R" sen modificar é o "r" minúsculo, co unicode 114. O dedo do "R" repousa sobre a tecla "f", que ten o unicode 102. Para obter o "R" hai que premer a tecla de maiúsculas dereita (ou esquerda), que ten o unicode 264 (realmente non se trata dun unicode, senón do código que se obtén dun evento "premer tecla" do Qt). Lembra que a identificación das teclas de control mudará probabelmente na vindeira versión do KTouch. Mais, polo de agora, pódense empregar os códigos utilizados noutros ficheiros de teclado.