Terms and definitions
Plugin name is string returned by overridden method DuiInputMethodPlugin::name().
Input method object is object created by DuiInputMethodPlugin::createInputMethod()

Switching modes of input method plugins.
Plugins' modes are managed by GConf items.  Item “/Dui/InputMethods/Plugins/Handler/” enumerates possible states and defines which plugin should handle corresponding state. For example item “/Dui/InputMethods/Plugins/Handler/0” has value “DuiVirtualKeyboard”, it means that plugin named DuiVirtualKeyboard will be loaded when handler 0 will be activated. 
Reserved handlers
0 – on-screen keyboard
1 – hardware keyboard
2 – Bluetooth keyboard (this handler is reserved for future)
On-screen keyboard could not be activated together with any other handler.

Default handlers configuration
Handler Plugin
0 	DuiVirtualKeyboard
1 	DuiVirtualKeyboard

Reserved plugin names:
DuiVirtualKeyboard – default input method plugin

List of currently activated handler(s) is defined by item “/Dui/InputMethods/Plugins/ActualHandler”. dui-im-uiserver loads all plugins at startup and activates plugins which correspond to actual handler(s). If some handler is excluded from list of activated handlers then corresponding plugin will be deactivated and it will not receive any events anymore. After that dui-im-uiserver may delete input method object created by that plugin and plugin may lose it's internal state. 
/Dui/InputMethods/Plugins/ActualHandler contains [0] by default.

How to switch virtual keyboard between on-screen and hardware modes
1.Install all required packages
	dui-im-context
	dui-im-uiserver
	dui-keyboard
2.Run the following command to set on-screen mode
	gconftool-2 --type list --list-type string -s /Dui/InputMethods/Plugins/ActualHandler [0]
	Now you can see whole keyboard on the screen when some text entry has focus.
3.Run the following command to set hardware mode
	gconftool-2 --type list --list-type string -s /Dui/InputMethods/Plugins/ActualHandler [1]
	This command allows to use toolbar only: Copy/Paste button is visible when corresponding action is available, Close button is hidden, custom buttons are visible if application defines custom toolbar.


