README.md 6.19 KB
Newer Older
Valeriy Malov's avatar
Valeriy Malov committed
1
2
KDE Wacom support
=================
3
4
5
6

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

Valeriy Malov's avatar
Valeriy Malov committed
7
For hardware support have a look at https://linuxwacom.github.io/
8

Valeriy Malov's avatar
Valeriy Malov committed
9
10
11
12
13
14
15
Configuration can be located in System Settings → Input devices → Tablets

Easy profile switching is supported via hotkeys or a small plasma applet in tray notification area.
In addition, a daemon running in the background helps with hotplug support.

Hardware support
----------------
16

17
All tablets can be set up as long as they are found with the wacom kernel module.
Jörg Ehrichs's avatar
Jörg Ehrichs committed
18
19

Check with
Valeriy Malov's avatar
Valeriy Malov committed
20
21
22

    $ xsetwacom list devices

23
if your device is correctly recognized first. If it doesn't show up there, we can't configure it.
24

Valeriy Malov's avatar
Valeriy Malov committed
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Installation
------------

Wacom support in KDE is a separate component and might be not installed by default.
Package usually goes by name `wacomtablet` or `kcm-wacomtablet`.

More or less full list of distributions including the package should be avaliable at:

* https://repology.org/metapackage/kcm-wacomtablet/versions

Staring the module
------------------

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

You can enable or manually start the service via System Settings → Startup and Shutdown → Background services.

Adding missing tablet devices
-----------------------------

If your device is not recognized by this program, but you can set it up via the xsetwacom driver,
46
run Wacom Tablet Finder (`kde_wacom_tabletfinder`), describe your device and click `Save`, and restart Wacom tablet service (see above).
47

Valeriy Malov's avatar
Valeriy Malov committed
48
Please send your device description (file `~/.config/tabletdblocalrc`) to the bugtracker, so it will be added in future versions.
49

Valeriy Malov's avatar
Valeriy Malov committed
50
51
Reporting bugs
--------------
52

Valeriy Malov's avatar
Valeriy Malov committed
53
54
55
56
https://bugs.kde.org/enter_bug.cgi?product=wacomtablet

Building & manual installation
==============================
Valeriy Malov's avatar
Valeriy Malov committed
57

58
This is *not* a recommended way to use this application. Installing it manually creates files untracked by your package manager.
Valeriy Malov's avatar
Valeriy Malov committed
59
60
This can cause everyone problems later on. Please contact your distribution's maintainers to package it instead.

61
62
Run-time dependencies:
* X11 wacom tablet driver (xserver-xorg-input-wacom), including the xsetwacom tool, version 0.20 or higher
Valeriy Malov's avatar
Valeriy Malov committed
63
* libwacom. Highly recommended to have version 0.29 or higher for support of consumer-grade tablets with quirky buttons.
Valeriy Malov's avatar
Valeriy Malov committed
64
65

Build dependencies on Debian/Ubuntu:
Valeriy Malov's avatar
Valeriy Malov committed
66
67
68
69
70
71
* g++
* cmake
* extra-cmake-modules
* gettext
* libqt5x11extras5-dev
* qtdeclarative5-dev
Valeriy Malov's avatar
Valeriy Malov committed
72
73
74
75
76
77
78
79
80
81
* libkf5coreaddons-dev
* libkf5i18n-dev
* libkf5dbusaddons-dev
* libkf5globalaccel-dev
* libkf5config-dev
* libkf5xmlgui-dev
* libkf5notifications-dev
* plasma-framework-dev
* kdoctools-dev
* libxi-dev
Valeriy Malov's avatar
Valeriy Malov committed
82
* libwacom-dev
83

Valeriy Malov's avatar
Valeriy Malov committed
84
85
You can install them by running:

Valeriy Malov's avatar
Valeriy Malov committed
86
    $ 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 libwacom-dev
Valeriy Malov's avatar
Valeriy Malov committed
87

Valeriy Malov's avatar
Valeriy Malov committed
88
89
Building from source
--------------------
90

Valeriy Malov's avatar
Valeriy Malov committed
91
92
93
94
    $ mkdir build
    $ cd build
    $ cmake ../ -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DKDE_INSTALL_USE_QT_SYS_PATHS=ON
    $ make
95

96
Manual installation (this *will* litter in your system):
Valeriy Malov's avatar
Valeriy Malov committed
97

Valeriy Malov's avatar
Valeriy Malov committed
98
    $ make install
Valeriy Malov's avatar
Valeriy Malov committed
99

Valeriy Malov's avatar
Valeriy Malov committed
100
101
Running without installing
--------------------------
Jörg Ehrichs's avatar
Jörg Ehrichs committed
102

Valeriy Malov's avatar
Valeriy Malov committed
103
This is not intended for daily use, but for people who want to test developer builds.
104

Valeriy Malov's avatar
Valeriy Malov committed
105
Running KCM component:
106

Valeriy Malov's avatar
Valeriy Malov committed
107
    $ QT_PLUGIN_PATH=src/kcmodule/ kcmshell5 wacomtablet
108

Valeriy Malov's avatar
Valeriy Malov committed
109
Running KDED component:
110

Valeriy Malov's avatar
Valeriy Malov committed
111
112
    $ ln -s kf5 src/
    $ kquitapp5 kded5 && QT_PLUGIN_PATH=$PWD kded5
Valeriy Malov's avatar
Valeriy Malov committed
113

Valeriy Malov's avatar
Valeriy Malov committed
114
Running tablet finder:
Valeriy Malov's avatar
Valeriy Malov committed
115

Valeriy Malov's avatar
Valeriy Malov committed
116
    $ src/tabletfinder/kde_wacom_tabletfinder
Valeriy Malov's avatar
Valeriy Malov committed
117
118
119
120
121

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

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

Valeriy Malov's avatar
Valeriy Malov committed
123
124
125
126
    $ mkdir build
    $ cd build
    $ cmake ../ -DBUILD_TESTING=ON
    $ make
127

Valeriy Malov's avatar
Valeriy Malov committed
128
Then, run the tests with:
129

Valeriy Malov's avatar
Valeriy Malov committed
130
    $ ctest
131
132
133

or a single one via

Valeriy Malov's avatar
Valeriy Malov committed
134
135
    $ cd autotests/common/property
    $ ./Test.Common.Property
136

Valeriy Malov's avatar
Valeriy Malov committed
137
you can find the test results in `Testing/Temporary/LastTest.log`
138

Valeriy Malov's avatar
Valeriy Malov committed
139
Manually adding missing tablet devices
Valeriy Malov's avatar
Valeriy Malov committed
140
======================================
141

Valeriy Malov's avatar
Valeriy Malov committed
142
143
144
This method shouldn't really be used anymore unless you've encountered problems with kde_wacom_tabletfinder

### Step 1) Get real internal Tablet name ###
145
146
147
148

xsetwacom list dev

for my Wacom Bamboo:
Jörg Ehrichs's avatar
Jörg Ehrichs committed
149
150
151
152
Wacom Bamboo eraser ERASER
Wacom Bamboo cursor CURSOR
Wacom Bamboo pad PAD
Wacom Bamboo     STYLUS
153

Valeriy Malov's avatar
Valeriy Malov committed
154
### Step 2) Then you need the Tablet ID ###
155
156
157
158
159
160

xsetwacom get "Wacom Bamboo" tabletid

for my Wacom Bamboo:
101

Valeriy Malov's avatar
Valeriy Malov committed
161
### Step 3) Transform it into Hexadecimal ###
162
163
164

For my Wacom Bamboo: 0065

Valeriy Malov's avatar
Valeriy Malov committed
165
### Step 4) Add a new section into either ~/.config/tabletdblocalrc or the right datafile in /usr/share/wacomtablet/data/ ###
166
167
168
169
170
171
172
173
174
175
176
177

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
Jörg Ehrichs's avatar
Jörg Ehrichs committed
178
wheel=no
179
180
touchring=yes
touchstripl=no
Jörg Ehrichs's avatar
Jörg Ehrichs committed
181
182
183
184
185
186
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

187
### hwbuttonX explanation ###
Jörg Ehrichs's avatar
Jörg Ehrichs committed
188
189
190

Kernels >= 2.6.38 renamed the buttons for some reason.

191
xsetwacom does not work with the physical hardware button numbers 1-X
Jörg Ehrichs's avatar
Jörg Ehrichs committed
192
193
194
but rather with the real numbers as seen by the XServer

In case you run into trouble with the buttons do the following:
195
* uninstall the kded/kcm ;)
Jörg Ehrichs's avatar
Jörg Ehrichs committed
196
197
198
199
200
201
202
203
204
205
206
207
208
* 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

Jörg Ehrichs's avatar
Jörg Ehrichs committed
209
for kernels >= 2.6.38 we get
Jörg Ehrichs's avatar
Jörg Ehrichs committed
210
211
212
213
hwbutton1=3
hwbutton2=8
hwbutton3=9
hwbutton4=1
Valeriy Malov's avatar
Valeriy Malov committed
214
215
216
217
218
219
220
221
222

Releasing new version
=====================

Checklist for developers:

* Bump main package version in: `CMakeLists.txt`
* Bump applet version in: `src/applet/package/metadata.desktop`
* Follow https://community.kde.org/ReleasingSoftware