New iPhone Keyboard Interface Library: iKeyEx (And A New Copy/Paste to Boot!)

Turning an area into a copyable field.
Turning an area into a copyable field.

I know I promised a technical article on how to find arbitrary bundle identifiers, but the news moves fast, and I’m already behind the times on this one. There’s a new Copy/Paste mechanism out for the iPhone, hClipboard, but there’s way more to it than that, and a LOT of new possibilities come with it. Most people have been reporting on how cool hClipboard is, and it’s no lie that it’s super cool, but even cooler is the work that went into its backend. Over at networkpx (coral), KennyTM has been hard at work cracking the entire keyboard system of the iPhone WIDE open. Basically, the kingpin of the system is iKeyEx, which is a library based on mobilesubstrate to write new keyboards or keyboard extensions for the phone. It essentially allows developers to produce new keyboards that can be turned on and off in the normal keyboard settings of settings.app. Most obviously, this allows alternate layouts, like Colemak (which he has implemented, in the list below) or Dvorak, but it also allows totally different things to be built into that layer, which critically falls directly between the user and the application being typed into. Currnet extenstions are listed below (direct copy from the homepage above) and mostly speek for themselves:

    • â„ŹClipboard: Global copy & paste on iPhoneOS.
    • MathTyper: Keyboard extension for typing mathematical symbols easily.
    • Colemak: Colemak keyboard layout on iPhoneOS.
    • L33tTyper: Auto transliterate Latin alphabet to leet.
    • PathTyper: Input manager to ease file path typing.

The possiblities of this library are huge, if the already interesting list above are any indication. You can expect to see a number of posts following this framework as new applications are developed for it and hit Cydia.

But I know you’re all dying to read more about hClipboard (an alternative to the Clippy only released four days ago, reviewed here) so let’s go.

First, install hClipboard from Cydia. It’s in the BigBoss repository, so you should have no problem finding it. Click install, and once it’s done, you’ll get a helpful tip in the log onscreen telling you how to enable it!

Installing hClipboard from Cydia
Installing hClipboard from Cydia

Do as this helpful tip says, and go to Settings>General>Keyboards>International Keyboards, and enable hClipboard under iKeyEx Keyboards (all other iKeyEx extensions will presumably appear here as well):

Enabling hClipboard from the International Keyboards Menu
Enabling hClipboard from the International Keyboards Menu

You’re now all set up to use the extension, so let’s give it a whirl. Here’s the hClipboard keyboard being used in a text message:

hClipboard Example: Sending a Text Message
hClipboard Example: Sending a Text Message

Here’s the main hClipboard interface. Basically, you use the magnifier tool (put a finger down over the text to move the cursor around) to place the cursor at the beginning of where you want to copy, hit button 2 to mark that spot as the start, move the cursor again to the end, and hit button two again to mark the end and copy to the clipboard. Buttons 3 and 4 move the cursor to the beginning and end of the current textbox, respectively. Button one simply captures everything in the current field, useful for things like email addresses or other ‘fill in your personal info’ forms. Notice the little book with an arrow icon at the bottom left of the image. This is used to switch from the clipboard to the ‘templates’ window. The two are mostly the same except that the clipboard stores up to 10 items, and the templates window is infinite. The idea is to use the templates window to store stuff you often use, such as email addresses or passwords:

Using the templates window of hClipboard
Using the templates window of hClipboard

Here, I’ve saved my email address as a template that I can come back to and use whenever I need to enter it. This can also be done with passwords, except for a slight bug, which I’ll go on a tangent about below.

The password field bug:

It seems that, when using international keyboards, the iPhone jumps to a standard QWERTY keyboard for entry into any password field. Normally, this would be useful, since password-acceptable characters are standard ASCII only, or somtimes even more strict, ASCII alphanumeric only. Unfortunately, we can’t actually switch to the other ‘international’ hClipboard keyboard in this mode, making it unable to paste passwords. Now, you shouldn’t be going so far out of your way to make your passwords insecure like this, but let’s face it, nobody cares about your (insertrandomsitehere) password, so this could be useful.

I have a theory as to why this problem exists: When I enable both english(us) and english(uk) keyboards in the international menu, it’s possible to use the globe icon to switch between them (that is, the globe icon exists) when in a password field, but even though it’s enabled, the hClipboard keyboard doesn’t appear in the rotation. I can only postulate that there is, therefore, a switch somewhere in the keyboard profile that enables it for password entry (aka says that it has acceptable characters) and that the hClipboard keyboard needs this switch enabled. It’s just a hunch, but I’ll puruse it as a potential fix.

Unfortunately, at the moment, it appears that there’s a bug appearing for some (me included) where items in templates simply disappear sometimes. I’d wait until that’s fixed to use the function.

There’s another interesting feature of hClipboard, though strictly speaking it’s not actually part of hClipboard and is, in fact, just as usable with Clippy or any other copy/paste mechanism yet to be released. On the website here (coral) are a pair of bookmarklets for Safari that let you copy text straight from the webpage. One turns an area of text into an editible text field (not really editable, but copyable anyway) and the other sends the whole page to Safari, in case you need to copy more than just one section at a time. Screenshots in action below:

Turning an area into a copyable field.
Turning an area into a copyable field.
Sending the whole page to Safari.
Sending the whole page to Safari.

The other members of this suite are certainly interesting. Mathtyper in particular is one that I’ve installed – essentially it gives you an english QWERTY keyboard whose alternate letters are all math symbols. For example, if you click and hold the G key, there are greater than, much greater than, and so on, and the L key contains less than, so on and so forth. The array of symbols is impressive, though unfortunately I don’t know of any reason I’d need to compose mathematical notation on my phone. Still, just leave that keyboard turned off, and if you ever need it, just turn it on.

I’ll keep you posted on status updates, but for now I’m off to finish the article about bundle identifiers.

6 thoughts on “New iPhone Keyboard Interface Library: iKeyEx (And A New Copy/Paste to Boot!)”

  1. hi
    yhanks for ikeyex it’s nery good i have a 3G iphone with 2.2.1 virsion i am using the arabic font from iphone islam .com when i am using the arabic the armenian font from the ikeyex show only boxxxx ?????
    i need solution pleas ??
    rafi

  2. I actually didn’t write iKeyEX, so I can’t be sure how to fix the problem or even be sure of the actual source, but the problem is that the Armenian keyboard probably is set up for the default font and the character locations in the alternate font are probably not correct for what the keyboard is looking for. That is, the keyboard is probably looking for its characters in the wrong location in the font character set. Try uninstalling the Arabic font and see if the problem goes away, otherwise ask the respective developers. If that does solve the problem, though, you may just be out of luck for using that font.

  3. i have iphone 3G mit 0.3.1 software ikey ex programm install on Iphone AMHARICH FONTS (Ethiopia Launguch) they don.t work ???
    waht i am doing wronge
    Thinks

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">