HOW TO Tablette Wacom Stefan Runkel <runkel@runkeledv.de> Traduit de l'anglais par Aurélia Girod <agirod@lemel.fr> Version 1.0.6, 28 Mars 2000 Installation de tablettes graphiques Wacom (et pas seulement) sous Linux en console et/ou sous XFree86 Copyright

Copyright (c) 1999,2000 par Stefan Runkel

Ce document décrit l'installation de tablettes Wacom sous Linux. Vous pouvez le distribuer soit sous les termes de la licence GPL version 2 ou supérieur, soit sous les termes du Projet de Documentation de Linux (LPD). Ces licenses devraient être applicables quelque soit l'endroit où vous avez obtenu ce document. Dernière remarque, depuis que le LDP n'autorise pas de modifications autre que les traductions, les versions modifiées ne peuvent être distribuées que sous la license GPL. Introduction

Cependant, je pense que ce doit être facile d'adapter ces explications pour d'autres produits.

J'ai écrit ce document car je n'en ai pas trouvé sur ce sujet qui contenait tout ce que je voulais savoir. J'ai donc rassemblé toutes les parties d'informations trouvées sur le Net dans ce HowTo. Considérant les questions de mes lecteurs, je sais que ce document aussi n'est pas complet et qu'il ne le sera jamais, mais je peux dire qu'il aidera beaucoup de gens et chaque nouvelle question complétera ce HowTo. Nouvelles versions de ce document

ou à Remerciements

Les tablettes Wacom suivantes sont supportées :

les séries ArtZ II (connues en Europe sous les séries UltraPad - le même nom était aussi utilisé pour d'anciennes tablettes qui ne marchaient que partiellement) ; ArtPad II ; PL300 (écran LCD et tablettes combinés) ; Pen Partner ; Graphire (souris et stylo, le driver alpha 16 pour un support complet se trouve à ) ; les séries Intuos (support seulement partiel avec le driver livré avec, téléchargez les nouvelles versions alpha à la page Frederic Lepied :

Les plus anciennes séries SD et HD ne sont pas supportées par XFree86 standard. Cependant, un driver modifié qui supporte ces périphériques ainsi que quelques produits OEM avec un écran intégré comme le Thinkpad 360 PE d'IBM et le Toshiba T200 est téléchargeable à l'adresse : Logiciel nécessaire

Sous XFree, le mot-clé est XInput. Les drivers supportent cette norme qui fournit des informations supplémentaires. Les programmes qui veulent utiliser des périphériques de pointage exotiques devront utiliser XInput.

Il existe un grand nombre de programmes basés sur la bibliothèque GTK. XInput est supporté par GTK ce qui le rend facile à utiliser. Enfin, les applications suivantes supportent XInput :

The Gimp, un puissant logiciel de retouches d'images dans le style de Photoshop. La version 1.1.x en développement (non stable) inclut le support XInput en standard. On attend la prochaine version stable, la 1.2.x. Vous pouvez télécharger Gimp à l'adresse

Gsumi, un logiciel de dessin noir et blanc tout simple qui permet de dessiner ou d'effacer grâce à la sensiblité de la pression et de l'inclinaison. Téléchargez le sur la page Gsumi à l'adresse :

Xink (par Ralph Levien), un autre programme de dessin rudimentaire pour le mode X.

Il est disponible à l'adresse :

RasMol, un logiciel de visualisation de molécule qui supporte un périphérique pour numéroter utilisant XInput. Regardez à .

xinput (par Frederic Lepied), un utilitaire très utile pour configurer et tester les périphériques XInput.

Le driver Wacom de gpm 1.18.0 et inférieur semble aller pour les très vieux modèles artpad, mais la documentation n'en parle pas. Je l'ai testé avec les modèles ultrapad, penpartner, graphire et intuos mais ça ne marchait pas. J'ai réécrit le driver Wacom pour gpm et pour l'utiliser il faut au moins la version 1.18.2 de Gpm. Depuis cette version, l'ancien driver Wacom a été remplacé par mon driver Wacom pour les produits graphire, penpartner et ultrapad.

Cependant, si vous avez une vieille artpad, utilisez gpm < 1.18.1 et essayez : killall gpm ; gpm -t wacom -m /dev/ttyS0 et ça devrait marcher.

Si vous possédez une graphire, utilisez plutôt gpm > 1.18.1 et pour le mode relatif (comme une souris) : killall gpm ; gpm -t wacom -o relative -m /dev/ttyS0 pour le mode absolu (comme une tablette) : killall gpm ; gpm -t wacom -o absolute -m /dev/ttyS0

Bien sûr, vous n'aurez que les boutons et le mouvement, la pression et la sensibilité ne sont pas implémentées parce qu'elles ne sont pas utiles dans les éditeurs de texte. Il n'y a pas de support pour les boutons de fonction d'ultrapad et la roulette de graphire.

Si vous utilisez gpm et XFree86, il se peut que vous ayez des problèmes car normalement un périphérique peut être utilisé par un seul programme à la fois. Pour cela, il y a deux solutions :

Le mode repeater de gpm. Si vous lancez gpm avec l'option "-R protocol", cela balancera toutes les données qu'il contient dans le périphérique /dev/gpmdata. Ainsi, si vous avez une souris type ps/2 vous lancez gpm comme ça : gpm -t ps2 -Rmman et gpm capture les données de la souris ps/2 et essaie de les traduire en un paquet mman, qui sera dirigé vers /dev/gpmdata. Depuis gpm 1.18.1, les protocoles dans lesquels gpm traduit sont marqués d'une astérisque dans la première colonne. Une fois de plus, faite un gpm -t help pour obtenir la liste.

Si vous ne voulez pas de traductions et que vous ne voulez que les données octet par octet, tapez : gpm -t ps2 -R raw . Vous pouvez ensuite demander à XFree d'utiliser ce second périphérique en ajoutant la ligne Device "/dev/gpmdata" dans XF86Config dans la section pointeur ou dans la section XInput.

Si vous utilisez startx, vous pouvez le modifier avec gpm -k avant que le serveur X ne soit lancé. Cette option tue un gpm lancé. Tablettes sous XFree

Si vous devez utiliser une version antérieure, Xinput est supporté depuis la 3.1.2.d.

Le support de XInput dans XFree est configuré dans un fichier appelé XF86Config. Dans la plupart des cas, ce fichier est placé dans /etc ou dans /etc/X11. Je vais présenter une très courte section de configuration et expliquer ce qui peut être changé et pourquoi. Une partie de XF86Config

Les produits pentpartner et graphire ne reconnaissent que le type de dispositif mais ne peuvent pas les distinguer. Par exemple, vous ne pouvez pas utilisez deux crayons différents, un configuré en rouge et l'autre configuré en bleu ; tout ce que diront ces produits c'est : "J'ai reconnu une pointe de crayon", ou "J'ai trouvé une gomme", ou "J'ai trouvé une souris".

XInput décrit les types de dispositifs aux périphériques. Ces dispositifs sont ensuite spécifiés dans XF86Config comme une sous-section de la section XInput : WacomStylus Pointe d'un stylo ou aérographe. WacomEraser Gomme d'un stylo ou aérographe. WacomCursor Souris, par exemple souris graphire, "lens cursor", souris 4d. Noms de périphériques

Exemple : SubSection "WacomStylus" # Pen DeviceName "PenRed" # Name, choose it free ... DebugLevel 10 # be very verbose ... EndSubSection Numéro de série (séries intuos seulement)

Notez que les dispositifs combinés comme les stylos ont seulement un numéro de série. Le driver utilise ce numéro de série pour reconnaître un stylo spécifique et le type de dispositif pour distinguer la pointe de ce stylo de sa gomme.

Comment trouver le numéro de série d'un dispositif

Configurer le DebugLevel à 6 Lancer le serveur X en tapant X 2>t Passer tous les dispositifs (pointe, gomme...) sur la tablette en les notant dans l'ordre où ils sont passés Tuer le serveur X (Ctrl + Alt + Backspace) Faites un grep serial_num t

Vous devriez obtenir la liste de vos différents numéros de série.

Numéro de série - exemple de résultat obtenu

BEGIN xf86WcmProc dev=0x8354d60 priv=0x833e3f0 type=stylus flags=9 what=1 xf86WcmProc pWcm=0x8354d60 what=ON END xf86WcmProc Success what=1 dev=0x8354d60 priv=0x833e3f0 device_id=0x96 serial_num=2595227137 type=cursor [cursor] abs prox=false x=0 y=0 z=0 button=false buttons=0 (le numéro de série est à la ligne 4, 2e block).

Mode absolu, mode relatif

Si vous avez configuré le dispositif en mode relatif, le comportement de votre souris sera plus intuitif, c'est-à-dire que si vous décollez la souris de la tablette, la bougez et que vous la remettez, le pointeur de souris n'aura (normalement) pas bougé.

Exemple : Mode absolu Pointeur en modes étendu, natif ou "AlwaysCore"

L'autre pointeur est utilisé par des applications qui veulent plus d'informations, comme la pression ou l'inclinaison. Ceci est le pointeur étendu (Extension device).

Avec la version 3.3.3.1, l'expression "AlwaysCore" indique au driver qu'il doit envoyer les deux types d'événements.

Si vous ne spécifiez pas "AlwaysCore" dans votre XF86Config, alors le pointeur est initialement utilisé comme pointeur étendu, c'est-à-dire qu'il n'est utilisable qu'avec des applications et que vous ne pouvez pas l'utiliser pour sélectionner des menus dans votre gestionnaire de fenêtre.

Sinon (si "AlwaysCore" est spécifié), votre pointeur réagit comme un pointeur natif (en plus de la souris) et donne des informations sur la pression et l'inclinaison aux applications qui ouvrent le pointeur en mode étendu.

Vous pouvez configurer deux pointeurs logiques, un en mode natif et un en mode étendu, pour un même pointeur physique. Pour ce faire, tapez tout simplement deux sections identiques, seule la désignation du DeviceName doit changer, puis spécifiez "AlwaysCore" dans la dernière section seulement.

Exemple : AlwaysCore La taille de l'historique (HistorySize)

Exemple : Suppress 6 Le mode inclinaison (intuos seulement) (Tilt Mode)

Les spécifications TopX, TopY, BottomX, BottomY

Exemple : TopX 0 #coordonnees du coin en haut a gauche TopY 5000 BottomX 5000 #coordonnees du coin en bas a droite BottomY 10000

Obtenir les valeurs X,Y maximales, la configuration courante et la résolution

Si vous utilisez les quatre spécifications ci-avant, vous voulez parfois faire des calculs sur la taille et la position d'un rectangle qui doit être défini, et souvent les coordonnées maximales de la tablette et la résolution sont utiles. Pour obtenir ces valeurs, lancer votre serveur : X 2>t . Tuer le serveur X (Ctrl+Alt+Backspace) et faites un grep &dquot;X=&dquot; t . Vous devriez récupérer les valeurs en question.

Obtenir la résolution - exemple de résultat

(--) Wacom IV tablet maximum X=5103 maximum Y=3711 X resolution=1000 Y resolution=1000 suppress=6 (--) Wacom tablet top X=0 top Y=0 bottom X=5103 bottom Y=3711 (--) Wacom tablet top X=0 top Y=0 bottom X=5103 bottom Y=3711 (--) Wacom tablet top X=0 top Y=0 bottom X=5103 bottom Y=3711

Conservation de la forme

Les spécifications BottomX, BottomY sont ignorées, car ces valeurs seront calculées.

Seuil de pression

Ceci est disponible depuis la version alpha 16 et est utilisé pour contrôler la pression minimum requise pour détecter qu'un outil est pressé sur la tablette. Cela fonctionne avec les gammes intuos et graphire. Notez que la valeur entière doit être codée comme une chaîne de caractère, contrairement à toutes les autres valeurs entières.

Exemple : Threshold "5" Changer la configuration avec un serveur X lancé

Gimp doit connaître les périphériques qu'il peut utiliser et dans quel mode. Vous devez ouvrir la boite de dialogue Fichier/Dialogues/Périphériques d'Acquisition pour le configurer. Vous trouverez deux listes déroulantes en haut de cette fenêtre appelée Périphérique et Mode. Choisissez le périphérique à configurer dans la liste des Périphériques et choisissez un mode dans la liste Mode .

Les modes sont : désactivé (disabled) : Gimp n'utilise pas ce périphérique ; fenêtre (window) : Gimp utilise ce périphérique. (Le curseur est dessiné par l'application) ; écran (screen) : Gimp utilise ce périphérique. (Le curseur est dessiné par le serveur X).

Si vous avez deux curseurs liés à votre périphérique, vous avez deux solutions : Utilisez le mode écran mais il se peut que vous perdiez les curseurs spéciaux de Gimp ; si tel est le cas, tous les curseurs seront remplacés par celui du stylo. Configurez deux périphériques différents dans le fichier XF86Config, un AlwaysCore et un autre différent. Dites à Gimp d'utiliser le dernier en mode fenêtre. Si vous le faites et avez une des quatres spécifications TopX, TopY, BottomX, BottomY dans votre XF86Config, faites attention d'utiliser les mêmes ajustements pour ces spécifications dans les deux périphériques logiques. Si vous ne le faites pas, tout est confus car le serveur X dessine le curseur d'un périphérique tandis que l'autre est actif. Ceci aura pour effet d'afficher un curseur, très loin du point d'action (hotspot).

Sous les deux listes déroulantes, se trouve un tableau avec deux registres Axes et Touches. Axes assigne un axe a une fonction, ce n'est généralement pas nécessaire de le changer. Mais dans le cas d'un peripherique tactile construit dans une tablette qui bouge a 90 degres, vous pourrez echanger les axes x et y.

Certaines tablettes ont des touches programmables permettant d'appeler des fonctions souvent utilisées. La

Maintenant, nous allons vois commment les peripheriques peuvent être utilisés. Ouvrez la boite de dialogue dans Fichier/Dialogues/Device Status. Ouvrez une image.

Vous configurez chaque peripherique les uns indépendemment des autres dans Gimp.

Si vous utilisez le curseur avec plusieurs peripheriques dans la fenetre où se trouve l'image, vous verrez que les périphériques de la boite de dialogue Device Status changent. Si vous choisissez un outil, pinceau, couches ou couleur avec un périphérique, une fois encore les changements sont visibles dans la boite de dialogue. Vous pouvez sauvegarder les parametres de la boite de dialogue Status, pour qu'ils soient restorés a la prochaine session.

The Switch Device

Pour échanger les boutons, tapez xmodmap -e &dquot;pointer = 2 1 3&dquot; et pour revenir a l'état d'origine xmodmap -e &dquot;pointer = default&dquot;. Ceci marche avec chaque périphérique avec au moins 2 boutons. Notez que l'expression &dquot;pointer = x x x&dquot; doit être accompagnée de guillemets pour éviter que cela soit changé par le shell. Bouton configuré avec xinput pour les périphériques en mode extension

Pour échanger les deux côtés, faites un xinput list pour avoir la liste des peripheriques et leur configuration actuelle. L'echange est fait avec xinput set-button-map Pen1 1 3 2 ou Pen1 est le périphérique à changer.

Lancez avec XFree 3.3.2, cela marche aussi avec les périphériques configurés avec AlwaysCore dans XF86Config. xsetmode - changer le mode absolu / relatif

Avec xsetmode vous pouvez changer le mode d'un périphérique entre absolu et relatif.

Exemple : xsetmode GraphireMouse ABSOLUTE . xsetpointer - configure le peripherique natif par défaut

Faites un xsetpointer Devicename. L'ancien périphérique natif (souvent une souris) n'est plus utilisable et celui specifié sera active. Par exemple, on peut configurer une souris graphire en périphérique natif standard avec un XFree lancé.

xsetpointer -l liste tous les peripheriques et le mode dans lequel ils sont. Touches

xinput -l donne des informations à propos du numéros des touches et autre comme le premier scancode.

Utilitaires pour utiliser plus d'une tablette

J'ai écrit deux utilitaires qui devrait faciliter ceci : Le script shell sx pour ceux qui utilisent startx. sx utilise un joli menu permettant à l'utilisateur de choisir : un des 10 peripheriques (tablette, joystick...) ; pour les portables, l'écran a utiliser (interne ou externe) ; le gestionnaire de fenêtre à utiliser.

La petite application écrite en gtk xinput-chooser pour ceux qui utilisent xdm. xinput-chooser utilise un menu quand l'écran de connexion xdm s'affiche, où une parmi les 10 configurations peut être choisie.

Ceci est basé sur le fait qu'un fichier XF86Config est séparé en au moins un fichier XF86Config.bare, qui contient les informations communes à toutes les configurations et de nombreux exemples, chacun d'eux présentant une information spéciale d'une configuration particulière.

Les deux utilitaires sont mis ensemble pour une configuration qui marche.

Vous pouvez télécharger ce paquet à l'adresse , il se nomme xinput_chooser_sr. FAQ XFree - problèmes et questions

Il semble que vous n'avez pas compilé votre gtk avec le support XInput. Recompilez gtk et utilisez ./configure --with-xinput=xfree pour compiler le Makefile, puis faites un make && make install. Enfin, recompilez votre Gimp pour qu'il utilise ce gtk étendu. Est-ce que la roulette de la souris (curseur) est supportée ?

Oui, cela génère les événements bouton 4 et bouton 5. Comment puis-je trouver le numéro de série intuos de mon outil ?

Lisez la section à propos des . Comment puis-je changer l'utilisation des boutons de mon outil ?

Reportez vous à la section à propos des . Comment puis-je utiliser des macros sur intuos/artpad/ultrapad ?

Désolé, vous ne pouvez pas utiliser les macros de l'intuos. Seules les macros artpad/ultrapad fonctionnent. Lisez la section à propos des . Est-ce possible de définir plusieurs surfaces actives sur la même tablette ?

Oui, lisez la section à propos des Puis-je utiliser plus d'une tablette en même temps ?

Oui, lisez la section à propos des . FAQ Gpm - problèmes et questions

Vous avez probablement mélangé un nouveau gpm avec une ancienne bibliothèque gpm, ou vous utilisez un ancien client qui cherche la socket gpmctl dans /var/run au lieu de /dev. Dans le dernier cas, vous avez deux options : récupérer de nouveaux clients et les recompiler ou changer gpm.h pour qu'il utilise /var/run au lieu de /dev et recompiler gpm et libgpm.

Plus d'informations / documents utilisés

gpm : page de manuel gpm, FAQ gpm, code souce du fichier mice.c

XInput : HOWTO XInput de Owen Taylor

XFree et Wacom : page de manuel XF86Config

site de Frederic Lepied

beaucoup, beaucoup d'e-mails ...