Qliner Hotkeys
- The Qliner Keyboard Designer is part of Qliner Hotkeys. To use it you need to download and install Qliner Hotkeys. (learn more)
![]() |
The Keyboard Designer allows you to create your own keyboard layout, style and language. The product features an easy to use, fully integrated, graphical environment that gets you started right away. This tutorial should get you up and running in no time.
The Basics
The keyboard you see on the screen is rendered using three files: one for style, one for layout and one for the language. Please consider the following illustration.
The files Qliner Hotkeys uses are typically stored in C:\Program Files\Qliner Hotkeys\Keyboard Data (or equivalent on your machine) folder. The following illustration shows some files.
Installing the Keyboard Designer
The Keyboard Designer is included in the regular Qliner Hotkeys installer but is not installed by default.
If the Keyboard Designer is not available from the start menu it is probably not installed. In this case download the Qliner Hotkeys installer (here) and run it again, now selecting the Keyboard Designer option (see the following screenshot).
The Keyboard Designer Main Window

Defining a Keyboard Style
A keyboard style determines the colors, fonts, border widths and line widths to use when rendering the keyboard. The following illustration shows how the various style properties map to the actual on screen keyboard.
Save your Keyboard Style in the C:\Program Files\Qliner Hotkeys\Keyboard Data (or equivalent on your machine) folder if you want to use them with Qliner Hotkeys.
Defining a Keyboard Layout
Tip: creating a fully functional layout from scratch is a lot of work. It takes time to get right all the scancodes (required for support of different languages and modifier states), default functional keys, texts and symbols. The most practical approach is to take an existing layout and use this as a starting point.
A keyboard layout determines where, what key is on the keyboard. The layout consists of a set of rows. Each row consists of a set of keys. The following screenshot shows you the various user interface elements that allow you to manipulate rows and their keys.
The only property a row has (besides the keys it contains) is height. The height of the row has no relationship with height of the keys it contains. The height determine the space the row consumes on the keyboard. Keys are rendered starting at the top of a row. A key can be taller or shorter than a row.
The position of a key is determined by the row it is in (distance to the top of the keyboard) and the accumulated widths of the keys that precede it in the same row (distance to the left of the keyboard). Keys define their own width and height. When the IsPlaceHolder property is set to true the key is not rendered, this so you can create empty spaces on the keyboard.
Key Text, Symbols
Each keyboard layout key is assigned a default text and a default functional key (determines how Windows perceives the key). The default text is rendered on the key using the Font property of the keyboard style if the text is only one character long. If the default text is longer than one character the SmallFont property of the keyboard style is used.
The layout key default Text property is overridden by the Symbol property. This property is used to draw specific keyboard symbols on keys (like the ones you see on the shift, enter and arrow keys). This Symbol property in turn is overridden by the SmallSymbol property which renders a smaller version of the symbol set.
Defining a Keyboard Language
A Keyboard Language determines what text is rendered on a layout key, for a specified modifier state (shift, ctrl and alt combinations). It also determines what functional key is assigned to a layout key. The relationship between the Language (text and key) and the Layout is based on the Layout key's scancode.
Please be aware of the fact that a layout key's Symbol and SmallSymbol property will override a Language based text.
When a key in a layout is language neutral it is not necessary to assign it a scancode, however, if you want the key to look different for different modifiers states you do need to assign it a scancode.
Compound Keys
By default keys are rectangular. Some keyboard layouts require non rectangular keys, for example consider the Enter key on the Sony Vaio layout. To achieve this effect assign to two keys, located directly above and below each other, the same scancode. This will render both keys as a single, non rectangular key. The new, compound key will assume the identity and properties of the upper key.
Tips for Developers
You can reuse the on screen keyboard component from any Microsoft .NET application. All required logic is included in the HotkeysLib .dll found in the GAC.
The .KeyboardLayout, . KeyboardStyle and .KeyboardLanguage files can be renamed to .zip. The resulting .zip file will contain an xml file representing the item. If you are interested in how to read and write these files programmatically, please let us know at: qliner@qliner.com.
Sharing your Keyboard
If you would like to share your keyboard style, layout or language files with other users, we at Qliner would be very happy to put them online for you. Please send your files to: qliner@qliner.com.
Relevant links:
- qliner hotkeys home page: http://www.qliner.com/hotkeys
- qliner hotkeys developer page: http://qlinerhotkeys.sourceforge.net
- SourceForge project: http://sourceforge.net/projects/qlinerhotkeys
- Microsoft Keyboard Layout Creator: http://www.microsoft.com/globaldev/tools/msklc.mspx





