On Screen Keyboard
Warning. This is PRE ALPHA testing grade only software. It may cause your pre to melt into a puddle and dissolve while turning blue. Use at your own risk!
Introduction
The Palm Pre ships with a very limited on-screen keyboard for inserting symbols. It works in portrait and landscape, in all apps, in any text field. (It doesn't work in Search fields like email address or url, which has led to difficulties with enhancing it.) This on screen keyboard has provided a basis for programmers to develop a fully functional on screen keyboard for the Pre.
Background and Explanation
On an unmodified Pre if you press the "sym" key and a scrollable 5x5 keyboard pops up full of alternate characters.
This is controlled by code incorporated into the framework.js. The specific functions there can be seeen in /usr/palm/frameworks/mojo/submissions/191.15/javascripts/widget_charselector.js
with the layout controlled by 3 files in /usr/palm/frameworks/mojo/submissions/191.15/templates/charselector
the actual list of characters that appear on the screen is controlled by /usr/palm/frameworks/mojo/submissions/191.15/resources/en_us/alternatechars_table.json
At the simplest level then, creating an on-screen keyboard requires editing the alternate characters table json, to add the "regular" charcters to it, and then when you want a keyboard, press SYM and poof, a keyboard. The problem with that is, the alternatechars_table.json is "fragile" the slightests mis-edit results in the pre entering a continuous book cycle.
At the next level, the framework's copy of widget_charselector.js needs to be modified to not close the keyboard after each keypress.
As of 12 August 2009 Webos-internals contributor Eric Gaudet (irc egaudet) announced success at patching the framework.js to accept a new function derived from the charselector widget. This pre-alpha proof of concept on-screen keyboard is available as a patch.
Operation
Unlike the Palm Symbol keyboard, you do not have to open the Pre's hardware kb to get the on-screen keyboard. Tapping the gesture area (near the round silver button) will bring up the on-screen keyboard if you are in a text field. Note: as of 19 August 2009, the on-screen keyboard does NOT YET WORK in search boxes (email, name, etc)
Procedure
The patch is on Gitorious, please read the following to install the patch: Applying Patches
The patch should be stored (on Pre) in: /opt/src/modifications/frameworks/add-onscreen-keyboard.patch
There are also theme images needed in the current release. Folow these instructions to install the patch AND the theme images (NOTE: must be root)
sh /opt/src/modifications/install add-onscreen-keyboard.patch sh /opt/src/modifications/frameworks/install_theme
Change Log
8/13/09 - Fixes
- Functional backspace, space and enter keys added.
8/16/09 - Fixes
- Added functional shift and sym capabilities.
- Added landscape mode resize.
8/18/09 - Fixes/Enhancements
- Added theme capabilities
- Changed default theme to use remix2000's images (big thanks!)
- Added missing symbols
- Fixed landscape mode to correctly render in landscape if launched from that state.
Thanks again to remix2000 for the nice keyboard images. Specs will be posted eventually for the images/theme framework once a user-app callable way to switch themes is implemented.
8/18/09 (evening) - Fixes/Enhancements
- Increased width of keyboard to span entire screen
- Added orange-key functionality
- Made keyboard draggable after tapping blank key
- Added haptic feedback
Issues
as of 17 August 2009 the following issues are known:
- Do not bring up keyboard when using hard keyboard clipboard events (might have to disable the keyboard when slider is open exposing hard keyboard)
- Enable usage to search contacts/universal search -- for example Name, email address, etc are search fields not text fields.
- Verify auto-correct when space added.
- Add clipboard capabilities
- Explore T9-type, limited-width keyboard options