WacomTabletsUi

Revision 7 as of 2008-12-18 22:28:09

Clear message
  • Launchpad Entry: wacom-tablets-ui

  • Created: 2008-11-21

  • Contributors: Alberto Milone

  • Packages affected: wacom-tools

Summary

Currently there's no easy way for users to enable, configure and calibrate Wacom Tablets and Tablet PCs as they have to do it manually in the xorg.conf. For this reason we should develop a simple graphical interface which can write user settings to the xorg.conf and which allows testing of the stylus, eraser and buttons inside a drawable area.

Release Note

Ubuntu now provides a simple graphical interface to enable and calibrate computer drawing tablets.

Rationale

Tablets have never been simple to configure with Ubuntu. In the distant past, Ubuntu used to ship a hardcoded wacom config in xorg.conf, however this caused various other quirky problems on systems without tablets, and only addressed a subset of available tablet models, and thus was eventually dropped. With input-hotplug, these types of hardcoded configurations were considered the wrong way to do it anyway.

However, input-hotplug has not adequately covered this class of hardware so far, and users now must manually configure xorg.conf settings for all tablet devices. We are hopeful that in time this will change, but in the meantime we would like to have a GUI tool to enable users to perform these manual configuration steps more easily.

Use Cases

  • Claire plugs in her USB tablet but HAL detects only the stylus
  • Mark wants to configure the sensitivity of his tablet
  • John wants to use the touch capability of his tablet PC
  • Gwen wants to constrain the movement of her stylus to her first screen

Assumptions

  • -evdev will not gain adequate multi-device support in time for Jaunty
  • wacom-tools will not gain adequate input-hotplug support in time for Jaunty

Design

  • Configuration wizard:

    • hardware profiles for different models
    • custom profile:
      • users are asked a few questions on the characteristics of their tablet/tablet PC
      • buttons on the tablet, touchscreen, (serial or USB) connection, etc.
  • Configuration dialog:

    • the different components (stylus, eraser, pad, touch) can be configured separately
    • some components are not available in certain hardware configurations
    • some options are not available in certain components
    • options:
      • Mode (Screen, Window → Relative/Absolute)
      • Pressure Sensitivity
      • Click Threshold (or Button Threshold)
      • Speed
      • Allow cursor to move across multiple screens (for screens with different resolutions)
      • Rotation is done using the existing Screen Resolution tool and not handed here
        • (Future work may leverage the upcoming python RandR bindings to do this in-tool)
    • a drawing area to test the pressure sensitivity of stylus and eraser devices
    • applies/saves settings (2 alternatives):
      • settings are applied and saved only after clicking on the “Apply” button
      • settings are applied immediately but are saved only after clicking on the “Save” button
    • actions:
      • makes the wizard show up when no relevant device is found in the xorg.conf
      • allows users to change the tablet model (maybe with a button to run the wizard again)
      • displays a dialog to warn the user that s/he has to restart X with the tablet plugged in in order to use it (when the tablet is already configured in the xorg.conf)
  • UI:

    • The first supported frontend will rely upon GTK.
    • A drawing area (using Cairo and GooCanvas for the GTK UI) for testing

We anticipate that upstream will eventually support input-hotplug on tablets, or that better workarounds will become available than modifying xorg.conf (e.g. adjusting settings through dbus). Since this change could have major architectural impacts on this tool, we should keep the design simple and the number of supported features constrained, as it will be likely that we will need to drop or change significant portions of this tool at that time. The fewer features we provide, the easier the transition will be to the new architecture.

Implementation

  • Tablet profiles:

    • hardware profiles for different models (OpenSuse's Sax2 already does this)

    • custom profiles for unsupported models
  • Tablet tools settings (stylus, etc.):

    • applied immediately with xsetwacom (without having to restart X)
    • settings to turn on the device are saved to the xorg.conf through X-Kit and PolicyKit

    • settings to configure the device are saved to an rc file, to be parsed by a runtime wacom setup tool
    • User is prompted to reboot for the settings to take effect, and told to reboot with the device attached.
  • Wacom options:

    • depend on the hardware profile and are set according to what the wacom man page suggests
    • Allow cursor to move across multiple screens (for screens with different resolutions)

      • easy to do with RandR 1.2
      • Xinerama. Parse the ServerLayout section with X-Kit (ServerFlags too)

      • Mode has to be set to Relative otherwise the stylus won't be able to move across 2 or more screens

Test/Demo Plan

  • Requirements for deployment to universe:
    • Tool must build with no errors and minimal warnings on a stock Jaunty system
    • Installation must pull in correct dependencies and run without error on a stock Jaunty system
    • Verify able to write settings to xorg.conf and other config files correctly when used multiple times in succession.
    • Verify able to (independently) configure 2 different models of tablets
  • Requirements for inclusion in main:
    • Verify able to (independently) configure 5 different models of tablets, including 2 non-Wacom tablets
    • Verify able to (simultaneously) configure 2 tablets on one system, such that both devices work and that each device's settings can be further customized correctly
    • Verify able to set up tablet A, remove it, set up tablet B with different settings, remove it, reattach tablet A, and have it come up with the correct settings for tablet A.
    • Verify that after making configuration changes at run time, that the same changes are present after reboot
    • Verify ability to configure a tablet that does not have settings listed in the database
    • All strings must be translatable
    • All help buttons must display a help page, or link to online documentation in wiki
    • Must be accessible from the Applications menu

Unresolved issues

None

BoF agenda and discussion


CategorySpec