a blog about my KDE adventures

The State of KTouch — Part II

| Comments

This is the second part of my blog post series describing the results of my work on KTouch. If you haven’t read the first part, you can find it here. This time I will write more about the new course and keyboard layout editor.

KTouch can be only as good as the underlying data. Without courses the trainer is basically useless to the user, without the keyboard layouts the visualization of the keyboard during training isn’t available. Therefore it’s important ships with as much data as possible.

Currently there is support for 39 keyboard layouts and there are 39 courses for 30 keyboard layouts. Unfortunately the quality of the course material varies a lot. There are a few courses of truly outstanding quality, but the most courses have been auto-generated out of dictionaries. Their quality ranges from passable to unusable. Of course none of those have full phrases or sentences in the training data, or provide even complete short texts to train on. A course containing such elements is much more effective and fun to learn.

Therefore I really would like to see more human-created high-quality courses in KTouch. As I can’t do anything about it personally (The German courses are already excellent, the only language I feel sufficiently proficient in to write training texts in.) the only thing I can do is to provide the tools to make creating them as easy as possible.

That’s a screenshot of the new course editor with one of the problematic courses loaded showing one of the built-in quality-assurance checks: if a lesson contains characters not available in that lesson, because they are not among the configured new characters of this lesson or any previous one, they are highlighted in red. There is also a check for too long lines.

On the left side their is a list over all data files KTouch knows about, built-in and user-created alike. If the user selects a built-in resource the editor will degrade to a simple viewer, though. If the user selects a keyboard layout the program will adapt appropriately.

The keyboard layout editor is still a bit unfinished, though: currently there is no way to edit the characters on a key yet.

The State of KTouch — Part I

| Comments

This post will tell you more about the new features touch typing trainer component of the upcoming version of KTouch, but before I come to that, I will write a little bit about the approach I took to design the new user interface.

Design Principles

Actually this boils down to two simple points:

Act like a game

Learning touch typing is boring enough, the application one uses to achieve this goal should make the experience as much funny as possible while not getting in the way. A good way to do so is to borrow some of principles from video games which render them as engaging and addicting as they are.

Keep it simple

Learning touch typing should be possible for every literate person. After all, KTouch is an educational application targeted at especially at pupils. So knowledge about technical details like the existence of keyboard layouts can’t be assumed. The user interface hast to be designed accordingly.

The New Features

The new user interface is split into several screens, each responsible for a certain feature set. This keeps the complexity low, because it reduces the amount of controls visible at any given time and guides the user on their way through the application.

1. The Welcome Screen

This is very first thing a new user of KTouch will see and it is the only setup necessary to start training. It should be pretty much self-explanatory.

2. The Home Screen

From here the user picks a lesson to train on out of the courses matching their current system keyboard layout. It also provides access to profile managment, the keyboard layout and course editor and the configuration dialogs.

3. The Trainer

That’s the part of the application a typical user will spend the most time on. Therefore extra effort went into this screen to make its operation as smooth as possible. Every dynamic part of the user interface is animated in a nice and unobtrusive way. Small features, like stopping the time when the window looses its focus, help to improve the overall training experience. Users wanting an absolute minimum of distraction while training may choose to hide the keyboard and now also the real-time statistics readings in the application settings.

There is more

Careful readers will have noticed, that I mentioned an editor component — this one deserves a post on its own.

After completing a lesson, the user won’t return immediately to the home screen. Instead a special summary and statistics screen is shown. Right now it is still largely unfinished, so no screenshot right now.

The good news is that the KDE e.V. gave me the opportunity to attend to the upcoming Randa 2012 sprint. Looking at my todo list, this summary screen will be among my top priority tasks I want to work on in Randa.

Organizing a sprint of this scale costs a lot of money. So if you able to donate some money, please do so. For me as a volunteer developer such an event is an exceptional opportunity, your donation makes it possible. Thank you!

Click here to lend your support to: KDE Randa Meetings and make a donation at !

Hello, Planet

| Comments

I’ve been developing for KDE for quite a while now, so I figured I should start blogging about what I’m up to. This being my first post I think it’s best I introduce myself and write about what I have been able to achieve so far.

My name is Sebastian Gottfried, I’m currently studying Computer Science and in November 2011 I’ve started hacking on KTouch. My main incentive was to learn and master new technologies, this time my main interest was Qt Quick. Why did I choose this project in particular? First I gained much personal profit from this application as I’ve successfully learned touch typing with it. Secondly the application was basically unmaintained and in a state deserving a facelift. Being a game-like application of some sort Qt Quick seemed to be the obvious choice to tackle such a task. Lastly I thought rewriting KTouch’s user interface was a big enough task to actually learn something and small enough to remain achievable.

Well, ten months later my code is still not in a releasable state. Maybe I underestimated a bit the amount of work necessary, but there is continuous progress and the current plan is to release this new version with KDE SC 4.10. For the time being, here’s a screenshot documenting the current state of my version.

As one can see the difference to the currently released version of KTouch is quite dramatic. I will write about the new features and my plans in more detail in future posts. If anyone wants to try it out: the code lives in KTouch’s Git repository in the branch next.