Forum: PC Hard- und Software Wacom Grafiktablet "entmausen"?


von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich möchte für einen Anwendungsfall (massenhaftes Vermessen von 
2D-Objekten) ein Grafiktablet zusammen mit einer selbstgeschriebenen 
Anwendung (Messungen erfassen, speichern, statistisch auswerten usw.) 
benutzen.

Was ich jedoch nicht möchte, aber bisher einfach nicht verhindern kann: 
Der Treiber für das Tablet mischt sich auch in die ganz normale 
Maussteuerung ein. D.h. wenn ich Stift odr Lupe über das Tablet bewege, 
bewegt sich auch der "ganz normale" Mauspfeil und ein Tippen/Klicken 
wird wie ein Mausklick akzeptiert. Das soll aber aus verschiedenen 
Gründen (auch Kundenwunsch) nicht sein ...

Gibts irgend eine Möglichkeit, zur Not auch unter Linux, eine 
USB-Schnittstelle irgendwie so zu konfigurieren, dass die 
Mauseigenschaften des Tablets nicht bis ins System "durchschlagen", ich 
aber z.B. mittels gezielter Abfragen aus meiner App heraus trotzdem 
Position und Stiftstatus abfragen kann?

Oder ich versuche das mit einem Mikrocontroller (Raspi?), der quasi als 
Anti-Maus-Adpter dazwischengesteckt wird. Aber die zugehörige Software 
ist sicher auch nicht ganz einfach.

Danke für Tips.

von Max D. (max_d)


Lesenswert?

Also unter Linux kannst du für dein Tablet den "Maustreiber" ausklinken 
(udev als Stichwort). Dann musst du halt mit deiner Anwendung aus 
/dev/hidrawX (X ist eine Zahl) die events rausholen und entsprechend 
parsen.

Vorraussetzung ist ein Treiber für das Tablet unter Linux und eine 
bekannte Struktur der Events.

von Rolf M. (rmagnus)


Lesenswert?

Frank E. schrieb:
> Gibts irgend eine Möglichkeit, zur Not auch unter Linux, eine
> USB-Schnittstelle irgendwie so zu konfigurieren, dass die
> Mauseigenschaften des Tablets nicht bis ins System "durchschlagen", ich
> aber z.B. mittels gezielter Abfragen aus meiner App heraus trotzdem
> Position und Stiftstatus abfragen kann?

Unter Linux sollte das per xinput möglich sein. In Xorg ist eine 
virtuelle Maus und eine virtuelle Tastatur definiert, die als Master 
fungieren, und alles, was als Zeigegerät bzw. als Tastatur erkannt wird, 
wird diesen virtuellen Geräten als Slave zugeordnet, und der Master 
schickt dann die Inputs von allen Slaves weiter an die Oberfläche. Diese 
Zuordnungen kann man ändern.
Mach mal
1
xinput list

Das zeigt dir die Geräte alle an und deren Zuordnung zu den virtuellen 
Geräten. Dann kannst du mal probieren, was passiert, wenn du
1
xinput float <id_deines_Tablets>
eingibst. Das sollte es vom Virtual core pointer trennen, so dass keine 
Maus-Events mehr erzeugt werden.
Mit
1
xinput reattach <id_deines_Tablets> <id_des_Master>
kannst du die Zuordnung wieder herstellen.


PS: Kleiner Fun-fact am Rande: Man kann auch mehrere virtual core 
pointers definieren und Mäuse darauf verteilen. Dann hat man für jeden 
virtual core pointer einen eigenen Mauszeiger, den man separat auf dem 
Desktop nutzen kann. Allerdings kommt nicht jede Software damit klar.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.