This is not an answer for designing custom-looking keyboard buttons, but if you're content with attaching macros in scripts to the typical, regular buttons of a hard keyboard, I asked a question on superuser.com: How would you turn a tablet into a keyboard + easy-to-reach touchscreen (mirror the desktop) (not a touchpad) for a desktop PC?. You can do the following:
android-vnc-viewer to mirror the desktop PC screen, and control the desktop
I had another question on android.stackexchange.com: (In using a VNC to control a computer, is it possible to have the cursor go to where you touch? - android[dot]stackexchange[dot]com/questions/34668/in-using-a-vnc-to-control-a-computer-is-it-possible-to-have-the-cursor-go-to-wh)
In the question, I included a video: Remote control of Ubuntu with android-vnc-viewer - www.youtube.com/watch?v=sTKX6QMBgck#t=0m30s
“See and control your computer's desktop from your phone, from
anywhere. androidVNC is the Open Source (GPL) remote desktop program
for Android devices. Connects to most VNC servers: incl TightVNC,
RealVNC on Win and Linux, x11vnc, and Apple Remote Desktop on OS/X.”.
In the video, I don't know the input mode that is being demonstrated at 0:30, but it looks like the mouse cursor goes to where he touches.
I'm guessing that the input mode in the video was either:
Touch Mouse Pan and Zoom
This is the default input mode and is
designed to work like the Android browser. You can both pan the
display and control the mouse using the touchscreen and gestures. You
pan by dragging or flicking on the touchscreen; you click the mouse by
tapping on it. You right-click by double-tapping (or by holding down
the camera button while tapping). You drag the mouse by doing a long
press on the display, and then dragging. In this mode the trackball or
DPad (if your phone has one) can also be used to control the mouse;
this may give you finer control. You can zoom the screen size with the
+/- buttons, or, if your device supports multi-touch and has Android 2.0+, you can pinch to zoom out and spread to zoom in.
Mouse Control Mode
In this mode, use the touchscreen to control the
mouse. Touching the screen generates a mouse click at that point;
dragging on the screen creates a mouse drag. Keyboard events are sent
as normal. The trackball is used to send arrow-key events to the VNC
server. Pressing the trackball toggles between Mouse Pointer Control
and Desktop Panning modes.
If the PC you're connecting to accesses the internet through a router,
this will be the WAN address assigned to the router by your ISP;
you'll also need to forward the VNC port (5900) from the router to
your PC (exactly how you do this depends on the details of your
router, so I can't give more explicit instructions here).
Hacker's Keyboard - use a full soft keyboard on Android
From what I've read, the stock android keyboard doesn't have buttons such as Ctrl, Alt, Esc, arrow keys, Home, End, and Delete.
You can use the free, open source, app call Hacker's Keyboard to gain access to the buttons of a full keyboard:
“Are you missing the key layout you're used to from your computer?
This keyboard has separate number keys, punctuation in the usual
places, and arrow keys. It is based on the AOSP Gingerbread soft
keyboard, so it supports multitouch for the modifier keys.
This keyboard is especially useful if you use ConnectBot for SSH
access. It provides working Tab/Ctrl/Esc keys, and the arrow keys are
essential for devices such as the Xoom tablet or Nexus S that don't
have a trackball or D-Pad.”
A patch that allows android-vnc-viewer to recognize all the keys of Hacker's Keyboard
In “Frequently Asked Questions” of Hacker's Keyboard, there's a section called “Android VNC Viewer doesn't recognize the extra keys”.
It directs you to an issue called “Issue 238: Support additional keys, fix modifier handling” (code.google.com/p/android-vnc-viewer/issues/detail?id=238). The patch there will make it so that Android VNC Viewer recognizes buttons of a full keyboard.
bVNC is a secure, open source VNC client.
- Tested with Hackerskeyboard. Using it is recommended (get hackers keyboard from Google Play).
Update 2: Jump Desktop VNC
I currently and personally use Jump Desktop VNC because the “bring-out-the-keyboard” is close, and easily reachable. With bVNC, I have to tap near the middle of the screen, and then I press a keyboard button on the right to bring out the keyboard. Jump Desktop VNC also lets you use a Google account, so you don’t have to deal with addresses.