So, since for some reason ikeyex doesn't work in 3.0, and that's kinda a bummer for me since I use the dvorak layout, so after some searching I found this guide:

(source: http://networkpx.blogspot.com/2009/0...or-ikeyex.html copy and pasted for your connivence, you'll probably have to visit the site for the links)

This program converts a layout.plist into 8 .keyboard files which can be loaded by UIKit natively. For example, if you want to install the Colemak keyboard,
ssh into your device
Download layout-plist-to-keyboards by typing:
wget http://networkpx.googlecode.com/file...t-to-keyboards
Change that file to an executable:
chmod a+x layout-plist-to-keyboards
Download the layout.plist for Colemak:
wget http://networkpx.googlecode.com/svn/...d/layout.plist
Perform the conversion:
./layout-plist-to-keyboards layout.plist
Check that there are 8 .keyboard files in the directory.
ls
Move all these keyboards to UIKit.framework (requires root permission):
mv *.keyboard /System/Library/Frameworks/UIKit.framework/

Now all QWERTY keyboards are replaced by Colemak.

If you don't want to replace the QWERTY keyboard, you can rename them to something else. Say, you'll never use the Thai keyboard, then name them iPhone-Portrait-Thai.keyboard, etc. Now you can activate the Thai keyboard to use the custom one.
You also need to get wget from cydia. Also, I have the dvorak layout file on my server so if any of you want it just PM me and I'll post the link.


The result (from my itouch, yes I know it says it's charged and at 46%, it's a glitch that happens when I connect my iTouch in xcode, it makes it say it's charged):