PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : automatisch zwischen Touchpad und USB Maus umschalten



Brain Fury
08.01.06, 16:10
Ich würde meinem X gerne beibringen automatisch das Touchpad zu deaktivieren wenn ich eine usb maus einstecke und sobal dich die maus wieder rausziehe das touchpad wieder einzuschalten. ist das irgendwie möglich?

tschloss
08.01.06, 16:45
Ich würde meinem X gerne beibringen automatisch das Touchpad zu deaktivieren wenn ich eine usb maus einstecke und sobal dich die maus wieder rausziehe das touchpad wieder einzuschalten. ist das irgendwie möglich?
Das würde mich auch interessieren. Mein Touchpad regt mich nämlich beim Tippen tierisch auf. Kommen die Handballen nur in die Nähe (und das läßt sich kaum vermeiden), vollführen sich die tollsten Fensterwechsel und sonstiger Kram, der das Schreibergebnis doch häufig stark beeinträchtigt :(

Greetz
Thomas

Brain Fury
08.01.06, 17:03
naja, sofern es n synaptics touchpad ist lässt sich das ja ggf mit dem syndaemon reduzieren, sprich das touchpad beim tippen deaktivieren. Mach ich auch so.

tschloss
08.01.06, 17:19
naja, sofern es n synaptics touchpad ist lässt sich das ja ggf mit dem syndaemon reduzieren, sprich das touchpad beim tippen deaktivieren. Mach ich auch so.
Klar ist es ein Synaptics. Klasse Tip. Hoffentlich finde ich ein Package, sonst muß ich (wiederwillig) in die Compiler-Etage.

Ich turne gleich mal los....

Thx
Thomas

Brain Fury
08.01.06, 18:45
Ich glaube ich hab eine Lösung gefunden. Geht zwar bestimmt auch eleganter und ich würde mich freuen wenn mich jemand auf eine elegantere Lösung hinweist, aber trotzdem beschreibe ich mal was ich getan habe.

1. X.Org konfigurieren:
Als erstes habe ich X.Org so eingestellt, dass ich beide Eingabegeräte gleichzeitig nutzen kann.
1a: Synaptics Touchpad
Zunächst den richtigen Treiber für das Touchpad installieren. Installiert mit eurem Paketmanager das Paket "synaptics" (jedenfalls heißt das bei gentoo so, ob das bei anderen Distributionen anders heißt weiß ich nicht). Wenn das geklappt hat folgendes in die xorg.conf eintragen:
In der Section Module
Load "synaptics"
Dann das Input Device an sich:
Section "InputDevice"
Driver "synaptics"
Identifier "TouchPad"
Option "Device" "/dev/input/mouse0"
Option "Protocol" "auto-dev"
Option "LeftEdge" "1700"
Option "RightEdge" "5300"
Option "TopEdge" "1700"
Option "BottomEdge" "4200"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.09"
Option "MaxSpeed" "0.18"
Option "AccelFactor" "0.0015"
Option "SHMConfig" "on"
EndSection

1b USB Maus:
Ganz normal in der xorg.conf eintragen:
Section "InputDevice"
Identifier "USBMaus"
Driver "mouse"
Option "Protocol" "ExplorerPS/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
EndSection

1c Abschluss:
Folgendes im ServerLayout festlegen:
InputDevice "TouchPad" "CorePointer"
InputDevice "USBMaus" "SendCoreEvents"

Jetzt könnt ihr bei eurem favorisiertem Fenstermanager einstellen, dass folgendes progrämmchen beim starten mitgeladen wird (sollte im paket synaptics enthalten gewesen sein): "syndaemon -i 2 -d"
Das bewirkt, dass das Touchpad 2 Sekunden lang nach einem druck auf eine Taste der Tastatur abgeschaltet ist.

---------------
So bis hier war ich als ich den Thread eröffnet habe, was jetzt folgt hab ich erst vor kurzem rausgefunden.
---------------

2. Wie kann ich im laufenden X die Mäuse wechseln:
Hier hat mir der Zufall geholfen. Ich bin ausversehen über das Programm xsetpointer gestolpert. Ich kann jetzt mit "xsetpointer USBMaus" X nur die USB Maus aktivieren, das Touchpad bleibt ohne Funktion. Mit "xsetpointer Touchpad" sind wieder beide Geräte benutzbar (also auch nur das Touchpad wenn ich die USB Maus rausgezogen hab).

3. ivman:
An der Stelle hab ich mich an ein Programm namens ivman erinnert (http://ivman.sf.net). Nach einiger Zeit des rumprobierens bin ich jetzt fast soweit, dass ich zufrieden bin: Der Laptop wechselt jetzt beim reinstecken und rausziehen automatisch den Pointer, allerdings bekommt ivman nicht mit, wenn beim starten des Programms schon die Maus drinsteckt. Also müsste ich entweder nach dem starten einmal die Maus rausziehen und wieder neu reinstecken bevor alles klappt wie ich will, oder das Programm starten wenn die Maus noch draußen ist.
Soviel zur Theorie, jetzt zur Konfiguration von ivman. Ich gehe davon aus, dass der geneigte Leser sicih die kurzbeschreibung auf der Homepage angesehen hat und auch einen kurzen Blick in die Konfigurationsdateien von ivman geworfen hat. Ich habe jetzt in der ~/.ivman/IvmConfigActions.xml folgenden Eintrag gemacht (und nur den, weil ich das automatische mounten anderweitig bewerkstellige):
<ivm:Match name="hal.info.linux.driver" value="usbhid">
<ivm:Option name="exec" value="xsetpointer USBMaus"/>
<ivm:Option name="execun" value="xsetpointer Touchpad"/>
</ivm:Match>
Jetzt müsst ihr nur noch "ivman" genau wie syndaemon beim starten des Fenstermanagers mitaufrufen.

So und nun zu den Teilen die mir noch nicht ganz zusagen:
1. Ich konnte leider nicht rausfinden wie HAL zwischen verschiedenen Eingabegeräten unterscheidet, deshalb habe ich als Match in ivman "usbhid" genommen, weil ich nichts was "mouse" entsprechen würd gefunden habe. Problem: bei jedem reinstecken und rausziehen von beliebigen USB Eingabe geräten wird die Aktion ausgeführt (habs mit nem Gamepad getestet)
2. Das oben bereits angesprochene Problem, dass die Maus erst einmal draußen sein muss bevor es klappt.

So, jetzt seid ihr wieder dran. Lob, Kritik, Heiratsanträge?

iggy
10.01.06, 12:43
die triber für das synaptics touchpad erlauben ein deaktivieren des selbigen. das heißt, man kann ja ein script schreiben, was merkt, wenn eine usbmaus angesteckt wird und dann das touchpad deaktiviert. kann man doch glaube ich mit udev/hotplug oder so realisieren.

mfg

Brain Fury
10.01.06, 15:09
wie deaktiviert man denn das touchpad vom treiber aus?

iggy
11.01.06, 10:37
mit:

synclient TouchpadOff=1
kannst du das touchpad deaktivieren!
das nächste mal erst die doku oder die man-page lesen, geht viel schneller! ;)

Brain Fury
11.01.06, 15:42
hm okay, aber dann fürd ja auch nur der teil mit dem xsetpointer wegfallen, das problemchen mit ivman bliebe noch.. aber ist auf jeden fall schon besser gelöst als bisher, danke soweit ;)