One of the more obvious settings missing from Android is the ability to use one keyboard, say Swype, in portrait orientation, and then automatically switch to another keyboard when the phone is in landscape.

This feature has been oft-requested, and is something that is strangely missing from many mobile OSes. Well, the clever clogs over at the XDA-Developers Nexus One forum have managed to figure it out with a little workaround.

However, the hack only works for those on rooted phones with access to the /system partition as Read-Write. Thankfully that is most phones, nowadays. In the words of the hack’s creator, ne0fhyk:

The application is rather simple so far. It shows you lists of the input method you have on your device, and allows you to specify different ones for portrait or landscape orientation. It will then launch a service that's triggered by orientation's change events, and reset the input method based on your preference. To do so, the service must run as system. Just copy the application under /system/app/. Restarting after installation is recommended. This is a work in progress. Occasionally, the keyboard switching shows lag. I am working on improving the app, so any feedback is appreciated.

I tried to install the hack myself, and it’s a little bit more complex than that.

1. Download the APK (there may be a newer version on XDA by the time you read this) 2. Install it as normal 3. Don’t try to open it, you will just get Force Close 4, Open Terminal on your phone or use adb shell / adbWireless 5. Type “ su ” (may not be necessary in adb), your “$” prompt will change to “#” 6. Type “ mount ” 7. Find the line near the top which mentions “/system”, noting the “ro” in the parentheses at the end of the line 8. Enter “ mount –o rw,remount –t yaffs2 /dev/block/mtdblock3 /system” , replacing “mtdblock3” with whichever mtdblock your line says above. 9. Enter “ mount ” again, check that “ro” has changed to “rw”. This means you can now write to your /system partition. 10. Use “cd” to change to your app folder: “ cd /data/app/ ” 11. Find the installed KeyboardManager using “ find *keyboard* ” 12. Move the keyboardmanager APK to your /system partition with the command “ mv com.android.bg.keyboardmanager-1.apk /system/app ” 13. Now you want to reboot your system to load the application again, and also reset your /system partition to “ro” for security. Simply enter “ reboot ” and hit enter 14. Once your phone has restarted, open up Keyboard Manager from your application drawer 15. Choose which keyboards you’d like to use in which orientation, from the displayed drop-downs

Having used the app for a little bit, it does work, but it’s not instantaneous. It may take a few taps of the text entry field to work. The developer is definitely not done with this project, so at this stage it’s kind of a proof of concept, so don’t be surprised if the experience is a little buggy.

It’s great to see this issue finally, sort of, pretty much resolved. Check it out and leave your experiences in the comments below. Oh, and do a nandroid, k?

Source: XDA-Developers via reddit