libinput/doc/switches.dox
Peter Hutterer 3b0f1d767a doc: add a section for tablet mode switches
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-09-29 08:13:44 +10:00

50 lines
2.2 KiB
Text

/**
@page switches Switches
libinput supports a couple of switches. Unlike button events that come in
press and release pairs, switches are usually toggled once and left at the
setting for an extended period of time.
Only some switches are handled by libinput, see @ref libinput_switch for a
list of supported switches. Switch events are exposed to the caller, but
libinput may handle some switch events internally and enable or disable
specific features based on a switch state.
The order of switch events is guaranteed to be correct, i.e., a switch will
never send consecutive switch on, or switch off, events.
@section switches_lid Lid switch handling
Where available, libinput listens to devices providing a lid switch.
The evdev event code `EV_SW` `SW_LID` is provided as @ref
LIBINPUT_SWITCH_LID. If devices with a lid switch have a touchpad device,
the device is disabled while the lid is logically closed. This is to avoid
ghost touches that can be caused by interference with touchpads and the
closed lid. The touchpad is automatically re-enabled whenever the lid is
openend.
This handling of lid switches is transparent to the user, no notifications
are sent and the device appears as enabled at all times.
On some devices, the device's lid state does not always reflect the physical
state and the lid state may report as closed even when the lid is physicall
open. libinput employs some heuristics to detect user input (specificially
typing) to re-enable the touchpad on those devices.
@section switches_tablet_mode Tablet mode switch handling
Where available, libinput listens to devices providing a tablet mode switch.
This switch is usually triggered on devices that can switch between a normal
laptop layout and a tablet-like layout. One example for such a device is the
Lenovo Yoga.
The event sent by the kernel is `EV_SW` `SW_TABLET_MODE` and is provided as
@ref LIBINPUT_SWITCH_TABLET_MODE. When the device switches to tablet mode,
the touchpad and internal keyboard are disabled. If a trackpoint exists,
it is disabled too. The input devices are automatically re-enabled whenever
tablet mode is disengaged.
This handling of tablet mode switches is transparent to the user, no
notifications are sent and the device appears as enabled at all times.
*/