
Istnieje możliwość tworzenia własnych układów klawiatury poprzez pliki klawiaturowe. Obecnie KTouch nie posiada edytora klawiatur, ale wciąż jest bardzo łatwo zdefiniować własną klawiaturę. Nie wymaga to nic ponad niewielką znajomością matematyki aby ustalić geometrię i nieco czasu. Najlepiej rozpocząć z istniejącym plikiem klawiatury, stworzyć kopię i po prostu dopasować linijki.
Obecnie pliki klawiatur są zwykłymi kodowanymi w UTF-8 plikami tekstowymi. W następnych wersjach KTouch, dane będą przechowywane również w plikach XML. Dlatego wyjaśnię tylko pokrótce strukturę pliku układu klawiatury.
Plik układu klawiatury zwykle rozpoczyna się od nagłówka zawierającego informacje o autorze i rodzaju klawiatury.
####################################################
# KTouch
# Plik układu klawiatury dla języka niemieckiego
# Kodowanie=UTF-8
####################################################
Wszystkie linijki rozpoczynające się od '#' są uważane za komentarze. Po nagłówku, następuje blok tak zwanych „ klawiszy palca”, oznaczających miejsca spoczynku dla wszystkich 8 palców.
# # Unicode KeyChar x y # KlawiszPalca 97 A 18 20 KlawiszPalca 115 S 28 20 KlawiszPalca 100 D 38 20 KlawiszPalca 102 F 48 20 KlawiszPalca 106 J 78 20 KlawiszPalca 107 K 88 20 KlawiszPalca 108 L 98 20 KlawiszPalca 246 Ö 108 20
Klawisze mają domyślny rozmiar 8 jednostek, więc siatka 10 jednostek daje w rezultacie normalnie wyglądająca klawiaturę. Pierwsza liczba to kod Unicode znaku (liczba dziesiętna). KeyText to tekst wyświetlany na klawiszu kodowany w UTF-8 (domyślne kodowanie w nowych wersjach systemu Linux®, upewnij się tylko, że Twój edytor zapisuje pliki w formacie UTF-8).
Następna sekcje zawiera klawisze specjalne, które - poza Backspace'm i Enterem - spełniają wyłącznie funkcje dekoracyjne.
# # Unicode KeyText x y Width Height # KlawiszKontrolny 260 Tab 0 10 15 10 KlawiszKontrolny 13 Enter 138 20 12 10 KlawiszKontrolny 258 Shift 123 30 27 10 KlawiszKontrolny 264 AltGr 120 40 15 10 KlawiszKontrolny 265 Ctrl 135 40 15 10 KlawiszKontrolny 263 Alt 15 40 15 10 KlawiszKontrolny 262 Strg 0 40 15 10 KlawiszKontrolny 32 Space 30 40 90 10 KlawiszKontrolny 257 Shift 0 30 13 10 KlawiszKontrolny 259 CapsLock 0 20 18 10 KlawiszKontrolny 8 BackSpace 130 0 20 10
Tekst, który wyspecyfikujesz dla klawisza jest wyświetlany w całości na klawiaturze ekranowej. Jednak opisy„Shift”, „CapsLock”, „Tab”, „BackSpace” i „Enter” wyświetlają odpowiednie symbole. Dzięki temu możesz użyć tych tekstów niezależnie od języka. Inne opisy, jak Ctrl i Alt muszą być jednak przetłumaczone. Geometria klawiszy funkcyjnych, to dowolny prostopadłościan, zdefiniowany poprzez górny lewy punkt x i y oraz szerokość i wysokość.
Następna sekcja zawiera wszystkie znaki na klawiaturze (poza już zdefiniowanymi klawiszami palców) które można uzyskać bez naciśnięcia klawisza Shift.
# # Unicode KeyChar x y FingerKeyUnicode # KlawiszNormalny 94 ^ 0 0 97 KlawiszNormalny 49 1 10 0 97 KlawiszNormalny 50 2 20 0 115 KlawiszNormalny 51 3 30 0 100 KlawiszNormalny 52 4 40 0 102 KlawiszNormalny 53 5 50 0 102 KlawiszNormalny 54 6 60 0 102 . . . KlawiszNormalny 46 . 103 30 108 KlawiszNormalny 45 - 113 30 246
Definicja tych podstawowych klawiszy jest praktycznie taka sama jak dla klawiszy palców, ale zawierają one dodatkową właściwość. Ostatni kod Unicode identyfikuje połączony klawisz palca, czyli generalnie, który palec jest używany do naciśnięcia tego klawisza.
Następna, a jednocześnie ostatnia sekcja w układzie klawiatury definiuje wszystkie klawisze uzyskiwane przez naciśnięcie klawisza modyfikującego, takiego jak na przykład Shift.
# # Unicode TargetUnicode FingerUnicode ControllUnicode Komentarz # KlawiszUkryty 65 97 97 258 #A KlawiszUkryty 66 98 102 258 #B KlawiszUkryty 67 99 100 258 #C KlawiszUkryty 68 100 100 258 #D . . . KlawiszUkryty 124 60 97 264 #| KlawiszUkryty 64 113 97 264 #@
„Klawisz ukryte” w rzeczywistości kontrolują co powinno się zdarzyć na klawiaturze kiedy wpiszesz konkrety znak. Pierwszy kod Unicode to kod znaku który definiujesz. Druga liczba jest kodem znaku klawisza na klawiaturze (jednego z już zdefiniowanych, normalnych klawiszy) Trzecia liczba oznacza klawisz palca (gdzie spoczywa palec potrzebny do napisania tego znaku) natomiast ostatnia liczba oznacza klawisz modyfikacyjny, który musisz nacisnąć aby uzyskać ten znak.
Popatrzmy na przykład:
Potrzebujesz klawisza dużego 'R', który ma kod Unicode 82. Znak uzyskiwany gdy naciśnie się klawisz 'R' bez modyfikatora to małe 'r' o kodzie 114. Klawisz palca dla 'R' spoczywa nad klawiszem 'f' o kodzie Unicode 102. Ażeby uzyskać duże 'R' musisz nacisnąć prawy (lub lewy) Shift który ma kod 264 (nie jest to kod Unicode, lecz liczba uzyskana ze zdarzenia "keypress" w QT). Pamiętaj, że identyfikacja klawiszy sterujących, prawdopodobnie ulegnie zmianie w następnej wersji programu KTouch. Ale obecnie możesz używać kodów zawartych w innych plikach klawiatury.