[Asus Transformer TF700] jhannah01:
In the most recent nightly builds, these keys finally *do* work! Months ago I missed my delete key so much I ended up digging into the mechanism that provides keymappings for CM10 and was able to make the 'lock' key on the keyboard emit a FORWARD_DEL keycode instead of uselessly locking my tablet everytime I hit it.

It's a little technical but let me give you a brief overview of how keycodes work on the TF700s. Under /system/usr you will find two directories: keylayout and keychars. We will be interested are the 'asusdec' keylayouts and keychars files.

First, the keychars directory houses that describe each key for all of the different supported keyboard types. For the most part, there is really no need to play around with any of the files in here but looking the asusdec.kcm will give you a nice reference for what each key does and also describes what each key should do if modifiers like 'shift' or 'alt' are pressed. Again, I wouldn't play around with these too much as it might but perhaps you'll have better luck with that than I did :)

Next, keylayout, this is where all the mapping between hardware keycode (that is the decimal output by depressing a key such as 'r', which yields 19) to the aforementioned keychars entry. Again, asusdec.kl is pretty much the only place you might need to play around with but be careful doing so as these files have a tendency to change in the nightly builds.

To give you a real world example of what all this means, in order to accomplish my modification of making the 'POWER' key into a 'FORWARD_DEL' key, I found the matching keycode for 'POWER' (this is 142) and replaced the reference to POWER with FORWARD_DEL, rebooted, and done! Since I build the CM10.1 source daily, I put this into a local repo branch and now it gets applied to every build I make. Nevertheless, here is a diff of the 'offical' asusdec.kl vs mine:

diff --git a/prebuilt/asusdec.kl b/prebuilt/asusdec.kl
index 228c95d..d610ac5 100644
--- a/prebuilt/asusdec.kl
+++ b/prebuilt/asusdec.kl
@@ -21,7 +21,7 @@ key 163 MEDIA_NEXT WAKE_DROPPED
key 113 VOLUME_MUTE WAKE_DROPPED
key 114 VOLUME_DOWN WAKE_DROPPED
key 115 VOLUME_UP WAKE_DROPPED
-key 142 POWER WAKE
+key 142 FORWARD_DEL WAKE_DROPPED
key 41 GRAVE WAKE_DROPPED
key 2 1 WAKE_DROPPED
key 3 2 WAKE_DROPPED

To take a look at these files from the official github repository, check em out @ https://github.com/CyanogenMod/android_device_asus_tf700t/tree/cm-10.1/prebuilt.

Lastly, a word of caution, these files are pretty crucial to your keyboard, well, working. Take care in keeping backups and any new flashed ROM will replace these. Worst comes to worst, have a version of CM you're ready to reflash and it should blow away any mistakes if you find your keyboard acting up. For the brave, I will attach my personal asusdec.kl which you can simply (after backing up yours) place in /system/usr/keylayout if AND ONLY IF you are on the CM10.1 nightly. Otherwise, just try the recent nightly and see if it solves your problems.

As for the F## keys, check out the top of the asusdec.kl file and you'll see the wifi key falls through to F1, the bluetooth key to F2, etc etc.. That being said, if you hit F1 it will ultimately emit the keycode for F1 but *will* also still toggle your wifi .. quite annoying. You don't even need to use the FN modifier though I am working out a way to allow FN-Wifi to pass F1, FN-Bluetooth to pass F2, etc..

Hope that helps to clear some things up, please feel free to ask more as I'm happy to discuss :) Best of luck.