You are not logged in.
To whom it may concern:
A few days ago I switched from using osx to arch on my beloved macbook pro 8,1.
I absolutely love arch, but I really missed all those fancy multi touch gestures I was used to from osx.
What were my options? The wiki suggested using the xf86-input-mtrack driver which translates the common
gestures to mouse buttons. On the other hand there was xf86-input-synaptics which offers a soooo much
better feel for my mouse cursor - and coasting!!! But no gestures (except for, well two finger scrolling, if you
call that "gesture"). Touchégg to the rescue!
A simple program which can handle gestures on a per application level - but... it doesn't really work
with synaptics. Why doesn't it work with synaptics? I found the answer in the ubuntu wiki:
https://wiki.ubuntu.com/Multitouch/TouchpadSupport
Which boils down to:
Unfortunately, X can't send touch events if it is also sending other events caused by the same touches. For example, if you have two finger scrolling enabled for a touchpad, X can't send touch events until you put three touches down.
Call me ignorant and naive, but I see no reason, why those touches cannot be processed by the driver itself and additionally send to the touch event stack? Open source software to the rescue, if no one helps me, I have to do it myself:
(AUR) en - xf86-input-synaptics-mtpatch
The patch just comments out a few lines, which make sure that 2 or 3 finger events, which would be handled
by the driver get pass through to the xserver. Long story short: 3 finger tap and smooth 2 finger scrolling plus
all the 2+ finger gestures offered by touchegg
Oh wait, there's more!
Touchegg now working like a charm had only one little hickup. The ROTATE gesture I use for twisting through my
firefox tabs was way too sensitive (it got randomly triggered by vertical scrolling). So, we could also patch
touchegg and add a little threshold before the rotate gesture gets triggered.
Here you go:
(AUR) en - touchegg-rotate_threshold
I hope someone will find this useful and give me plenty of bug reports if I broke everything because of my naivité
(have mercy on me, this is my first contribution).
Enjoy!
Offline
Interesting read, thank you.
I'm currently using the mtrack driver, too on a Macbook 8,1, and I'm not overly satisfied so I'm willing to try this.
Since I'm not running Arch on that machine, I'd be happy if you could share the needed files via some repo and maybe also share your respective X.org config files.
Am I right that the GUIs shown on Touchégg's site aren't really needed, as in no forced dep? What WM/DE are you using it with.
//Danke für den Hinweis
Offline
Hi!
The patch for synaptics is just commenting out the check if 2 or 3 finger actions are used. You can find it here and apply on your own: https://raw.github.com/jfeick/xf86-inpu … ents.patch
While I fiddled with all those options offered by synclient, I decided to write a tiny script to output my settings in xorg.conf-format:
#!/bin/sh
echo -e "Section \"InputClass\""
echo -e "\tIdentifier \"touchpad_catchall\""
echo -e "\tDriver \"synaptics\""
echo -e "\tMatchIsTouchpad \"on\""
echo -e "\tMatchDevicePath \"/dev/input/event*\""
synclient -l | awk '/=/{printf "\tOption \"%s\" \"%s\"\n",$1,$3}'
echo -e "\tOption \"SHMConfig\" \"on\""
echo -e "EndSection"
My personal 10-synaptics.conf:
Section "InputClass"
Identifier "touchpad_catchall"
Driver "synaptics"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "LeftEdge" "-3611"
Option "RightEdge" "4246"
Option "TopEdge" "517"
Option "BottomEdge" "6108"
Option "FingerLow" "25"
Option "FingerHigh" "75"
Option "FingerPress" "257"
Option "MaxTapTime" "180"
Option "MaxTapMove" "511"
Option "MaxDoubleTapTime" "180"
Option "SingleTapTimeout" "180"
Option "ClickTime" "100"
Option "FastTaps" "0"
Option "EmulateMidButtonTime" "0"
Option "EmulateTwoFingerMinZ" "283"
Option "EmulateTwoFingerMinW" "7"
Option "VertScrollDelta" "-220"
Option "HorizScrollDelta" "-220"
Option "VertEdgeScroll" "0"
Option "HorizEdgeScroll" "0"
Option "CornerCoasting" "0"
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1"
Option "MinSpeed" "1.03333"
Option "MaxSpeed" "1.4"
Option "AccelFactor" "0.017"
Option "TrackstickSpeed" "40"
Option "EdgeMotionMinZ" "30"
Option "EdgeMotionMaxZ" "160"
Option "EdgeMotionMinSpeed" "1"
Option "EdgeMotionMaxSpeed" "929"
Option "EdgeMotionUseAlways" "0"
Option "TouchpadOff" "0"
Option "LockedDrags" "0"
Option "LockedDragTimeout" "5000"
Option "RTCornerButton" "0"
Option "RBCornerButton" "0"
Option "LTCornerButton" "0"
Option "LBCornerButton" "0"
Option "TapButton1" "1"
Option "TapButton2" "3"
Option "TapButton3" "0"
Option "ClickFinger1" "1"
Option "ClickFinger2" "3"
Option "ClickFinger3" "0"
Option "CircularScrolling" "0"
Option "CircScrollDelta" "0.1"
Option "CircScrollTrigger" "0"
Option "CircularPad" "0"
Option "PalmDetect" "1"
Option "PalmMinWidth" "10"
Option "PalmMinZ" "200"
Option "CoastingSpeed" "20"
Option "CoastingFriction" "50"
Option "PressureMotionMinZ" "30"
Option "PressureMotionMaxZ" "160"
Option "PressureMotionMinFactor" "1"
Option "PressureMotionMaxFactor" "1"
Option "GrabEventDevice" "1"
Option "TapAndDragGesture" "1"
Option "AreaLeftEdge" "0"
Option "AreaRightEdge" "0"
Option "AreaTopEdge" "0"
Option "AreaBottomEdge" "0"
Option "HorizHysteresis" "5"
Option "VertHysteresis" "3"
Option "ClickPad" "1"
Option "RightButtonAreaLeft" "0"
Option "RightButtonAreaRight" "0"
Option "RightButtonAreaTop" "0"
Option "RightButtonAreaBottom" "0"
Option "MiddleButtonAreaLeft" "0"
Option "MiddleButtonAreaRight" "0"
Option "MiddleButtonAreaTop" "0"
Option "MiddleButtonAreaBottom" "0"
Option "SHMConfig" "on"
EndSection
And yeah, the new version of touchegg is not using the GUI anymore. I found a call to qmake somewhere in the build process, so not sure if you still need qt-dev.
I use awesome WM right now. There could be some problems with the gestures provided by gnome, but I didn't dive into that.
Cheers
//Nichts zu danken
Offline
Thank you, looks easy enough to do, though as it seems I'd need to whip up some ebuilds for it first, using Gentoo on this machine. I plan to test this with fvwm and maybe sawfish.
Will report back once I found the time to try it.
Edit, will you try getting the patches accepted upstream?
Last edited by avx (2012-10-09 17:48:21)
Offline
thanks for sharing... I'm looking for testing it myself since I have a magic trackpad ready for my Arch Box since 6 months but at the time the developer of Touchégg didn't fix the problem with the new uTouch-geis framework...
I will let you know how it'll go on my machine (is always useful to have some feedback )
Last edited by vheon (2012-10-19 14:17:23)
Offline
The more I test my setup, the more I realize using gestures on linux is a pain.
Perhaps I will find the time to take a look at the mtrack driver and find a way to get rid of geis and touchegg altogether.
Offline
The thing that I hated the most when I used it was the absence of thumb recognition... I also want to look into mtrack driver since it has no commits since 10 month on the master branch, but I don't think I have the required knowledge to do that...
Offline
I will give it a try. Thank you for your work ^^
Offline
I've tried your patch but it didn't work for me.
However, I was wondering if your patch was not equivalent to changing the value of the "GrabEventDevice" option:
Option "GrabEventDevice" "boolean"
If GrabEventDevice is true, the driver will grab the event
device for exclusive use when using the linux 2.6 event proto-
col. When using other protocols, this option has no effect.
Grabbing the event device means that no other user space or ker-
nel space program sees the touchpad events. This is desirable
if the X config file includes /dev/input/mice as an input
device, but is undesirable if you want to monitor the device
from user space. When changing this parameter with the syn-
client program, the change will not take effect until the synap-
tics driver is disabled and reenabled. This can be achieved by
switching to a text console and then switching back to X.
Offline
Hello marcD,
Just in case you were struggling with this, i had it to work without the patch. In case you don't need it, nevermind, I hope i'll help someone anyway. The first link (https://wiki.ubuntu.com/Multitouch/TouchpadSupport) and your post about "grabEventDevice" helped me a lot, so thanks for sharing .
So, to get this to work, i changed the config according to the ubuntu wikipage :
(added the following to) /etc/X11/xorg.conf.d/50-synaptics.conf
Option "ClickFinger1" "1"
Option "ClickFinger2" "0"
Option "ClickFinger3" "0"
Option "TapButton1" "1"
Option "TapButton2" "0"
Option "TapButton3" "0"
Option "VertTwoFingerScroll" "0"
Option "HorizTwoFingerScroll" "0"
Option "GrabEventDevice" "0"
I also installed xf86-input-multitouch from the AUR at some point during my attempts, but i think the result should be due to the changes made to 50-synaptics.conf.
EDIT : hmm no that's weird, i can only get 2 finger gestures to work, can't figure out why...
Last edited by SergentPepper (2014-09-16 21:58:39)
Offline
I want to give this a shot. Would really like to make MT gestures work..
But when I try to install your patch, it says:
error: target not found: X-ABI-XINPUT_VERSION=19
and then I can't get any further.. Any suggestions on this? Would love to have MT gestures work, and can't seem to find any ways to do this!! Please help
Offline
I read about this on the wiki, and it sounds great.
But reading more about it above, I can't help but wonder: is this working for anyone? The package is marked as "Unsupported package: Potentially dangerous!" when I attempt to install it using yaourt. And AlexanderHolmgaard wrote last month that he couldn't make it work.
Should the wiki get revised to eliminate the reference to the package?
Offline
So is "Unsupported package: Potentially dangerous!" just a warning message on every package from AUR? Because I've tried using it to install three different packages now and get the same warning on all of them. I had previously used makepkg -s for installing packages from AUR (never got such a warning then), but had the impression that yaourt would be quicker.
Offline