The keyboard service works with the keyboard provided by the HMI to display and manage the on-screen
keyboard, or with a physical keyboard to enable input from that keyboard.
Overview
The keyboard service (
keyboard-imf)
lets applications communicate with the on-screen keyboard through PPS objects. It allows them to:
- show and hide the keyboard
- know the keyboard height, in pixels, so they can, if necessary, adjust their displays to fit
into the remaining available screen area
- accept text entries and know how many characters have been entered
Interaction of HMI, keyboards, and applications
The diagram below shows how keyboard-imf interacts with the HMI virtual keyboards:
- The HMI virtual keyboards (HTML inside the Navigator, or Qt standalone) create the /pps/system/keyboard/control and /pps/system/keyboard/status PPS objects, and publish their
activities to them.
- The keyboard-imf service subscribes to these objects to be able to receive
information from the HMI.
- The keyboard-imf service creates the
/pps/services/input/control/ PPS object, to which it publishes information
received from the HMI and the applications. This object is for internal communication between
keyboard-imf and the HMI; other components and applications don't need to
publish or subscribe to this object.
- Applications, such as Weblauncher and QT runtime, subscribe to
/pps/services/input/control/ to learn about keyboard presence, height,
etc., and publish information such as the user input and the number of characters entered.
Figure 1. Keyboards, keyboard-imf and applications.
Physical keyboard
To use a physical keyboard (connected through a USB port), you need to:
- Configure the QNX Screen globals input parameter in the
Screen configuration file (graphics.conf) to accept
input from a physical keyboard. For more information, see "Configuration parameters for globals" in the Screen
Graphics Subsystem Developer's Guide.
- Make sure that your system has the language-specific key mapping files for the
languages you will support. These files should be in the
/usr/share/keyboard/ directory.