[HN Gopher] Q3 Linux touchpad update: Multitouch gesture test pa... ___________________________________________________________________ Q3 Linux touchpad update: Multitouch gesture test packages now ready Author : wbharding Score : 251 points Date : 2020-10-06 17:54 UTC (5 hours ago) (HTM) web link (bill.harding.blog) (TXT) w3m dump (bill.harding.blog) | jeffbee wrote: | Why does ChromeOS have all of the stuff that this project claims | to be developing? Are they using proprietary touchpad drivers? | cmrdporcupine wrote: | The whole ChromeOS UI and input stack is entirely different | from a typical Linux desktop. I'm not sure there's a lot there | that could be shared out to the Linux X11 desktop world. | criddell wrote: | Is there something about the standard Linux input stack that | makes it especially difficult to create a great touchpad | experience? | | Apple got it right a long time ago, ChromeOS is good, and | Windows is too. What's different about Linux? | dastx wrote: | Apple got it right because they built a stable api around | it, and integrated all their applications with it. | | Linux hasn't got it right because there is still no unified | api, even if there was, all apps must implement it to be | useful. | | This is where OP push comes in. To make all of this | possible through donations. You should read his older blog | posts. They're worth a read. | vetinari wrote: | Apple supports only their own touchpads, ChromeOS also | selected ones. Windows provides the great experience only | for the Precision touchpads (i.e. not even to Apples under | Bootcamp). Linux is expected to work with random crap, that | even its vendors have given up upon. | | That's the difference. | mdoms wrote: | Linux input still sucks with hardware that works great on | other OS's. | vetinari wrote: | That's exactly not the point. | | The point was, that the other OSes picked specific | hardware and they provide great experience only on that | hand-picked hardware and nothing else. I specifically | noted, that Apple touchpads do not work under Bootcamp as | nicely as the Precision ones do, as an example. | laksdjfkasljdf wrote: | I still have no idea what this project is trying to do | _exactly_. | | I always got decent multitouch on linux (when the touchpad is | even recognized, but that's another problem). | cxcorp wrote: | The first post's discussion is here: | https://news.ycombinator.com/item?id=17547817 | listennexttime wrote: | It's okay, neither does the blog author. Despite their only | value-add being a PM-role, they aren't doing a good job of | that either. | | As evidenced by the fact that they've basically just resorted | to doing tons of retrofit to bring _benefits that already | exist in Wayland_ to a legacy, deprecated, aging stack. | (literally every single change listed). Also, it 's no longer | just about improving the touchpad (since libinput is already | pushing the envelope there), and instead ... X11 Gestures? | Okay? (Good luck to those brave enough to install a patched | X11 from a PPA!) | | I feel sorry for the people who thought there was enough | substance to donate. How this project progresses with | increasingly less clarity and continues to be celebrated here | deeply confuses me. | p12tic wrote: | Povilas from the linked blog post here. | | The reasons why we chose the current path were explained in | detail in the blog posts. | | Touchpad gestures was the most popular feature to | implement. In order to do that we needed a good reason why | all the other project maintainers would want to spend time | discussing a feature with us. Wayland is the future, yes, | but currently a lot of users are still on X which makes our | argument much less convincing. Now we can say that touchpad | gestures will soon be available everywhere and get their | attention this way. | | I agree that X is legacy platform. Unfortunately it may | still be used for quite some time. Core functionality such | as screenshots and input record/replay is not universally | available on Wayland. So X will still be used for | significant amount of time. | | Please tell me what else I could explain to increase the | transparency of the project and I'll try my best to do so. | Thanks! | tssva wrote: | Did you actually talk to other project maintainers and | get feedback that they would only be interested if it | were also available for X before starting down this path? | p12tic wrote: | I haven't asked this question unfortunately. Adding | touchpad gestures needs changes in every GUI toolkit | library except GTK and every application we would like to | support. So I trusted my own experience of seeing the | amount of effort needed to contribute an improvement for | niche use cases. To make matters worse, an initial OK | from a maintainer often does not really mean a lot. What | matters is the actual time commitment to discuss design | and review patches. Issues that increase the amount of | effort needed for long-term maintenance and end-user | support tend to decrease maintainer engagement a lot. | Wayland-only touchpad gestures splits the user-base long | term and thus fits this criteria very well. | | At this moment I'm not really sure if I would go the same | path had I knew all the information I know now. Having | said that, we've only spent around a single man-month of | effort working on this. In the grand scheme of things | this detour is tiny. | [deleted] | zelly wrote: | Yes, Synaptics produces closed-source drivers for Windows and | ChromeOS. ChromeOS also uses its own low-level input/graphics | stack, not X11, so even if you had the code to it you wouldn't | be able to just compile it on GNU/Linux. | SahAssar wrote: | ChromeOS has taken the path of Android on a lot of things, so | drivers are usually hard to mainline. | tpush wrote: | What driver stack is Google using for ChromeOS? Is it | proprietary? I assume all the Chromebooks have decent touchpad | functionality, can't that be mainlined or whatever? | quaa55 wrote: | i believe chromeos uses a custom kernel with their own stack. | nmstoker wrote: | I get the reasons recurring sponsorship helps projects, but is | there any chance to sponsor as a one time payment? | | As a resident of a non-USD country, my bank shafts me for foreign | currency payments, which is partly a fixed fee and partly driven | by the total amount. Therefore lots of small payments ends up | paying a much larger portion to the bank, money that I'd | otherwise prefer the project got! | dastx wrote: | > but is there any chance to sponsor as a one time payment? | | You can simply start a monthly plan, then cancel it once the | first payment is gone. It's a bit more overhead, but if you | believe in it, it's worth it. | | Also, slightly off-topic, and this entirely depends on where | you live. Regarding your bank, you may be able to look into | start up banks (also called Neo banks), they often have zero | foreign currency fees and exchange at the Master Card or Visa | base exchange rate. This has in the past saved me a huge | amount, mostly for travel to foreign countries, but also for | purchases, however, receiving money is the same. | | As examples, in the UK we have Starling, Monzo and some others | that all give you zero foreign exchange transaction fees. In | many European countries Revolut is available (also in the UK), | but I closed my account with them for ethical reasons. There is | undoubtedly more neo banks available especially in the | development world but you will need to do research for your | country. | rhodysurf wrote: | I created an extension for GNOME a while ago to add custom | multitouch gesture actions on a workspace scale which seems a | while off for this project: https://github.com/mpiannucci/gnome- | shell-extended-gestures | | I would love for them to progress enough so this extension is no | longer necessary. Making great progress! | solarkraft wrote: | Does this make the animation follow the fingers? I think I | tried this a while back and was disappointed :( | rhodysurf wrote: | Sadly, It does not. I have thought about how to do it and its | a lot of work and time I don't currently have unfortunately. | Part of the reason I hope this project continues to make | something like this easier | listennexttime wrote: | Oh look, the goals and goalposts have moved again. Now apparently | it's X11 Gestures (literally every patch, for functionality that | _already exists in Wayland_ ). What a waste of donated money. | | Gestures, in Wayland or X11: | https://github.com/Coffee2CodeNL/gebaar-libinput | dastx wrote: | I was looking for an update just a few days ago, but didn't find | anything. No code, no blog posts nothing. So thank you for this, | as I'd lost hope. | | This seems like great progress. I'll be donating a bit! | ktm5j wrote: | Cool! I've been using libinput-gestures for a while now as a | hackish way to accomplish multitouch gestures. It's easy to use | and works well if anyone wants this functionality without waiting | | https://github.com/bulletmark/libinput-gestures | Fnoord wrote: | I've tried this with an Apple Magic Trackpad 2 (the best stand- | alone trackpad/touchpad available). It doesn't work smooth. It | is very strict on the gestures (low fault tolerance?), unlike | the very same device within a MBP (2015) on macOS. | | I wonder about this though. To me it seems this is very | important to get to work for alternative Linux-based smartphone | OSes such as SFOS, pmOS, UT, PureOS, etc etc. | duhi88 wrote: | Have you tried this with Apple's Magic Trackpad or al=ny other | bluetooth trackpads? | seltzered_ wrote: | Thanks for the update! Curious, is there anything specific in | terms of which platforms you're seeking testing help on (e.g. | older macbooks, newer haptic touch macbooks, synaptics-based | sensors)? | p12tic wrote: | Currently we're focusing on touchpad gestures (i.e. multi- | finger touch swipe or pinch) as the poll [1] made in June | indicated that touchpad gestures was the most wanted feature. | | There's plenty of work just implementing the basic handling of | touchpad gestures, not even talking about any kind of polish. | So at this moment we just assume that libinput handles touchpad | gestures well and don't test at all. Once the basic parts are | done we'll start polishing and this is when we'll test on as | much hardware as possible. | p12tic wrote: | Whoops, I forgot the link to the results of the poll: | | [1]: https://bill.harding.blog/2020/06/22/linux-touchpad- | project-... | juancampa wrote: | For my last couple of laptops I've used libinput first because | everyone says it's the best option, but it always feels | incredibly hard to perform small, precise movements. For example: | try moving the mouse in a small circle (perhaps the size of the | "Y" logo above). So both times I ended up switching to the old | synaptics driver which seems to work better. I hope this project | helps fix that so I'm sponsoring it | codethief wrote: | > For example: try moving the mouse in a small circle (perhaps | the size of the "Y" logo above) | | Holy shit, you're right! I never noticed! There goes my plan to | play old FPS games (like Wolfenstein: Enemy Territory) on Linux | without any major hassle... | tsm wrote: | For me it's just a touchpad issue; my USB optical mouse is | completely fine | codethief wrote: | Mine apparently isn't :\ | acabal wrote: | Agreed. I'd love to use Wayland for everyday use but the | libinput touchpad drivers are impossible. | | Like you stated, the big problem is very fine movements just | don't work in libinput. On X11/synaptics I can make movements | as fine as rolling my fingertip in place on the touchpad, or | drawing a minuscule circle, and it will pick it up. Libinput on | the same touchpad does nothing, it's like it's stuck in | molasses. And libinput has almost no configuration options so | there's nothing I can even tweak. | | I really hope they address this soon, or I'll be stuck on X11 | forever! | | Edit: I'm using a Thinkpad P1 Gen2, a top-tier recent-gen | workstation laptop, and this is a big enough problem where it's | forcing me to use X11 on Ubuntu 20.04. | JoshTriplett wrote: | I'm using Wayland and libinput on an X1 Carbon, which I'd | expect to use a very comparable touchpad, and it works | flawlessly. I easily can move the mouse by individual pixels | by just rolling my finger, or throw it across the screen. | | You may want to experiment with your desktop environment's | mouse settings, and if that doesn't help, you should consider | providing a detailed report to the libinput folks and see if | they can address it. | ghostpepper wrote: | Which wayland environment are you using? | JoshTriplett wrote: | gnome-shell 3.38 | p12tic wrote: | Fixing issues like this is the primary goal of this project. | Unfortunately there's a long way to go. | kelnos wrote: | Odd, I'm using libinput (Dell XPS 9380), and don't see the | problems you describe. With my index finger on the touchpad, | I can "roll" my finger a little in any direction (without | actually sliding the finger), and the mouse moves a few | pixels immediately. It's hard to get single-pixel accuracy, | but 2-pixel accuracy is doable. I also have no trouble | tracing the Y Combinator logo. | Polylactic_acid wrote: | I also have a dell xps but I'm on X11 right now due to | teams screen sharing. I also have no problems doing exactly | the same thing while my sisters MSI laptop on windows makes | it almost impossible to move the pointer less than an cm on | screen. | | I suspect this is more a hardware issue than software. | arghwhat wrote: | > In X11/synaptics I can make movements as fine as rolling my | fingertip in place on the touchpad, or drawing a minuscule | circle, and it will pick it up. Libinput on the same touchpad | does nothing | | Just tried that on my Dell XPS on sway (wayland, thus | libinput), and rolling the tip of my finger on the touchpad | allows me to move the cursor in single-pixel increments on an | unscaled 4k display. :/ | | Maybe this is a libinput issue specific to your touchpad | type? | albertzeyer wrote: | "They" (I assume you mean libinput devs) is just one single | developer, namely Peter Hutterer. | | See this discussion: libinput's bus factor is 1, | https://news.ycombinator.com/item?id=23254871 | acabal wrote: | "They" is really Red Hat, who are the ones pushing libinput | and Wayland in the first place; and I imagine they would | have no problem fixing this quickly if they hired more than | one person to work on it. | young_unixer wrote: | And setting the flat acceleration profile on a touchpad doesn't | really disable pointer acceleration +, even though it does if | you use a mouse. | | + N=1, but it worked fine before libinput (using 'xset m 1 0'). | Barrin92 wrote: | if you're using gnome, gnome tweaks has an option to turn | acceleration off (just search for 'acceleration') and it | seems to work for me. | young_unixer wrote: | That works for me if I use a mouse (in fact I'm currently | using it), but not when I use a touchpad. | lathiat wrote: | I think this is an intentional driver setting to avoid false | touches/moves on crappy hardware. You can likely tweak it but I | think that's entirely the sort of thing the post author was | trying to work on. | | I believe there is also a tweaks dB to set better values for | known hardware. | abrowne wrote: | It's called hysteresis. | yepthatsreality wrote: | It's too bad we can't condense all the rhetoric "i use Apple <x> | because it just works" into actual useful energy. Something like | this may have been solved a long time ago. | | Glad to see movement about this. Was just considering converting | my XPS 9560 into a full Linux machine next week (I will miss | fingerprint sensor support, which brings up another point about | just upgrading to a model that supports it). Going to use it as a | testing ground for switching over my main rig to Linux and seeing | progress like this is really encouraging that I'm making the | right decision. | | I will gladly install these test packages and help out. | Angeo34 wrote: | I only read about GNOME what's with Plasma? | solarkraft wrote: | I'm not entirely sure if it's built into Plasma, but I remember | having a (hacky, not with direct response) workspace switching | gesture on Manjaro (Wayland, of course). | p12tic wrote: | Povilas from the linked blog post. | | Indeed this is a valid point, thanks. On the X server | applications will get touchpad gestures regardless of whether | one is running Plasma or GNOME. However, workspace-wide | gestures are not implemented in either on X yet. | | On Wayland the display server is the one which handles | workspace-wide gestures. Additionally, all events go through it | to the applications. Perfect touchpad gesture support needs | support in both. As far as I know Mutter (GNOME) handles both | parts already and KWin (Plasma) currently handles neither. | | Implementing touchpad gestures on Plasma would fall within this | initiative, I will most likely work on that at some point in | the future. Please vote in the poll so that we know this is | important to you. | justinclift wrote: | > Please vote in the poll so that we know this is important | to you. | | The poll: :) | | https://www.gitclear.com/polls/linux_multitouch_apps | shmerl wrote: | What is the situation with Wacom drawing tablets under Wayland | compositors? Do they work now? | Polylactic_acid wrote: | Seems to work fine for me. On gnome it actually creates a | second pointer separate pointer from the mouse one. | curt15 wrote: | They have worked under Gnome wayland for while. I don't know | about KDE though. | pkulak wrote: | I read through the post, but still am not totally sure: will | Wayland eventually be supported? What about wlroots vs mutter? Is | that a distinction that needs to be made? | ComputerGuru wrote: | I've never been a fan of Linux on laptops as I feel its DE is | just not there yet and prefer to stick to the terminal or the | desktop, but I switched my laptop to Linux about six months ago | to re-assess and ran into a number of big issues, the most | unexpected of which was the poor state of basic touchpad support, | not to mention multitouch input support - I genuinely thought it | would be a solved problem by now, but I can't blame anyone but | myself given that it's open source and anyone is free to | contribute a fix (read on). | | IMHO the most egregious offender is libinput because everyone and | their pet fish seem to be in a massive hurry to drop the | proprietary synaptics driver and replace it with libinput; you're | not allowed to ask for synaptics support because all distro and | project maintainers will lecture you about "upgrading" to | libinput which has "superior" touch and multitouch support... | except libinput absolutely does not, even if it is theoretically | architectured in a way that _would_ enable superior touch | /multitouch support _someday_. | | The biggest problem is that the acceleration curves libinput uses | are vastly inferior to those that ship out-of-the-box with other | operating systems or the proprietary solutions from the | manufacturers. When you read about the TrackPoint and the | research that went into developing acceleration curves/profiles | for input devices [0], it is hubris to think you can throw it all | away and expect to still have a superior product. | | Anyway, long story short, if you're using a synaptics or | synaptics-compatible trackpad, the old synaptics drivers have the | best (by far) acceleration profiles and feel the most natural to | use, but they are not supported by multitouch plugins for the | desktop environments. That's not to say the drivers don't have | multitouch support: they do, and they accurately report all | motions, but only as raw events. | | I wrote this simple program to read the raw input from the | synaptics driver and recognize two-, three-, four-, and five- | finger tap and swipe gestures from the raw event stream generated | by the synaptics driver per the kernel multi-touch protocol [1]. | I initially wrote it in an evening after studying the protocol to | get just simple back/forward swipe navigations working with the | only actually good touchpad drivers for Linux I could find (the | synaptics one), and intended to clean it up before throwing it on | GitHub for anyone else that might find it interesting but | realized I wasn't sufficiently motivated to clean it up anytime | soon so decided to just upload it as-is. | | sygesture [2] is written in rust and processes the raw MT | protocol events generated by the trackpad in real-time to | recognize multitouch gestures. Currently it spawns an `evtest` | instance rather than opening the input device directly, that was | a hack to not have to deal with translating the binary protocol | but adds a dependency on the `evtest` utility (should be in your | package manager). The path to device is also hard-coded in | `main.rs` (and currently it only supports a single input device), | but all that is separated from the actual parsing logic because I | planned on making that modular from the start, but never got | around to it. The mapping of gesture to action is also hard-coded | in `main.rs` and isn't currently configurable. (It's all very | easy to change even if you don't know rust, as all it does is | spawn a program with certain arguments in response to each | motion.) I'll throw an MIT license in the repo as soon as I get a | chance. | | The utility is pretty bulletproof, even though the heuristic is | fairly simple (the rationale behind the consensus algorithm is | documented in the comments). It's extremely fast (don't have a | reliable way to measure lag, but I'm extremely sensitive to it | and don't detect any) and has low memory usage (CPU usage is | basically zero except for the duration of a gesture, if you're | polling at a high-enough frequency to pick up on that). | | Something not accounted for at all in the code is support for | non-swipe gestures such as pinch-to-zoom and (has anyone ever | used it?) "circle gesture" that can be apparently be used for | weird things. | | [0]: https://www.microsoft.com/buxtoncollection/detail.aspx?id=60 | | [1]: https://www.kernel.org/doc/html/v4.18/input/multi-touch- | prot... | | [2]: https://github.com/mqudsi/syngesture | kilo_bravo_3 wrote: | Is it still almost impossible to adjust the mouse and trackpad | scroll speed/sensitivity, something that has been set by an easy- | to-find slider in every operating system ever written since the | invention of the scroll wheel, in Linux? | auraham wrote: | Has anyone tried the software in Ubuntu 20.04? I am sutck with an | old version of Ubuntu. ___________________________________________________________________ (page generated 2020-10-06 23:00 UTC)