
Physkeyb
--------

A booklet that is able to redefine Kindle 3 keyboard layout.

There can be up to nine layouts switchable by Shift-Enter shortcut.
A layout label appears in the bottom right corner of the screen when switched.
The keyboard definition files are stored in the keyboard folder and have a .kbd
extension. Filenames keyboard-european.txt and keyboard.txt are accepted as well
to ensure backward compatibility.

A .kdb file can contain multiple key-pairs:

<key>=<value>

<key> can be a special option or a Kindle 3 keyboard key definition

Special options:

        timeout - Timeout for double-press in miliseconds. If two keys are
                  pressed consequently within this time interval, they are
                  considered to present a double-press.

        enabledonstart
         or
        default - The layout with this option set to true will be active after
                  the Kindle framework startup.

        label   - The label that appears in the bottom right corner of
                  the screen when the layout is switched to.
                  Should be three characters wide, pad with spaces if necessary.
                  Set to the first three letters of the layout file name if not
                  specified.

Key definition:

	A single character representing the button
                  The character will be substitued by <value> when corresponding
                  button is pressed.
                  Example:
                    s=š

	Two characters representing the buttons
                  Any input of character 1 followed by input of character 2
                  within timeout will be replaced by <value>.
                  Example:
                    aA=me@home.org
        
        An integer prefixed with #
                  Java keycode of the button. Useful for redefining special
                  buttons like PageNext.
                  Tip: Turn the debug mode on by creating an empty file named debug
                  in the keyboard folder, restart Kindle, press the button of
                  interest and then find the keycode value in
                  keyboard/keyboard.log .
                  Example:
                    #33=You pressed Keypad Up key


Value definition:

        A string
                  The string contents will be substitued as input instead of <key>

        #<target flag><key code>
                  Low level key event definition.
                  Examples:
                    w=#f103
                      - Send code 103 (Up) to /proc/fiveway when key W is pressed
                    o=#v114
                      - Send code 114 (Volume-) to /proc/volume when key O is pressed
                    f=#k191
                      - Send code 191 (RightNextPage) to /proc/keypad when key F is pressed

                  See https://github.com/dpavlin/k3libre/blob/master/myts/keydefs.ini



Tip: If you have a single layout and don't want it to be active on start, create
     another layout, name it for example kindle.kbd and put this inside:

enabledonstart=true
label= en

     Such empty layout would represent the default Kindle layout.


See http://www.mobileread.com/forums/showthread.php?t=119969 for updates.


David Smid (dsmid)
