Grafiktablett-Support für X11 und Gimp


Dies ist eine Kurzanleitung, wie man Wacom-Grafiktabletts mit XFree86 z.B. unter Linux verwendet.

Der Treiber

Mit allen aktuellen XFree86 Installationen wird ein Treiber für die Wacom-Grafiktabletts mitgeliefert, er muss nur aktiviert werden. Wollen Sie jedoch die Wacom-Intuos Serie mit verschiedenen Werkzeugen verwenden, oder sollten sie Probleme haben, dass beim zweiten Start von X das Tablett nicht richtig initialisiert wird oder das Tablett nicht auf dem ganzen Bildschirm benutzbar ist, so benötigen Sie die aktuellste Version des Treibers von Frank Lepied, der unter http://www.lepied.com/xfree86/ für alle Versionen von Xfree86 >= 3.3.3.1 zum freien Download zur Verfügung steht. Dieser wird einfach in das Modul-Verzeichnis des X-Servers (meistens /usr/X11R6/lib/modules/) kopiert.

/etc/X11/XF86Config

In dieser Datei muss zuerst der Treiber geladen werden. Dies geschieht über den Abschnitt "Modules":

Section "Module"
#
# Hier wird der Wacom-Treiber geladen.
#
  Load "xf86Wacom.so"
#
EndSection
Bei den meisten Distributionen ist dieser Abschnitt schon als Kommentar in der Konfigurationsdatei, so dass in dieser Zeile nur das Kommentarzeichen entfernt werden muss.

In dem zweiten Schritt müssen die einzelnen Werkzeuge dem X-Server bekannt gemacht werden. Dies sieht folgendermaßen aus:

Section "Xinput"
    SubSection "WacomStylus"
        Port "/dev/ttyS1"
        DeviceName "Wacom Pen"
        Mode Absolute
        Suppress 10
        AlwaysCore
    EndSubSection

    SubSection "WacomEraser"
        Port "/dev/ttyS1"
        DeviceName "Wacom Eraser"
        Mode Absolute
        # Suppress 10  # hier nicht nötig, da schon vorher definiert
        AlwaysCore
    EndSubSection
EndSection
Für jedes Gerät wird ein Unterabschnitt eingerichtet. Die wichtigsten Optionen sind:

Port <device>
Hier ist das Tablett angeschlossen
DeviceName <name>
Dies ist ein frei wählbarer Name, unter dem das Gerät in den Dialogen angezeigt wird
Mode [Absolute|Relative]
Diese Option bestimmt das Verhalten des Mauszeigers:
Absolute
legt fest, dass der Stift absolut arbeitet (d.h. eine Position auf dem Tablett entspricht einer Position auf dem Monitor).
Relative
legt fest, dass sich der Stift wie eine Maus verhält (d.h. anheben des Stifts und aufsetzen auf einer anderen Position ändert die Position des Mauszeigers nicht).
Suppress <Empfindlichkeit>
Durch die hohe Genauigkeit der Tabletts werden selbst minimale Stiftbewegungen in Mausbewegungen umgesetzt. Dies kann zu einem Zittern des Mauszeigers führen. Um diesen Effekt zu unterdrücken, kann man mit diesem Wert die Empfindlichkeit etwas herabsetzen. Wenn man diesen Wert nicht extrem groß einstellt, sollte man den Unterschied nicht merken (außer, dass der Mauszeiger nicht mehr zittert...). Sinnvolle Werte liegen im Bereich zwischen 5 und 30. Suppress muß nur in der ersten SubSection eingetragen werden.
AlwaysCore
Diese Anweisung sorgt dafür, dass die Stiftbewegungen auch Tatsächlich in Zeigerbewegungen umgesetzt werden. Ohne diese Anweisungen können nur Programme, die speziell dafür programmiert wurden (wie z.B. Gimp) das Tablett verwenden.

Mit diesen Optionen können Sie X starten und erste Experimente mit dem Tablett machen. Wahrscheinlich müssen Sie sich etwas umgewöhnen, da man von der Maus doch ein etwas anderes Verhalten gewöhnt ist.

Eine Intuos-4D-Maus arbeitet mit dieser Konfiguration nicht. Falls Sie eine solche besitzen, finden sie die nötigen Angaben zur Konfiguration in dem Intuos-Teil. Wenn der Tablettbereich nicht den kompletten Bildbereich abdeckt, kann man noch korrigierend eingreifen, siehe unten.

GTK+

Da Gimp für seine Oberfläche die Library GTK+ verwendet und über diese auch auf die Daten vom Grafiktablett zugreift, müssen Sie sicherstellen, dass GTK+ mit Unterstützung für eben diese installiert wurde. Leider ist dies bei den meisten Distributionen nicht der Fall. Sie müssen vermutlich bei bei http://www.gtk.org/ die aktuellste Version (gtk+-1.2.x.tar.gz) downloaden und installieren. Es geht über den Rahmen dieser Kurzanleitung hinaus, die genaue Installation zu beschreiben, das wichtigste ist, bei dem ersten Schritt ./configure --with-xinput=xfree anzugeben.

Ich habe für ein paar Betriebssysteme Pakete mit XInput-Unterstützung gebaut, siehe auch hier.

Gimp

Gimp unterstützt erst seit den Entwicklerversionen (1.1.x) Grafiktabletts. Es gibt zwar Patches für Version 1.0, ich würde mir aber nicht die Mühe machen, mich damit rumzuquälen und dann ein im Vergleich zu der 1.1er Version armseliges Ergebnis zu erhalten.

Für die Unterstützung durch Tabletts müssen sie keine besonderen Vorkehrungen treffen. Sie sollten sofort mit dem Tablett malen können. Nun haben sie allerdings noch keine Druck/Neigungswinkelsensitivität. Dafür müssen Sie in dem Dialog <Toolbox>/File/Dialogs/Input Devices... alle Geräte freischalten. Gehen sie dafür das Menü oben links durch und stellen Sie oben rechts für jedes Gerät den Modus "Screen" ein. Mit einem Klick auf "Save" wird die Konfiguration abgespeichert.

Jetzt können Sie in Gimp mit Ihren Werkzeugen arbeiten. Gimp kann jedem Werkzeug ein eigenes Werkzeug zuweisen, so dass sie zum Beispiel durch ein Drehen des Werkzeugs zwischen dem Stift und dem Radierer umschalten können. Mit dem Wacom Intuos können Sie auch zwischen verschiedenen Werkzeugen (auch von demselben Typ) umschalten, da jedes dieser Werkzeuge eine eindeutige ID hat, für weitere Informationen siehe den Intuos-Teil.

Mehrere Werkzeuge mit dem Wacom Intuos System.

Dieser Abschnitt ist nur für Leute interessant, die zusätzlich zu ihrem Wacom Intuos Tablett auch noch zusätzliche Werkzeuge besitzen, und dieses Feature auch nutzen wollen. Jeder Stift funktioniert auch ohne die nachfolgenden Schritte einwandfrei, er kann bloß von z.B. Gimp nicht von anderen Stiften unterschieden werden.

Jedes Intuos-Werkzeug (Stylus Pen, Stroking Pen, Inking Pen, Airbrush, 4D-Mouse, Lens-Cursor) besitzt eine weltweit eindeutige Seriennummer, die sogenannte "Tool-ID". Für jedes Werkzeug, daß Sie mit Ihrem Tablett verwenden möchten, müssen Sie eine eigene Subsection in der XF86Config eintragen. Es gibt hier drei verschiedene Typen:

WacomStylus
die Vorderseite von Stylus Pen, Inking Pen und Airbrush
WacomEraser
die Rückseite von Stylus Pen, Inking Pen und Airbrush, sowie die Vorderseite des Stroking Pen
WacomCursor
die 4D-Mouse und der Lens Cursor
Beachten Sie, dass Sie für Werkzeuge mit zwei druckempfindlichen Spitzen auch zwei Einträge in der Konfigurationsdatei brauchen.

Leider ist es zur Zeit nicht möglich, Werkzeuge "on the fly", also während X gestartet ist, neu hinzuzufügen. Die Entwickler arbeiten an einem Weg, dies zu ermöglichen.

Es ist nicht ganz einfach, die Seriennummer eines Intuos-Werkzeugs herauszufinden, da Wacom sie leider nicht z.B. auf ein Etikett druckt. Ich empfehle folgendes: Setzen Sie folgenden Abschnitt als einzigen in die XInput-Section Ihrer XF86Config:

    SubSection "WacomStylus"
        Port            "/dev/ttyS1"   # je nachdem, wo Ihr Tablett angeschlossen ist
        DeviceName      "Pen"
        DebugLevel      6
        Mode            Absolute
        AlwaysCore
    EndSubsection
Nun starten Sie X mit  X 2>&1 | grep -i serial_num  Es erscheint der typische gerasterte X-Hintergrund. Der Mauszeiger sollte sich mit dem Stift bewegen lassen. Schalten sie mit <Strg>+<Alt>+<Fx> zurück auf die Textconsole, von der sie X gestartet haben. Es sollten schon die ersten Zeilen erschienen sein. Zum Beispiel:
device_id=0x822 serial_num=2661288963 type=stylus
device_id=0x82a serial_num=2661288963 type=eraser
device_id=0x822 serial_num=2564817921 type=stylus
device_id=0x82a serial_num=2564817921 type=eraser
device_id=0x912 serial_num=3214934019 type=stylus
device_id=0x91a serial_num=3214934019 type=eraser
device_id=0x832 serial_num=3183476738 type=eraser
device_id=0x94 serial_num=3116369921 type=cursor
Hier habe ich nacheinander 2 Stylus-Stifte und einen Airbrush (je mit Vorder- und Rückseite), einen Stroking Pen und eine 4D-Maus auf das Tablett gehalten. Jedes Werkzeug erzeugt eine weitere Zeile, der sie die Seriennummer entnehmen können. Notieren sie sich die Seriennummern und zu welchem Werkzeug sie gehören. Hier können Sie auch erkennen, welchen Subsection-Typ sie für das jeweilige Werkzeug benötigen.

Schalten Sie zurück auf den X-Bildschirm und beenden Sie X mit <Strg>+<Alt>+<Backspace>. Tragen sie nun die einzelnen Werkzeuge mit den Seriennummern in die XF86Config ein. Eine Beispielkonfiguration sehen Sie auf der nächsten Seite. Natürlich weichen bei Ihnen die Seriennummern von diesen Zahlen ab, eventuell ist auch ein anderer Port einzutragen, je nachdem, wo Sie Ihr Tablett angeschlossen haben.

Weitere Informationen

Viel Spaß

Sie können die aktuelle Entwicklerversion von Gimp zusammen mit einem Wacom-Intuos Tablett auf der Systems 1999 im Linux-Park an dem Gimp-Demopoint betrachten. Ich stehe Ihnen gerne für weitere Fragen zur Verfügung.

Simon Budig, <simon@gimp.org>

Beispielkonfiguration

 Section "XInput"
 
     # Hier kommt der erste Stylus-Pen
     SubSection "WacomStylus"
         Port            "/dev/ttyS0"
         DeviceName      "Stylus Pen 1"
         Mode            Absolute
         Suppress        10
         Serial          2661288963
         AlwaysCore
     EndSubsection
 
     # hier seine Rückseite
     SubSection "WacomEraser"
         Port            "/dev/ttyS0"
         DeviceName      "Stylus Eraser 1"   
         Mode            Absolute
         Serial          2661288963
         AlwaysCore
     EndSubsection
 
     # Hier kommt der zweite Stylus-Pen
     SubSection "WacomStylus"
         Port            "/dev/ttyS0"
         DeviceName      "Stylus Pen 2"
         Mode            Absolute
         Serial          2564817921
         AlwaysCore
     EndSubsection
 
     # und seine Rückseite
     SubSection "WacomEraser"
         Port            "/dev/ttyS0"
         DeviceName      "Stylus Eraser 2"
         Mode            Absolute
         Serial          2564817921
         AlwaysCore
     EndSubsection
 
     # Der Airbrush
     SubSection "WacomStylus"
         Port            "/dev/ttyS0"
         DeviceName      "Airbrush"
         Mode            Absolute
         Serial          3214934019
         AlwaysCore
     EndSubsection

 # Fortsetzung...
 
     # und seine Rückseite
     SubSection "WacomEraser"
         Port            "/dev/ttyS0"
         DeviceName      "Airbrush Eraser"   
         Mode            Absolute
         Serial          3214934019
         AlwaysCore
     EndSubsection
 
     # nun der Stroking Pen
     SubSection "WacomEraser"
         Port            "/dev/ttyS0"
         DeviceName      "Stroking Pen"
         Mode            Absolute
         Serial          3183476738
         AlwaysCore
     EndSubsection
 
     # zum Schluß die 4D-Maus
     SubSection "WacomCursor"
         Port            "/dev/ttyS0"
         DeviceName      "4D Mouse"
         Mode            Absolute
         Serial          3116369921

         # Die folgenden Anweisungen
	 # geben an, dass nicht der
	 # gesamte Tablettbereich
	 # genutzt werden soll.
         # Dann muß man nicht
	 # so riesige Strecken auf dem
	 # Tablett zurücklegen
         TopX            3000
         TopY            5000
         BottomX         17000
         BottomY         11000
         AlwaysCore
     EndSubsection
 
 EndSection