Tuesday, March 17, 2009

iKeyEx & 5-Row QWERTY 0.1-9b (Beta) Released

First of all, about the versioning schemes -- From now on all beta versions (those I put in the project download page and my private beta Repo) will have an odd revision, and the public versions will have an even revision (those you see in BigBoss). Therefore, the following beta versions will be called 0.1-9c, -9d, etc., and the release version will be 0.1-10.


So back to iKeyEx. What's new in 0.1-9b has actually been highlighted in the last post. I'll go to the detail and implementation of each feature now.

More than 10 variants

Prior to 0.1-9b the number of variants supported must be less than 10 because if there's more the buttons will leak off the screen and become useless. In 0.1-9b the system will automatically reduce the size of each button to try to allow more keys to be shown.

The upper limit is now pushed to 12. Larger than 12 the variants list will start to act weirdly.

Variants Labeling

Following layout.plist, the variants can also be "labeled", i.e. the text shown on the button can be different from what will actually be typed. This is done by declaring an array instead of a string, e.g.
M = (M, ("Dear all,\n\n\n\nBest Regards,\nMe", Mail))

will create a Mail button on the list of variants, and when selected, will generate the "Dear all, ..." text.

Splitting of Landscape and Portrait Mode

The type of UIKeyboardLayoutCLass key has been generalized. As a result, not only code can have separate layouts in landscape and portrait mode, the other two methods (layout.plist and referred) can be split too.

The syntax is simple:
UIKeyboardLayoutClass = {
Portrait = "abc.plist";
Landscape = "xyz.plist";

Keyboard Mode Jumping

An extra feature in iKeyEx -- you can now hold down the International button (the Globe) for more than 1 second, then release it to get a list of keyboards enabled.

Click on an item to go directly to that keyboard.
Note: This feature is not available in the Emoji keyboard. 3rd-party IMEs not based on iKeyEx cannot be identified.

Note: In 0.1-9c you don't even need to release the button -- just keep pressing it and the keyboard list will show automatically. But in 0.1-9b you still need to lift your finger.

Email Diagnosis Info

The last, and the most important feature in this upgrade is the Email Diagnosis Info button in Settings -> iKeyEx -> Troubleshooting. I've got lots of crash reports but the SSH process is pretty troublesome for most users. Therefore I've created this button to simplify the process. The files attached are:

  • Recent crashes related to iKeyEx (i.e. /User/Library/Logs/CrashReporter/*.plist which have the substring "iKeyEx.dylib␣␣" in the file)

  • The list of installed Cydia packages (i.e. dpkg -l)

  • syslog (/var/log/syslog)

  • .GlobalPreferences.plist for the list of enabled keyboards (/User/Library/Preferences/.GlobalPreferences.plist)

  • com.apple.Preferences.plist for the active keyboard (/User/Library/Preferences/com.apple.Preferences.plist)

  • The content of /User/Library/Keyboard/ and /Library/iKeyEx/Keyboards/

This also serves as a demonstration on how to send email without leaving the application, and how to attach files and data to the message.


There are some minor tweaks in this version, including:

  • The /Library/iKeyEx/ folder is now a symlink to /var/stash/iKeyEx.XXXXXX/ to free up precious space in the / partition.

  • An "InputManagers" folder is created besides "Keyboards" folder. Eventually in 0.2 the input managers will be split from keyboard layouts and allowed to mashed up, but now this is just an empty placeholder.

  • All keyboards with name starting with __ are reserved for internal use now.

5-Row QWERTY Keyboard

5-Row QWERTY is also updated, but it is basically a bug-fix update. The ChangeLog has already summarized the changes.

1 comment:

  1. Hi, what is going on here, has this died? I'd really love a German five rows keyboard, including Umlauts, as they are too slow to type on the original keyboard... At the moment I can install the keyboard scheme via Cydia, but there is no change in the system. It is enabled in the settings. Regards R.