KDE KCModule

This module implements a GUI for the Wacom Linux Drivers and extends it
with profile support to handle different button / pen layouts per profile.

For hardware support have a look at http://www.linuxwacom.sourceforge.net

Easy profile switching is added via a small plasma applet.
In addition a daemon running in the background helps with hotplug support.

All tablets can be set up as long as they are found with the wacom kernel module.

Check with
$ xsetwacom list devices
if your device is correctly recognized first. If it dosn't show up there, we can't configure it.

Components:
* kded:
	runs in the background, detects a connected tablet and applies the pad button / stylus profile
	detects xrandr rotation and rotates the tablet with it
	apply global shortcuts for the touch on/off stylus feature

* systemsettings module:
	unified gui to set-up the buttons and other aspects of the tablet

* plasma-applet:
	optional applet for easy switching between different profiles

Manual installation
===================

Run-time dependencies:
* X11 wacom tablet driver (xserver-xorg-input-wacom), including the xsetwacom tool, version 0.20 or higher

Build dependencies on Debian/Ubuntu:
* g++
* cmake
* extra-cmake-modules
* gettext
* libqt5x11extras5-dev
* qtdeclarative5-dev
* libkf5coreaddons-dev
* libkf5i18n-dev
* libkf5dbusaddons-dev
* libkf5globalaccel-dev
* libkf5config-dev
* libkf5xmlgui-dev
* libkf5notifications-dev
* plasma-framework-dev
* kdoctools-dev
* libxi-dev

You can install them by running:

$ apt install g++ cmake extra-cmake-modules gettext libqt5x11extras5-dev qtdeclarative5-dev libkf5coreaddons-dev libkf5i18n-dev libkf5dbusaddons-dev libkf5globalaccel-dev libkf5config-dev libkf5xmlgui-dev libkf5notifications-dev plasma-framework-dev kdoctools-dev libxi-dev

Building from source
--------------------

$ mkdir build
$ cd build
$ cmake ../ -DCMAKE_BUILD_TYPE=release
$ make
$ make install

Building debian package
-----------------------

$ debuild -us -uc -b

Staring the module
==================

Background daemon should be started automatically each time you log in.

If you do not want to restart your session, you can just restart the kded with:

$ kquitapp kded5
$ kded5 &

Afterwards you get a notice when you plug in your device and can configure it via

$ kcmshell5 wacomtablet

or have a look in the system settings where the input settings are.

Running unit tests
==================

First, configure the build to include tests by enabling BUILD_TESTING:

$ mkdir build
$ cd build
$ cmake ../ -DBUILD_TESTING=ON
$ make

Then, run the tests with:

$ ctest

or a single one via

$ cd autotests/common/property
$ ./Test.Common.Property

you can find the test results in Testing/Temporary/LastTest.log

Add missing tablet devices
==========================

If your device is not recognized by this program, but you can set it up via the xsetwacom driver, run kde_wacom_tabletfinder.

Manually adding missing tablet devices
--------------------------------------

This method shouldn't really be used anymore unless you've encountered problems with kde_wacom_tabletfinder

### Step 1) Get real internal Tablet name ###

xsetwacom list dev

for my Wacom Bamboo:
Wacom Bamboo eraser ERASER
Wacom Bamboo cursor CURSOR
Wacom Bamboo pad PAD
Wacom Bamboo     STYLUS

### Step 2) Then you need the Tablet ID ###

xsetwacom get "Wacom Bamboo" tabletid

for my Wacom Bamboo:
101

### Step 3) Transform it into Hexadecimal ###

For my Wacom Bamboo: 0065

### Step 4) Add a new section into either ~/.config/tabletdblocalrc or the right datafile in /usr/share/wacomtablet/data/ ###

for the Wacom Bamboo the right file is: wacom_devicelist

Add a new entry

for my Wacom Bamboo:

[0065]
model=MTE_450        # try to google for it but not used right now
layout=bl_6          # can be empty if no button layout is available that exists (see images dir)
name=Wacom Bamboo    # name as found above
padbuttons=4         # available buttons on the pad
wheel=no
touchring=yes
touchstripl=no
touchstripr=no
hwbutton1=1          # these mag the physical button numbers to what the XServer likes to name them
hwbutton2=2          # see below for more information
hwbutton3=3
hwbutton4=8

### hwbuttonX explanantion ###

Kernels >= 2.6.38 renamed the buttons for some reason.

xsetwacom does not work with the pysical hardware button numbers 1-X
but rather with the real numbers as seen by the XServer

In case you run into trouble with the buttons do the following:
* deinstall the kded/kcm ;)
* disconnect/reconnect the tablet
* run xev in the terminal
* move the mouse over the new window
* press the hardware buttons and write down what button xev sees

and now update the wacom_device list accordingly

for the new Pen & touch tablets before the kernel 2.6.38 we got
hwbutton1=1
hwbutton2=2
hwbutton3=3
hwbutton4=8

for kernels >= 2.6.38 we get
hwbutton1=3
hwbutton2=8
hwbutton3=9
hwbutton4=1
