====== Associer une tablette Wacom à un écran ======
* Objet : Associer une tablette Wacom à un écran
* Commentaires : //Vous avez une tablette Wacom, plusieurs écrans, et vous êtes tristes.//
===== Introduction =====
Les tablettes graphiques ont une zone rectangulaire mappée sur toute l'étendue de votre DISPLAY X.
Si vous avez plusieurs écrans, cela signifie que pour dessiner sur un seul écran, seule une petite partie de la tablette sera utilisable.
La bonne nouvelle, c'est qu'il existe une commande permettant de faire en sorte que votre tablette soit mappée sur un écran uniquement.
==== Rappels ====
=== Liste des écrans ===
La liste des écrans peut être affichée via la commande suivante :
xrandr -q
Mais cela affiche plein d'informations qui ne nous sont pas utiles ici.
Pour filtrer et n'avoir que les noms des écrans :
xrandr -q | sed -n '1d;/^[^ ]/s/ .*//p'
* ''-n'': ne pas afficher les lignes sauf si demandé
* ''1d'': supprimer la première ligne
* ''/^[^ ]/'': rechercher les lignes ne commençant pas par un espace
* ''s/ .*//'': pour ces lignes, tout effacer à partir du premier espace
* ''p'' afficher le résultat
HDMI-1
HDMI-2
=== Mapper la tablette sur un écran ===
La tablette a plusieurs composants ayant chacun son identifiant (stylet, gomme, pointeur).
Pour afficher ces composants et leur identifiant :
xsetwacom --list devices
Pour nettoyer :
xsetwacom --list devices | sed -n 's/.*id: \([0-9]\+\).*/\1/p'
15
16
17
18
Pour affecter le composant $i à l'écran $S :
xsetwacom --set "$i" MapTooutput "$S"
=== Sed: afficher la ligne après celles contenant un motif ===
echo -n "bla1\nbla2\nbla3\nbla4" | sed -n "/^bla2$/{n;p}"
bla3
===== Installation =====
Créer un fichier ''~/.local/bin/switch_tablet_screen'' contenant le code suivant :
#!/bin/sh
TMPFILE=/tmp/wacom.active
touch $TMPFILE
S=$(xrandr -q | sed -n '1d;/^[^ ]/s/ .*//p' | sed -n "/^$(cat $TMPFILE)$/{n;p};1p" | tail -1 | tee $TMPFILE)
for i in $(xsetwacom --list devices | sed -n 's/.*id: \([0-9]\+\).*/\1/p')
do
xsetwacom --set "$i" MapTooutput "$S"
done
Le rendre exécutable :
chmod +x "~/.local/bin/switch_tablet_screen"
===== Utilisation =====
Il suffit par exemple de configurer son gestionnaire de fenêtre préféré pour définir un raccourci clavier exécutant notre script.
À la première exécution du script, la tablette est sur le premier écran (listé par xrandr), puis sur le second, etc. jusqu'à retomber sur le premier.