chiark / gitweb /
udev: Add builtin/rule to export evdev information as udev properties
authorCarlos Garnacho <carlosg@gnome.org>
Sun, 11 Jan 2015 19:47:19 +0000 (20:47 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 12 Jan 2015 04:41:42 +0000 (23:41 -0500)
commitb9e616cc2256501f484f138999ec63a0094f5c4f
tree969227a5ea4503d7abaa67da87f15a62f620c230
parentb3e486b8194f238fdb7cdf977cb6943305b34b9c
udev: Add builtin/rule to export evdev information as udev properties

This rule is only run on tablet/touchscreen devices, and extracts their size
in millimeters, as it can be found out through their struct input_absinfo.

The first usecase is exporting device size from tablets/touchscreens. This
may be useful to separate policy and application at the time of mapping
these devices to the available outputs in windowing environments that don't
offer that information as readily (eg. Wayland). This way the compositor can
stay deterministic, and the mix-and-match heuristics are performed outside.

Conceivably, size/resolution information can be changed through EVIOCSABS
anywhere else, but we're only interested in values prior to any calibration,
this rule is thus only run on "add", and no tracking of changes is performed.
This should only remain a problem if calibration were automatically applied
by an earlier udev rule (read: don't).

  v2: Folded rationale into commit log, made a builtin, set properties
      on device nodes themselves
  v3: Use inline function instead of macro for mm. size calculation,
      use DECIMAL_STR_MAX, other code style issues
  v4: Made rule more selective
  v5: Minor style issues, renamed to a more generic builtin, refined
      rule further.
Makefile.am
rules/60-evdev_id.rules [new file with mode: 0644]
src/udev/udev-builtin-evdev_id.c [new file with mode: 0644]
src/udev/udev-builtin.c
src/udev/udev.h