Maliit provides a flexible and cross-platform input method framework, including a virtual keyboard.
It has a plugin-based client-server architecture where applications act as clients and communicate with the Maliit server via input context plugins.
Maliit is an open source framework (LGPL 2)
... [More] with open source plugins (BSD). There are also proprietary plugins. It runs on most GNU/Linux distributions. [Less]