Replace the Graffiti writing area with a mini keyboard
|Graffiti was a great idea, but we can't all be
Graffiti Masters. Some of us--me, for instance--would
rather type. The MilliKeys software can replace the
graffiti area and (optionally) the soft buttons
(Applications, Menu, Calculator, and Find) with a
For download, installation and
stamp-making instructions, click
The keyboard layout pictured on the right is built
into MilliKeys--in other words, it always comes with the
program. However, provided you're willing to go to some
effort, you can modify this layout or make your own.
Eventually I plan to make an application that will take a
layout and produce a stamp automatically, but for now, if
you make your own layout, you'll also have to make your
Many layouts can be stored on the handheld at once.
The built-in layout: Almost anything with one stroke
The stamp (pictured above)
shows you what letters can be input with each key. For instance,
consider the H key:
- For lowercase H, tap the key.
- For uppercase H, put the pen down on the key and stroke
- Similarly, stroke left for a plus sign and right for a
- Stroke down for a ± symbol.
- Finally, the accented ì requires two strokes: first,
stroke up from the command key ( ), then tap the H
- Tap a letter to write that letter.
- The following keys are also available in one tap: period,
comma, semicolon, slash, apostrophe, Shift, Applications,
Menu, Command, space, and Newline (i.e. Enter/Return).
- Put the pen down on a letter and stroke upward for
- Stroke down from the top row to get digits.
- Stroke left or right on the top row to get the same
punctuation you get from the row of numbers on a
- Stroke left, right, or down on the second row, and down
on the third row, to get additional characters.
- Stroke left on the bottom two rows for a backspace
- Stroke right on the bottom two rows for a space. Of
course, you can also tap the spacebar.
By the way,
- The letters A, M, C, and F represent Applications, Menu,
Calculator, and Find. Perhaps later I'll replace them
indicates extended (non-ASCII) characters
indicates that the character is in the extra layout,
i.e. that you have to stroke up from
first to get the character.
MilliKeys is Free
Software under the GNU General
||Why? Wouldn't people pay for this?
||When I began to write MilliKeys, I did it
from a user's perspective. That is, I went on the
Internet searching for a free keyboard
application that would meet my needs--and I
couldn't find anything that did! There were some
programs that came close, programs that would
have been good enough if only they could be
customized. But mostly, they were closed source,
not customizable, and cost money.
didn't want to pay for a program that didn't meet
my needs, and after finishing my search
empty-handed, I felt that the only way to have a
program that met my needs was to write it myself.
I felt it shouldn't have been this way--there
should have already existed an program like
MilliKeys! But there was no such program, so I
figured I would have to go to all the work of
writing it myself.
By nature, whenever I have to do something
myself that I felt I shouldn't have had to do, I
think about what I could do to help others like
me avoid the same problem. The solution was
obvious. What I had been most hoping to find in
my search was an open-source graffiti-area
keyboard hack. Therefore, that's precisely what I
would create. And I did. I also made it highly
customizable for three reasons:
- It's in my nature to generalize, and to
create generalized programs.
- I personally knew that I would want to be
able to customize the application. I
dislike having to customize by modifying
source code (especially other peoples',
but also my own)
- I wanted non-programmers to be able to
customize the app.
Needless to say, just because it's free doesn't mean I
don't want help paying my tuition fees, which at the
University of Calgary have risen 136% in the last ten
If you like MilliKeys, please consider donating $5 to $20.
By the way, MilliKeys is my first program for PalmOS.
I hope you enjoy using it.
Combine Graffiti & Keyboard Input
The "dumb" and "smart" passthrough options
allow you mix Graffiti with MilliKeys. These options cause
Graffiti to interpret your stroke under certain conditions.
- "Dumb" passthrough passes a stroke to graffiti
if you move the pen a certain distance you specify from
the starting point. With dumb passthrough enabled, you
can enter any graffiti stroke (except a dot, of course)
as long as your strokes are large enough. The amount you
must move the pen is specified as a percent of the
- "Smart" passthrough basically passes a stroke
to graffiti if, after starting the stroke, you change its
angle compared to the start position. An "L"
shape, for instance, is at first straight down and then
down and right. Therefore, it is passed to graffiti.
Further, if you're willing to do the dirty work yourself, you
can insert "graffiti passthrough" (\G) characters into
the layout. If \G is assigned as the key for a tap, then taps on
that key are passed to graffiti. \G works a little different for
strokes: if a stroke is assigned \G, MilliKeys will use the key
assigned to the nearest direction. For example, if \G is assigned
to up-right, and you stroke up and right (but a little more right
than up), MilliKeys will run the right stroke in its place.
However, if that stroke is \G also, then the stroke is passed to
Potentially Input any character with one stroke
Using a 10x4 key layout, up to 308 characters can be input
with a single tap or stroke.
||How is this possible?
||A different character can be assigned to each of 8
stroke directions. That means each key can output up to
nine characters. Simple arithmetic tells you 10x4x9=360
characters can be input, although after excluding very
difficult strokes (such as downward from the bottom row),
the number is reduced to 308.
- The built-in layout only uses four of the eight
directions (left, right, up, and down), but if you wish,
you could make a copy of it and assign keys to the other
- Although there are only 255 characters in the Palm
character set, you could almost make use of all 308
characters if you consider special input such as cursor
movement, soft buttons (applications, calculator), and
macros (maximum 9).
- You could also omit capital letters from your layout and
just use a Shift key.
Customize MilliKeys on the handheld itself
This is a bit difficult for a novice, so perhaps in the future
I'll write a User's Guide of sorts. But making your own layout is
The Extra sublayout
An "extra sublayout" may be accessed using the \Q
key (in the built-in layout, use the Intl stroke, upward on ). When
invoking the extra sublayout in this manner, the graffit state
indicator will show a bullet (). For the built-in layout,
the extra sublayout contains accented characters. To input a
capital accented character, you need to press Shift (left side,
third row), then input an Intl stroke.
An "extra lock" is also available via the \E key
(not present in the built-in layout). The extra lock keeps you in
extra mode until you input another \E key. The graffiti state
indicator signifies the extra lock using a backslash-like symbol.
[ Home Page @ SourceForge
Summary | Qwertie's