Virtual Keyboard Configuration

=Options and Themes=

The keyboard has several user configurable options. As of 28 August 2009 there is no keyboard configuration app. However, you do not have to have root access to configure the keyboard. Simply attach your Pre to your computer in USB Drive Mode. Then, navigate to the Pre's USB drive. On your desktop, there will be a directory (folder) called virtual-keyboard. (From within the Pre this is /media/internal/virtual-keyboard which is the same place.)

Inside that folder, you will find a file named virtual-keyboard/kb_config.json. Use your editor of choice (such as Wordpad - do not use MS Word) to edit that file. You may change any of the following options:
 * haptic   :  - How long to vibrate upon touch (0 - 100 ms) (50 seems good.  100 makes the keyboard lag a little.
 * clickFile : - Sound file if any to play upon button click (e.g. click1.wav)
 * installed_themes : [{label: ,value: },...] - Installed themes, label is the display name and value is the themes folder name
 * theme    :  - Name of keyboard theme to use. Three themes ship with the keyboard:
 * remix_classic
 * remix_glossy
 * remix_ice
 * You may choose any of the three or add your own theme in an appropriate folder and name it as you please. See below on creating theme files.

Additional Available Themes - Not working
=Creating Keyboard Themes= The virtual keyboard layout is a "list" of rows containing 10 "elements" each. The design allows for the keys to span multiple elements.

The virtual keyboard will look for themes located at /media/internal/virtual-keyboard/themes/ In this directory there shall exist theme-named directories with the following structure and options:

theme_config.json is the file that will control what images in this directory should be used and how.

The first layer of the JSON for each key element will have 3 parts: index:,portrait:{},landscape:{}

index - index of key portrait - orientation JSON describing theme layout for portrait mode landscape - orientation JSON describing theme layout for landscape mode

Inside of the orientation JSON's we have another 3 parts: normal:{},function:{},shift:{}

normal - key description JSON when in normal keyboard function - key description JSON when function (orange) key is active shift - key description JSON when shift key is active

The key description JSON has the following 4 parts: keyCode:,display:{},output:,span:

keyCode - currently only used for special action keys (shift, function, etc..) display - key display JSON output - output string when key is pressed span - number of element-widths to span (1 element-width=10%)

The key display JSON has 2 parts: html:,img:

html - HTML to display as element if no img supplied img - Image (including relative path in this theme's directory) to display as element