Hi,
I agree that it is absolutely essential to be able to control the position of the On-Screen Keyboard. Another rather straight-forward but efficient way to do this under the control of the user, is to provide key/button scripts that move the keyboard to different locations on the screen, e.g. top-centre and bottom-centre, or to the corners of the screen. This has been used successfully since long in the open source Special Access to Windows (SAW 5) OSK package for Windows.
You will find a screendump of such a keyboard layout at
http://www.symbolnet.org/move_saw_window.png (the red arrows pointing at the keys for moving the keyboard to the top and bottom of the screen - and next under them a button for hiding the keyboard for a specified number of seconds),
and a list of available script commands in SAW 5 specifically for this kind of purposes at
http://www.symbolnet.org/move_saw_window_scripts.pngAnother useful way to handle the issue of unwanted overlap between the OSK and the target application window is a feature found in Sensory Software's "The Grid 2": They provide a "dock" script which automatically resizes the target application window height and docks the OSK underneath it - filling up the vertical space of the screen. I don't know how difficult it would be to do this in the GNOME desktop environment, but it would be a useful to have eventually in Caribou.
The need for good macro scripting in an OSK like Caribou also brings up the idea of a constructive cooperation between the Caribou project and a Macro utility project (something similar to
Autohotkey for Windows) that was requested/suggested a couple of weeks ago in this forum.