# The &ktouch; Handbook

Håvard Frøiland

    &Haavard.Froeiland.mail;

Andreas Nicolai

    Andreas.nicolai@gmx.net

1999-2007 Håvard Frøiland, Andreas Nicolai
&FDLNotice;
2008-08-23
1.7.1

&ktouch; is a program for learning to touch type. &ktouch; provides you with text to train on and adjusts to different levels depending on how good you are. It displays which key to press next and the correct finger to use.

KDE touchwriting touchtyping typing typewriting education ktouch touch type

## Using &ktouch;

### Introduction

#### What is &ktouch;?

&ktouch; is a program for learning to touch type.

&ktouch; provides you with text to train on and adjusts to different levels depending on how good you are. It shows your keyboard and indicates which key to press next and the correct finger to use.

The main screen of &ktouch;
The main screen of &ktouch;

&ktouch; is an excellent touch typing tutor. You learn typing with all fingers, step by step, without having to look down at the keyboard all the time to find your keys (which slows you down a lot). It is convenient for all ages and the perfect typing tutor for schools, universities and individuals. It is free and licensed under the &GNU; Public License, so you will never have to pay anything for the program or any update.

#### Features

In its current version, &ktouch; 1.7.1 has quite a number of helpful features, such as:

- Support for many different training lectures in many languages including language specific text fonts and a comfortable lecture editor

- Support for different keyboard layouts with the ability to use user-defined layouts

- During your training session comprehensive statistical information is obtained to help you (or your teacher) analyse your progress

Many other features are included and will be discussed in the appropriate chapters of this manual.

### Learning touch typing with &ktouch;

Here's another screenshot of &ktouch; in action, this time with a german keyboard and training lecture:

Main screen of &ktouch;
Main screen of &ktouch;

Even though learning touch typing with &ktouch; and using the program should be very simple we will look a bit closer at &ktouch; in the following sections.

#### Getting started

When you start &ktouch; you can see the screen shown above. The main program window shows three main sections:

1. Some typing statistics in info boxes at the top

2. The text you need to type (in the teacher's line) and the text that you have typed so far (in the student's line)

3. The keyboard (that hopefully looks like yours)

We look at these sections later again.

Ok, the first time you start &ktouch; it will open a lecture and select a keyboard layout for the locale and keyboard defined in the &systemsettings;. To adjust the keyboard layout go to Settings Keyboard Layouts... and select the country you're in (or some country which uses the same keyboard layout as you). If your keyboard is not included, you can always define your own keyboard (see Creating your own keyboard).

Once you have your keyboard selected, choose your training lecture. The first line in your current lecture and level is shown in the teacher's line. You can select any of the default lectures via Training Default Lectures or open a user defined lecture file (⪚ if your teacher gives you a special lecture to practice on) with File Open Lecture.... You may even create your own lecture (see Creating your own lecture). When you have selected keyboard and lecture you can start typing.

Place your hand on the keyboard as indicated by the 8 marked finger keys (thumbs over the space bar) and start typing the text shown in the teacher's line. Each key you need to press is highlighted on the keyboard and if you need to move a finger from its resting position the target key and the appropriate finger key is highlighted. Try to move your hands as little as possible and after you typed a character always try to return your fingers to their resting positions.

The key colors indicate which finger needs to press which key.

While you type you may make mistakes and hit the wrong key. In that case the student's line will change its color (per default to red) and you have to hit Backspace to erase the wrong character (or characters) again.

When you have successfully completed a line of text you need to press the &Enter; key to advance to the next line.

#### Lectures and levels

As already mentioned above you need to select a training lecture which contains all the text you want to practice. Usually the difficulty of the text is gradually increasing and so most lectures contain various difficulty levels. However, some lectures may just contain a single level and text (⪚ a newspaper article to test your skills).

In the info boxes on top of the &ktouch; main window you see the current level on the left. The small buttons to the right allow you to manually switch levels. Normally this happens automatically (more about this in the section Training Options). The right info box shows a brief information text about the level. Usually it gives you a list of characters that are new in this level. The middle two info boxes show your current typing speed (in characters per minute) and your correctness. These values are Level Statistics and whenever you start a new level these values are reset. However, the program still remembers your previous statistics (see section Statistics in &ktouch;).

#### Starting and stopping a training session

While you type the text of a training lecture you are in a practice session. You can start a new practice session using Training Start New Session or the appropriate button in the toolbar. Level changes (automatic or manual) do not change your training session. You stay in this training session until you start a new training session, select a new lecture (which automatically starts a new training session) or quit the program.

If you open any dialog in &ktouch; while you are in a training session the training is paused and the timer is stopped until you hit the next key. You can manually pause the session using Training Pause Session or the appropriate button in the toolbar.

### Statistics in &ktouch;

&ktouch; remembers you! Basically whatever you type is recorded and some useful (and sometimes just interesting) statistics are created. &ktouch; stores statistical data based on the lecture file you use for training. For every lecture file a separate history is kept. &ktouch; also distinguishes between level and practice session statistics. This is important to prevent cheating :-).

#### Training Session Statistics

Current Training Statistics
Current Training Statistics

Whenever you start a new training session a new statistics record is started. &ktouch; remembers several things to assess your skill and to help you identify problem keys:

- How many keys were pressed in total?

- How many were correctly pressed?

- Which keys where missed and how often?

- How many correct words did you type?

- How much time did you need?

Using training session statistics you and &ktouch; can evaluate your overall performance and skill in a certain training lecture.

#### Level Statistics

For each level in your training session (&ie; all levels you typed text in) the same statistics as for the training session are obtained. Using level statistics data you can investigate your progress in each level of a training lecture (and you will notice how your skill increases level by level and you can concentrate on the levels which still cause problems).

#### The Statistics Dialog

Training Lecture Statistics or the statistics button in the toolbar opens the statistics dialog. It displays your current training and level statistics and shows a graphical history of previous training sessions.

When you open the statistics dialog you can select a Current Training Session statistics page and a Current Level Statistics page. The first page gives you a summary about everything you typed so far. The Current Level Statistics page only contains the stats for the current level. This is useful to distinguish between overall performance and skill in certain levels.

The third statistics page gives you a graphical overview of your typing skill by offering several choices. A note about the time scaling option. Whenever a session or level statistic is obtained, also the date is stored. So you can also see how your skill dropped in long training breaks and when you last practiced a certain lecture or level.

Training Statistics Chart
Training Statistics Chart

## The &ktouch; main menu and program dialogs

In this chapter we look at some of the details in the program.

You can use the What's this? feature (the little question mark besides the minimize/maximize window buttons) in many dialogs of the program.

### The menu of &ktouch;

Pretty much everything in the &ktouch; menu should be self-explanatory. The File menu contains options to load a user defined lecture and edit lectures. The Training menu contains training options and the Settings menu contains options to setup the program. The various options in the configuration dialog are explained in the next section.

### Configuration options for &ktouch;

You can customize &ktouch; quite a bit. The settings are always stored for the current user of the program. Open the configuration dialog via Settings Configure &ktouch; ...

#### General Options

In this dialog you can change general options that control the behaviour of &ktouch;.

General options
General options

First of all you can switch the sound on or off (might be useful in class rooms). You can also set the sliding speed of the teacher's and student's line.

Most important, however, might be the selection of the lecture font. When showing the teacher's text &ktouch; will normally use the font specified in the lecture file. But if this font doesn't exist on your system or none has been specified, &ktouch; uses a default system font. What if this font does not contain all characters needed for your lecture? In such cases you can override the choice of the font and specify any font you like.

&ktouch; distinguishes between lecture and keyboard fonts. Overriding the lecture font does not automatically adjust the keyboard font as well. Use the appropriate option in the Keyboard Options configuration page.

#### Training Options

In this dialog you can select the options that control how &ktouch; changes difficulty levels based on the user's skill.

Training options
Training options

If Automatic level adjustment is enabled, &ktouch; checks the given limits at the end of each level and decides whether to increase or decrease the level or stay in the level for another run. Level changes occur always at the end of a level (&ie; when the user has finished the last line of a level). If the typing speed (in characters per minute) and accuracy (correctness) are both above or equal to the Limits to increase a level &ktouch; will jump to the next higher level. If either typing speed or accuracy falls below the Limits to decrease a level &ktouch; will jump back to the previous lower level.

On this configuration page you can also select that the program remembers your current level when you quit the program and jumps back to it when you restart &ktouch;.

#### Keyboard Settings

In this dialog you can select keyboard specific options.

Keyboard settings
Keyboard settings

This dialog controls the appearance and functionality of the keyboard. Similar to the Override lecture font option in the General Options configuration page, you can here specify your own keyboard font. The option Highlight keys on keyboard can be used to decrease the difficulty of the training.

Once you are familiar with the keyboard you may want to turn keyboard highlighting off so it won't distract you when you concentrate on the teacher's text.

#### Color Settings

In this dialog you can tweak the colors used by &ktouch;.

Color settings
Color settings

You can select the text and background color for teacher's line, typing line and on miss typing.

#### Sound Settings

In this dialog you can tweak the sound options for &ktouch;.

Sound settings
Sound settings

Enable or disable Beep on error, Typewriter sound when typing or Sound on automatic level change.

## Extending &ktouch;

### Creating your own lecture

You can easily create your own training lecture using the built-in &ktouch; lecture editor. When you select File Edit Lecture... the Open Lecture File dialog will open and ask you to select a lecture. You can choose either edit the current lecture, any of the predefined lectures (if you have write access to the installation directory), open a lecture file or create an empty lecture from scratch.

#### Creating a lecture

Let's assume you want to create a new lecture. There are a few guidelines you may want to consider:

- For the first 20 keys or so, only add 2 keys at a time to a new level. Let the user practice the keys alone first in different combinations and then use the new keys in words and mixed with already known words.

- Add at least a few levels to the lecture in order to allow the user to see some progress while training

- Don't make the levels too long.

- Try to increase the difficulty of the text gradually and test your text yourself.

- After the first keys have been learned include a recap lecture.

#### Things to know about lectures

The lecture title is important for the quick-select menu entry in the training menu and for the statistics. The comment should be used to include information about the lecture author and source of lecture data if any.

For each level you can specify the new characters/keys in the lecture. The text you enter there will be shown as level information text in the top right info box of the &ktouch; main window.

You can also specify a default font for the lecture which will be used in the teacher's and student's line and of course in the edit lecture dialog using the Font icon.

### Creating your own keyboard

You can create your own keyboards by creating keyboard files. Currently &ktouch; doesn't have a keyboard editor but it is still pretty easy to define your own keyboard. It doesn't require much more than a little math to work out the geometry and some time. Best is to start with an existing keyboard file, create a copy for your keyboard layout and simply adjust the lines.

Currently keyboard files are plain UTF-8 encoded text files. In one of the next version of &ktouch; keyboard data will be stored in &XML; files, too. Therefore I'll only briefly explain the structure of a keyboard file.

A keyboard file usually starts with a header including some information about the author and type of the keyboard.

    ####################################################
    #    &ktouch;
    #    Keyboard layout file for german keyboard layout
    #    Code=UTF-8
    ####################################################

All lines starting with a hash character '#' are considered comments. After the header section a block of so called finger keys follows, indicating the resting positions for all 8 fingers.

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

Keys have the default dimensions of 8 units, so using a grid of 10 units gives a normal looking keyboard. The first number is the unicode character code as decimal number. The KeyText is the text printed on the key encoded as UTF-8 (automatic under newer &Linux; versions, just make sure your editor saves files as UTF-8 format).

The next section contains special keys, which are - apart from BackSpace and Enter - just decorative.

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

The text you specify for the key is printed completely on the keyboard. However, for the keytexts Shift, CapsLock, Tab, BackSpace and Enter &ktouch; draws the appropriate symbols. Hence you can use these keytexts regardless of the language. The other keytexts like Ctrl or Alt need to be translated though. The geometry of the control keys can be any rectangle, defined by upper left x and y coordinates and width and height.

The next section contains all characters on the keyboard (except the already defined finger keys) that can be typed without pressing shift.

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

The definition of these primary keys or chars is pretty much the same as for the finger keys, but they include an additional property. The last unicode character code identifies the associated finger key. Basically which finger has to be used to press this key.

The next and last section in a keyboard layout defines all keys that are pressed by using a modifier key such as the shift key.

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

The hidden keys are really controlling what should happen on the keyboard when you type a certain character. The first unicode number is the character code of the character you define. The second number is the character code of the key on the keyboard (one of the already defined normal keys). The third number indicates a finger key (where does the finger rest that is needed to type the key) and the last number indicates the modifier key you need to press to get this character.

Let's look at an example:

You want to define the uppercase 'R' character. It has the unicode 82. The character obtained when the 'R' key is pressed without modifier is the small 'r' with the unicode 114. The finger for the 'R' rests over the 'f' key which has the unicode 102. And in order to get the 'R' you need to press the right (or left) shift key which has the code 264 (this is actually not a unicode but the code obtained from a keypress event of QT). Note that the identification of controll keys will likely change in the next version of &ktouch;. But for now you can use the codes used in other keyboard files.

## Command Reference

### Menus and shortcut keys

#### The File Menu

File Open Plain Text File...

  Open a plain text file and use it as lecture.

File Open Lecture...

  Open a new training lecture file

File Edit Lecture...

  Open the lecture editor to allow you to change the current training file

File Edit Color Scheme...

  Open the color scheme editor to allow you to define new color schemes

File Edit Keyboard Layout...

  Open a keyboard file and edit a keyboard layout in the &ktouch; Keyboard Editor dialog.

&Ctrl;Q File Quit

  Quit &ktouch;

#### The Training Menu

Training Start New Session

  Start a new typing session and ask you if you want to start at the same level

Training Pause Session

  Pause the current session: statistics are on hold

Training Lecture Statistics

  Open the current session statistics dialog

Training Default Lectures English (auto-generated)

  Choose what language you want to learn touch typing in

#### The Settings Menu

Settings Show Toolbar

  Toggle the toolbar

Settings Show Statusbar

  Toggle the statusbar

Settings Keyboard Layouts

  This item displays a list of available the keyboard layout where you can choose the layout you want to use.

Settings Keyboards Color Schemes Black & White

  Choose the keyboard color layout in black in white: all keys are white and the one you should type is black

Settings Keyboards Color Schemes Classic

  Choose the classic keyboard color layout: each column of keys has a different color

Settings Keyboards Color Schemes Deep Blue

  Choose the deep blue keyboard color layout: each column of keys has a different color in a shade of blue

Settings Keyboards Color Schemes Stripy

  Choose the stripy keyboard color layout: in blue and grey

Settings Current User Default User

  Choose the user for the current training sessions.

Settings Setup Users...

  Displays a dialog to add or remove a user for &ktouch;. The users listed in this dialog are displayed in the Current User submenu.

Settings Configure Shortcuts...

  Configure the shortcuts you want to associate with some actions

Settings Configure Toolbars...

  Configure the items you want to put in the toolbar

Settings Configure &ktouch;...

  Display the &ktouch; settings dialog

#### The Help Menu

&help.menu.documentation;

## Credits and License

&ktouch;

&ktouch;, Copyright 1999-2007 by

- Håvard Frøiland &Haavard.Froeiland.mail;

- Andreas Nicolai andreas.nicolai@gmx DOT net

Contributors:

- Frank Quotschalla, German keyboard and German training file and translation.

- Ernesto Hernández-Novich, Latin American keyboard

- João Miguel Neves, Portuguese keyboard

- Henri Girard, French keyboard

Special thanks to all the other (here not mentioned) contributors of keyboard and lecture files.

&underFDL; &underGPL;

## How to obtain and install &ktouch;

&install.intro.documentation;
&documentation.index;