17 ms·
Linux touchpad like a Macbook: progress and a call for help
- curt15 8y agoHow much of PC laptops' touchpad quality is due to hardware limitations? I seem to recall back when I owned an Apple laptop (circa 2010) that its trackpad was connected internally via USB. Meanwhile, PC touchpads almost universally used PS/2 which provided far lower bandwidth. Is this still the case?
- oneplane 8y agoYes and no. Some trackpads are connected over actual PS/2, but others via the EC and that one simulates PS/2 internally. On the MacBook side it's SPI now, not in all cases, but pretty often. Not sure if it's a Double or Quard SPI interface but apparently it still does the same nice experience they had with USB - and better.
- ehntoo 8y agoThe Microsoft Precision Touchpad[1] devices are interfaced over I2C or USB. Bandwidth for I2C depends on implementation AFAIK, but should be plenty for a responsive touchpad. [1] https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-precision-touchpad-implementation-guide https://docs.microsoft.com/en-us/windows-hardware/design/com...
- function_seven 8y agoAny mirrors for this? Just from the headline, I'd love to see what is being done to match Apple's touchpad quality.
- ptgloden 8y agohttp://archive.is/uxh3z http://archive.is/uxh3z
- caymanjim 8y agoI can't read the article because the site is hosed. I have a Lenovo ThinkPad X1 Extreme, and the touchpad is as good as any MacBook I've ever owned. It's the only non-MacBook that I've encountered where the touchpad is even usable. I don't usually run Linux on it, but I have, and I don't recall it behaving any differently than it does in Windows. Maybe the pinch gesture doesn't work in Linux; I'm not going to reboot to test.
- bauerd 8y agoHow does the X1's trackpad compare in size to a MBP? Trackpad is probably the showstopper that kept me from switching to some Linux in the past.
- karlgrz 8y agoI also have a X1 Extreme, it's a bit smaller than the MacBook touchpad, but I concur that it is very responsive and works reasonably well with ubuntu 18.04.2.
- caymanjim 8y agoIt's a fair bit smaller than the current MBP touchpad. More like older MBP models. I don't like how gigantic the current MBP one is. Apple does a good job of ignoring rogue palm touches, via software, but in a way that makes it unresponsive when you want to do keyboard+touchpad combinations (which are rare, but important in some drawing apps and some games). Overall I find that I don't need that much touchpad real estate.
- randyrand 8y agoI bought the same laptop and was very disappointed by the touchpad. particularly the physical clicking. It got progressively harder to click as you moved up from the bottom 1/4 of the touchpad.
- caymanjim 8y agoIt appears it's actually designed that way, where it's sort of hinged from the top. I hadn't noticed myself, since I prefer the soft click. Odd design decision, and if you're a hard-clicker, I can understand being disappointed.
- saverio-murgia 8y agoWebsite seems down. Here is a copy: https://web.archive.org/web/20190325183108/https://bill.harding.blog/2019/03/25/linux-touchpad-like-a-macbook-progress-and-a-call-for-help/#content https://web.archive.org/web/20190325183108/https://bill.hard...
- deleted 8y ago[deleted]
- inamberclad 8y agoMy XPS-13 9350 does great (Ubuntu 18.04, Xorg). I just got a score of 292 (156+136 bonus) on that mouse accuracy site on small/hard. Then again, when a relative ordered one of these laptops, the mousepad was dead on arrival, so ymmv.
- BFdes 8y agoIs your username a reference to the ship in Halo?
- coldtea 8y agoWhat else could it be? Some new tree-resin-based fashion line?
- supermatt 8y agoLike the Tsurani?
- inamberclad 8y agoYessir.
- wbharding 8y agoWow, that's impressive! I wonder if screen size impacts score on that test? Both my test laptops were 15", which probably means more space between the bubbles. At any rate, I'd be curious to know if libinput is your driver in use? If you don't know, `cat /var/log/Xorg.0.log | grep "input driver"` should indicate the answer
- inamberclad 8y agoYep, looks libinput is the driver in use (it says, "Using input driver 'libinput' for 'SynPS/2 Synaptics TouchPad'"). I caution you against using just my anecdote to determine anything concrete, of course.
- imtringued 8y ago
- asaddhamani 8y agoGetting a 404 page
- vondur 8y agoDoesn't Apple have some sort of patent on the hardware part of things, such as the glass in the trackpad? I can't read the site as it's being hugged to death...
- function_seven 8y agoI have a question regarding Apple's touchpad palm rejection. Or, maybe my question is regarding touchpads in general. How much raw data is sent from the device to the computer? Or, to what extent is the information preprocessed before sending? I could see palm rejection being implemented either in hardware or in software. When a user's palm is resting on the pad, there's a large area of slight capacitance change (i.e. hand is either just barely in contact with the surface, or very very close above it), which is not normal when the user is intentionally dragging their fingertip across the surface. Does the touchpad report a real-time capacitance map across the whole surface? Or does it do some interpretation onboard and send to the machine what it thinks are the separate touch points and pressure values for each?
- JoshTriplett 8y agoTypically, touchpads and touchscreens send a complete pixel map (with pressure info if available) to the touch controller, and the touch controller filters that large amount of information into very minimal messages for finger-tracking and touch points. Some devices do substitute the CPU for the touch controller, though.
- aportnoy 8y agoYou can use Wireshark to intercept USB traffic and see the raw packets. That’s how many device drivers are developed for Linux.
- seltzered_ 8y agoRegarding apple trackpads - For raw data, you get enough to do ellipsoid tracking, paired with 'state' information to help with palm rejection. This is my experience from working with the multitouch private framework on macos - it's generally been enough to good enough work with and arguably prefer it rather than attempting to do any raw pixel-level tracking (which would tax the CPU) See: https://github.com/jnordberg/FingerMgmt https://github.com/jnordberg/FingerMgmt https://web.archive.org/web/20120323025118/http://www.steike.com/code/multitouch/ https://web.archive.org/web/20120323025118/http://www.steike... I haven't had time but should try to open-source whatever bits I've had over the years when I was bootstrapping thimblemac.com previous hn discussion on this: https://news.ycombinator.com/item?id=17547817 https://news.ycombinator.com/item?id=17547817 (where I also commented here: https://news.ycombinator.com/item?id=17551984 https://news.ycombinator.com/item?id=17551984 ) I haven't kept up with the windows ecosystem to look into the 'precision touchpad' data, assume it's something similar just delivered ~8 years later.
- solarkraft 8y agoI don't see why you'd need to fork libinput. I'm fine with my cursor movements, what I want is gestures, and libinput already delivers those. It is up to the desktop environment to implement them (PROPERLY). I have taken a look at the libinput-debug sample code and my main DE (Gala, written in Vala, which is a frontend for C), with the resulting opinion that for someone decently-experienced it should be fairly easy to do. Unfortunately I am not that person (yet).
- EpicEng 8y ago>I don't see why you'd need to fork libinput. I'm fine with my cursor movements You may be (and I agree on gestures), but I'm not. Apple's touch pad is literally the only thing that keeps me using a Mac.
- seba_dos1 8y agoThere's a lot of work still to be made when it comes to application support on GNU/Linux and that's actually what usually makes people feel bad with their touchpads (and it's what macOS excells at, not the hardware and/or drivers). In fact, drivers aren't as bad as they're usually painted, although libinput still needs to catch up to the synaptics driver a bit.
- ggreer 8y ago> Linux touchpad scores on par with Macbook touchpad per mouseaccuracy.com testing. As of today, I can consistently score twice as high on macOS (average score 250 with “Hard” + “Small” options) vs Linux (average score ~100). I've never tried Linux on a MacBook, but those must be some really bad drivers. I used my trackpoint on the same size/difficulty settings and scored 160. I'd probably do better with practice.
- coldtea 8y ago>I've never tried Linux on a MacBook, but those must be some really bad drivers. Or a really bad trackpad. It's not just the drivers. >I used my trackpoint on the same size/difficulty settings and scored 160. Still nowhere close to 250.
- seba_dos1 8y agoI've scored 345 on my first try ever with xf86-input-synaptics and Lenovo Yoga 2 Pro. See https://news.ycombinator.com/item?id=19486081 https://news.ycombinator.com/item?id=19486081
- ggreer 8y ago> Still nowhere close to 250. Right, but I was using a little nub on my keyboard. I don't expect it to be as good as a trackpad.
- justinclift 8y agoWith that website, is it just a matter of clicking on the red dots as they appear? Asking because clicking on them here doesn't seem to be registering. eg I can click the buttons to start/end the recording session, but clicking on the dots does nothing. Score of 0 at the end. Then again, I'm super tired so could have missed something super obvious. ;)
- gpm 8y agoThat seems to be it.
- deckar01 8y agoMy current solution is to use a 2013 BMP streaming trackpad events to linux via Synergy. I have to use a specific old (1.8.8) version that has been patched for smooth scrolling though. Having a laptop setting in my lap while I use my desktop is not ideal though.
- 05 8y agoYou can connect a Bluetooth Magic Trackpad 2 to your MBP :)
- seba_dos1 8y ago...or to any GNU/Linux PCs since 4.20 kernel. (spoiler: it a good touchpad, but not really exceptional)
- swiftcoder 8y agoAttached to a Linux PC, it's pretty abysmal. Attached to a Mac it's much better.
- seba_dos1 8y agoI'm using it with both and aside of poor touchpad support in applications (which is of course a big thing, but it applies to every touchpad out there), there's not much difference. Driver is fine, it's apps and toolkits that need a lot of work. When the app supports it well, it works really well.
- bubblethink 8y agoI am too lazy to RTFM and debug things, but does anyone know why libinput does not have the same behaviour as the old xorg synaptic driver ? I have a *30 thinkpad, and the synaptic driver is great, but libinput is terrible. It's too imprecise and jumpy. This is a fairly popular generation of thinkpads (the actual touchpad goes back even further). So I thought that it would eventually be fixed, but it looks like so far it hasn't. How does one make libinput act like synaptic ? I don't need gestures or anything fancy. I just want the pointer to work well, which the synaptic driver does an admirable job of handling. It's even better than windows.
- cmurf 8y agoI'd say it should just work or it's a bug. And I know it's tedious to file bugs and report required information but that's really the only way it's going to get fixed. You could start by asking on the list, just to see if this is a known problem that's already fixed in a later version. https://lists.freedesktop.org/mailman/listinfo/wayland-devel https://lists.freedesktop.org/mailman/listinfo/wayland-devel For testing, you don't have to install if you don't want. I suggest installing the latest Fedora 30 beta test candidate. It's more reliable than Rawhide, and yet has the latest libinput so you won't be asked to build a newer version from git. Download the workstation live file, image to a USB stick, and do the testing from the live environment. Software installation is supported, it uses the RAM overlay. https://fedoraproject.org/wiki/Test_Results:Fedora_30_Beta_1.7_Summary?rd=Test_Results:Current_Summary https://fedoraproject.org/wiki/Test_Results:Fedora_30_Beta_1... While it's tedious to have to file such detailed bug reports, they make it pretty straightforward to figure out what is needed and how to get it. The devs have no way of guessing what the problem is. Plus, the fix eventually finds its way to all distributions, so people just get the fix rather than you having to maintain a local hack. https://wayland.freedesktop.org/libinput/doc/latest/reporting-bugs.html https://wayland.freedesktop.org/libinput/doc/latest/reportin... https://gitlab.freedesktop.org/libinput/libinput/issues https://gitlab.freedesktop.org/libinput/libinput/issues
- joncrane 8y agoFiling detailed bug reports is still easier than fixing it myself. I don't have the time or the skill to hack on most open source software, but I do file detailed bug reports, feature requests, and documentation updates whenever I run into an issue. "It ain't much but it's honest work"
- wbharding 8y agoLooks like a bit of HN was too much for my web host to handle (investigating). In the meantime, here's the note that I wrote the update in and copy/pasted to the blog: https://public.amplenote.com/4wdQRLmYVU6wAHo1V9yKgaJK https://public.amplenote.com/4wdQRLmYVU6wAHo1V9yKgaJK
- wbharding 8y agoAccording to the chat rep at Porkbun (the web host for this site), "it appears the site may have received spam complaints." Which I think is their way of saying they can't handle this much traffic. Actively working all possible angles to get the blog restored with them, but this backup version seems to be holding up so far.
- sctb 8y agoOK! We've updated the link from https://bill.harding.blog/2019/03/25/linux-touchpad-like-a-macbook-progress-and-a-call-for-help/ https://bill.harding.blog/2019/03/25/linux-touchpad-like-a-m.... You can email us at hn@ycombinator.com and we'll revert it when your host comes back online.
- solomatov 8y agoMy solution is to use macbook pro as a terminal and editor, and do most of developments on remotely accessed linux machines. I really tried to transition to Linux but UX is so inferior, and there's very little hope that it improves.
- corwin7 8y agoI find the UX on a Mac to be vastly inferior to Mate or Cinnamon on Linux. The first thing I do when an employer gives me a Macbook is to install Linux on it so I have an usable UI.
- elbrian 8y agoHot take. Care to elaborate a little more, for the sake of discussion?
- solomatov 8y agoBy UX I include the touchpad. I have a linux XPS13 and their touch pad isn't comparable to what MacBook Pro provides. Interface on Linux isn't that bad now, I agree, but I like Mac more due to better hardware support and lack of problems.
- hosh 8y agoI agree. And the touchpad is what is stopping me from say, getting a System76 laptop or an XPS13. I had done some investigation on this before. After all, if System76 is open software and hardware, I should be able to get an add on right? Not so fast. It seems part of what makes the Mac touchpad so good is a combination of software and hardware. Microsoft is taking a stab at this. What they had been doing was treating touchpads as a mouse device ... but the hardware gives hints on gestures, so they have been improving their drivers to allow for better experience with the touchpad. (Rather than emulating a mouse device using a touchpad). The hardware is a bigger block. Apple holds key patents on their touchpad, including the use of textured glass. The glass gives the experience a different feel, but I bet it also smooths out the signals being sent to the software driver. I don't know for sure -- but even say, my Samsung Chromebook, which has a decent touchpad, still doesn't feel the same as my Mac's touchpad. https://appleinsider.com/articles/13/05/14/apple-wins-utility-patent-for-macbooks-trackpad-design https://appleinsider.com/articles/13/05/14/apple-wins-utilit... "More importantly, the patent calls for, in one embodiment, a capacitive track pad with an etched glass surface. Because of its unique properties, and its non-conductive nature, glass allows for high levels of control during the manufacturing process." "For example, traditional glass has a surface with a high friction coefficient, meaning it resists slippage, making it a less than suitable candidate for trackpad use. However, glass can be made to have a low friction coefficient by etching, sand-blasting, honing, or other methods. This makes the surface smooth and easy to navigate with a finger." https://www.howtogeek.com/286905/what-is-a-precision-touchpad-on-windows-pcs/ https://www.howtogeek.com/286905/what-is-a-precision-touchpa... "Traditionally, Windows PC touchpads were implemented in a more one-off way. When you moved your finger across the touchpad, the touchpad driver has to look at the input and convert it to mouse input. The touchpad appears as a normal external mouse—either a USB or PS/2 mouse—to Windows itself. PC manufacturers have to tune the touchpad for their hardware, and the driver is responsible for handling the input. If the touchpad uses multi-finger gestures or has palm rejection support so you don’t accidentally move the cursor while you’re typing, this all has to be implemented by the touchpad driver." "Microsoft decided to move towards a more standard approach starting with Windows 8.1. It created the “precision touchpad” specification along with touchpad company Synaptics. A PC with a “precision touchpad” doesn’t do all the hard work in its own hardware drivers. Instead, it sends the raw touchpad data to Windows itself. Windows is responsible for reading the input and processing the gestures. Windows understands your PC has a touchpad and approaches it intelligently. The touchpad doesn’t just pretend to be a normal mouse."
- davidandgoliath 8y agoThe idea of forking libinput, vs. simply generating ~$95-150k p/annum for the guy behind libinput to go full-time, is a silly one. He was the same guy behind synaptics, and understands all of this far better than the OP. Let's get him some bounties! :)
- wbharding 8y agoThat's not a bad idea, though that Peter is already full time employed on behalf of working on this plus other kernel projects. Perhaps seeing the enthusiasm for his project may increase his interest in working on it more. He's been a great help to me in emails thus far.
- opencl 8y agoOr just contribute to the project directly, unless the current maintainer has demonstrated a lack of willingness to cooperate.
- doubleunplussed 8y agoMy interpretation was that the fork is to be a temporary one, with the results of this endeavour to be merged back in when the time is right. This allows them to make mistakes and drastic changes without regard for the release cycle or backward-compatibility promises of libinput, and if everything is successful then they can bundle up the results into a mergable form and get it into libinput.
- davidandgoliath 8y agoTIL he already does! Most excellent, don't hesitate furthering his project.
- sqldba 8y agoI feel that this logic is faulty. The reason being if the libinput author hasn't already done this over the past near decade Mac has been trashing competition with their touchpad, it's more likely that they don't know how (or don't care about) implementing that support. The reason for this is they've presumably implemented plenty of other stuff without being paid to. There's no information given so far to suggest otherwise. Absolutely no insult to that author though. They are entitled to choose to work on whatever they care about.
- baybal2 8y agoSynaptics touchpads have multiple "APIs." Very likely, linux drivers simply don't get the same input as Mac's that may use Synaptics non-hid data format. A task for a logic analyser as much as for software dev.
- seba_dos1 8y agoAs a exclusive touchpad user for years, "Feels like a Macbook" isn't really the best idea for me. When it comes to drivers, MacBook gives you an okay experience. Windows often gives you terrible one ("precision drivers" helped a lot there - no such drivers for my touchpad though). GNU/Linux can give you variety depending on configuration, although there are some pitfalls and compromises. For instance, I definitely wouldn't trade my xf86-input-synaptics experience with the MacBook one, however, it has a trouble of kinetic scrolling being implemented very naively and the "thumb detection" is a bit worse than with libinput (which is actually too aggressive in this regard and it negatively affects things like two-finger scrolling for me). I'm using both the integrated touchpad of my Lenovo Yoga 2 Pro (produced in 2014) and Apple Magic Trackpad 2. The former with xf86-input-synaptics driver, the latter with libinput. My partner has a MacBook Pro which I sometimes lend to test some stuff on macOS. Overall my touchpads on GNU/Linux feel somewhat better; macOS however wins when it comes to application support and integration. I've tried Windows once on my Yoga and it was completely unbearable. IMO the main thing GNU/Linux needs in this regard aren't the drivers. libinput will get there eventually (it improved a lot over past few years; initially it was pretty much just as unusable as Windows). The main thing that's dramatically needed is application support. You get an absolutely awful touchpad experience with Firefox on X11 until you set MOZ_USE_XINPUT2=1 environment variable, for instance. However, if you enable it, there's a bug somewhere that's triggered by KWin[0] that sometimes makes scrolling unbearable until you refocus the window. I don't even have to mention missing out-of-the-box touchpad gestures support and the fact that macOS implements them smoothly (say, the transition progresses exactly as you move your fingers), while all of the solutions I've seen on GNU/Linux work as simple triggers. Let's back it up with some data. I've never seen mouseaccuracy.com in my life before, fun stuff. Tried it with the same settings as the author ("hard", "small"; for 30 seconds): Yoga 2 Pro touchpad on GNU/Linux (synaptics): "TOTAL SCORE: 345; TARGET EFFICIENCY: 69%; CLICK ACCURACY: 96%" Apple Magic Trackpad 2 on GNU/Linux (libinput): "TOTAL SCORE: 299; TARGET EFFICIENCY: 63%; CLICK ACCURACY: 87%" MacBook Pro 13 Mid-2012 touchpad on macOS: "TOTAL SCORE: 286; TARGET EFFICIENCY: 58%; CLICK ACCURACY: 93%" Apple Magic Trackpad 2 on macOS: "TOTAL SCORE: 262; TARGET EFFICIENCY: 56%; CLICK ACCURACY: 82%" It was definitely harder to do those fast clicks on the Magic Trackpad, because it only emulates a clickpad, while all the other touchpads can be physically clicked (this is a feature that actually made me buy the Magic Trackpad as it makes it exceptionally quiet, but it doesn't really help with accuracy and agility). When it comes to "personal feeling" during the game, the Yoga touchpad handled by synaptics driver definitely felt the best, while all the other runs felt kinda similar (libinput won with macOS in numbers, but I didn't really "feel" it). [0] https://bugs.kde.org/show_bug.cgi?id=348270 https://bugs.kde.org/show_bug.cgi?id=348270
- floatboth 8y agolibinput works pretty much perfectly for me, both on a Thinkpad X240 (Synaptics PS/2, FreeBSD psm(4)) and a Magic Trackpad 1st gen. The only issue I have is that it's too conservative about starting to recognize gestures. On macOS, you can quickly transition from scrolling to pinching/rotating and it knows what you want. On libinput, you have to very deliberately stop scrolling, put two fingers into a pinch position, and start pinching.
- Washuu 8y agoI would love that deliberateness. There are so many times I unintentionally do a gesture using the built in ones on OS X that I had to turn it off.
- allenu 8y agoI'd love to see this happen. I know Windows's support of the touch pad is not as magical as macOS's when running on a MacBook. That said, I don't know if your request will be quite fruitful. It comes across as too "I'd like to run this project if you want to help out and here's how we will run it". Instead, I think what you need to do (if you could) is start the technical work yourself and get others to help out. If I knew how to fix the touch pad issue, I'd probably just do it independently or else find someone else technical who can help out and we could do it together. I wouldn't be looking for a PM (and the timeline or project plans is kind of a turn off for a side project). Anyway, I hope you're able to find someone who can help you out.
- wbharding 8y ago> It comes across as too "I'd like to run this project if you want to help out and here's how we will run it". Instead, I think what you need to do (if you could) is start the technical work yourself and get others to help out. I so wish that I had the time to start the technical work myself. But I'm currently experiencing the misfortune of trying to run three products at the same time for my day job (as a CEO/developer). But I care about touchpads (or at least, not relying on Macbook) too much to do nothing. So even though it sucks that I can't just make time to work on setting up the project myself, at least this effort holds the possibility that like-minded folks will join me to make that happen.
- jimrandomh 8y agoApple has put a lot of work and polish into its touchpad drivers, and it makes a huge difference; it's probably the largest single differentiator Macbooks have over other manufacturers. Part of it is latency (which will probably also require some work on the graphics stack), part of it is handling all the corner cases correctly. (Improving latency probably also requires some work on the graphics stack, not just the touchpad drivers.) A simple test which Macbooks pass, but Windows and Linux laptops fail: fling scroll down a web page, then press Cmd/Ctrl+W to close the tab before the fling scroll has stopped moving. On Macs this works correctly; everywhere else, it acts as though you're spinning an old-style wheel mouse while holding Ctrl, and zooms in repeatedly.
- seba_dos1 8y agoIt's because macOS implements kinetic scrolling in the toolkit, not in the driver (like xf86-input-synaptics and some Windows drivers do). The driver itself on macOS isn't really exceptional.
- layoutIfNeeded 8y ago>It's because macOS implements kinetic scrolling in the toolkit Which is the proper way to do it. Other vendors wanted to emulate macOS’s inertial scrolling but they had to stay compatible with all sorts of legacy APIs that only knew mouse events, so some of them cut corners and started sending these fake mouse events from the driver, to be the first on the market with “macOS-like scrolling”™. Of course this is very much a bolted-on solution, which leads to all sorts of nuisances like what’s described in the parent comment, and contributes to the general sad state of trackpad behaviour on Windows and Linux. They’ve pretty much cornered themselves, because fixing it would require a coordinated effort from the hardware/driver vendors, the OS vendors and the UI toolkit vendors. It’s just unlikely to happen unless you own the whole stack like Apple does.
- seba_dos1 8y agoNot really, at least not in the GNU/Linux case. The proper way is to do it in the driver (or in some HID abstraction of the operating system - so compositor maybe), but clearly differentiating such events in the client API, so it can be properly interpreted by clients and ignored when not relevant. Otherwise you fail to handle the case where you put your finger still to stop the scrolling steadily enough to not generate any cursor movement (libinput+GTK combo fails here, btw) and to fix that you have to move all gesture processing (including basic scrolling) to the toolkit, which is a bad idea in an environment where multiple toolkits can be used at once (basically a recipe for UX disaster).
- colonelpopcorn 8y agoHonestly, the trackpad is the one thing that a Macbook still has over a laptop with Ubuntu or Elementary installed on it. IMHO.
- tracker1 8y agoI absolutely love the Macbook touchpad, the keyboard has gotten subjectively worse since around 2010 though imho. The only reason I bought my macbook (around 2015) is because of the touchpad (and screen) and while some laptops had equally good screens or mildly better keyboards the touchpad was lacking. Still hoping for a better hardware alternative in the future (that doesn't cost an arm and a leg) I don't think I'll throw down $3500 on a laptop again either.
- openloop 8y agoSeek Jesus. FreeBSD.
- ndarwincorn 8y ago> Visual or terminal-based means to configure rudimentary touchpad settings. The fewest options I could imagine supporting for v1 would be: scroll speed/acceleration, scroll speed, natural scrolling toggle, hopefully support for gestures. You gave up on libinput after an inability to configure scroll speed, but the rest of those are all configurable with libinput and libinput-gestures[1]. I don't use gestures yet and default scroll speed has always been fine, and the following tiny libinput configuration hits the rest of your points. $ cat /etc/X11/xorg.conf.d/30-touchpad.conf Section "InputClass" Identifier "touchpad" Driver "libinput" MatchIsTouchpad "on" Option "Tapping" "on" Option "TappingButtonMap" "lrm" Option "NaturalScrolling" "true" EndSection Is there a reason you haven't asked the libinput maintainer about whether configurable scroll speed would be welcome upstream (in the prior post, it comes across like your question was far more open ended)? Forking it just to add scroll speed configuration and replicate work that's already been done elsewhere seems a little excessive. [1] https://github.com/bulletmark/libinput-gestures https://github.com/bulletmark/libinput-gestures
- wbharding 8y agoAppreciate the actionable ideas re: config file. As far as the broader configurability questions, it's not so much that I want options libinput doesn't have (though that's a little bit of it). It's more that I want the default behavior to be good enough where accessing the options aren't necessary (e.g., Macbook). In the event that the default options aren't that good, I want visual settings to tune the experience. Gnome 3 with libinput currently provides two options. Neither is pointer acceleration. Since much of what I hope to improve the "feel" of default behavior, I don't think this could be as straightforward as "submit a PR to libinput." I think it could end up being a lot of work to get the default experience feeling great. The number of folks with interest in this esoteric subject seems to me like evidence of that.
- nambit 8y agoWhy not just create a gnome-widget that does libinput configuration under the hood? The purpose of the fork cannot be just to provide sane defaults.
- bacon_waffle 8y agoDoes anyone know of a good material to simulate a hand, for objectively testing a touchpad? I've got a 2011 MacBook Pro and a logic analyser, which I'd be willing to use for a bit of touchpad driver testing/development. But, it seems like the missing link is a way to generate consistent signals that cause problems on Linux but not MacOS - I cuss my XPS15 w/ Ubuntu daily, but haven't figured out how to intentionally generate the touchpad issues.
- bradyd 8y agoMaybe a pair of gloves that work with touchscreens?
- bacon_waffle 8y agoJust tinkering with a pair of those - the glove itself doesn't activate the XPS 15's touchpad unless my hand is in it. There doesn't appear to be any conduction between my hand and the contact point on the outside of the glove according to the resistance measurement function on a good handheld multimeter, so it's not clear to me how the gloves work. But, I have managed to get a piece of copper foil, kapton, and some wire to activate it. I guess the touchpad uses some kind of RF, which makes sense... Will try to make a test jig that consistently triggers one of the irritating behaviours, but my touchpad R&D period (aka conference call) is wrapping up, so it'll be a while.
- MayeulC 8y agoUsually capacitive touchscreens sense a capacitance difference, which is set by the dielectric permittivity (ε) of the material above. Ours is close to water's, but an insulating layer from another material will yield different measurements. I am guessing that touchpads use similar tech. A fun fact is that capacitive sensors such as the one used on touchscreens are fully 3D-capable, but that seems to be rarely used (I've seen it once or twice on Samsung phones, and Sony's "glove mode").
- leowoo91 8y agoJust use neural networks to train. You're welcome. edit: this isn't a joke
- kkarakk 8y agobe sure to play eye of the tiger while training ;)
- macdice 8y agoI can report that the touchpad on a Dell XPS 13 under FreeBSD is absolutely horrendous (at least by default, and I haven't figure out how to tune it better yet). I hope all this talk about X and libinput really means "the open source ecosphere" and not really actually "Linux", because I want this too.
- kilian 8y agoOn actual macbooks libinput feels like a significant downgrade to synaptics, the mouse speed + acceleration is way off and not configurable via a gui, and other things you'd expect to work, like three-finger-click, don't. I actually downgraded back to Xorg after trying Wayland for a while. Just getting up to par with synaptics (that has natural scrolling on) would be great.
- edoceo 8y agoI'm using a Logitech one, external and my Asus has an ELAN one. Got them both to work after a bunch of fiddling, would like better docs.
- svennek 8y agoHere, this is going to solve all your touchpad problems synclient TouchpadOff=1 And then just just the trackpoint like a grown up :)
- gayprogrammer 8y agoIf the author and others haven't seen "BetterTouchTool" for Mac, there might be some useful code or inspiration to come from it. It has a "multitouch live view" debug window that displays exact pixel touch locations and shapes. The homepage showing this (third screenshot) is here: https://blog.boastr.net/ https://blog.boastr.net/
- eqdw 8y agoI finally made the switch over from 11 years of macbooks, and I bought a Dell XPS and put Manjaro on it. This was a good decision, in every way _except_ for the touch pad. The touch pad is utter garbage compared to the mac touchpad, and several nights worth of pouring over linux blog posts and trying experimental input processing packages has not changed this. I really, really hope that this project is successful.
- wbharding 8y agoWow, this community is so good. Three hours after posting and I've already got a few interested emails from experienced devs looking to lend a hand here. So, it _looks_ like we should have the opp to move forward with something in the weeks to come. Would still be nice to get a couple more emails from knowledge-heavy Linux devs, since that's not a strength of mine. (bill -at- staticobject.com) I also haven't heard from anyone with connections to OSS projects at Google/MS. I've assumed (perhaps incorrectly) there are departments at smart tech cos that selectively contribute to high impact OSS projects (dev resources or other)? Even if not for contributing resources, would be valuable to get a bit of talk time from those that have successfully executed a project like this before.
- joe_the_user 8y agoHi, Thank you for your efforts. Could you explain what exactly is better about the MacOS touchpad? Just to warn I've used Linux on a cheap PC notebook for the last ten years. I have only very occasionally used a macbook and generally found the touchpad unpleasant due a relatively slow movement (which also might make it more accurate but still doesn't enthrall me). I never particularly had a problem with the touchpad until recently - the current drivers get the location "lost" and needs a reboot about once a week (unloading and reloading with modprobe doesn't work. Also, the current touchpad simulates a three button mouse on a pad with no visible buttons, an effect that generally makes both the center and right buttons hard to use plus the keyboard has no right click button, complain-complain, minor stuff altogether and machine remains usable). Which is to say that you may be confronted with continual Linux desktop problem the your ideal of UI performance not being everyone's ideal (remember how everyone hated on the Gnome Shell? I still hate on the Gnome Shell). My own idiosyncratic UI ideal is more like older-Windows than Mac (I use Ubuntu Mate). Still, best of luck.
- techdragon 8y agoI find the MacBook precision remains just as good at higher pointer acceleration settings. In addition the same precision is normally present with all the various gestures with no loss of precision using multitouch inputs. Did you adjust any of the MacBooks you used to better fit your preferences? The slow default is the first setting I adjust because I agree the default pointer acceleration is far to slow for my tastes.
- xmichael999 8y agoPlease please make this work!
- perl4ever 8y agoI remember once upon a time, I had a PC mouse with a PS/2 connector, that was physically a great mouse, but I preferred using a Mac, which not only had no PS/2 interface but had a very different acceleration curve than anything else. So I connected the mouse to a PC running Linux, and made a little program to communicate with a simple driver on the Mac over an ethernet crossover cable. I started out with TCP/IP, but then thought, well, I don't really need this overhead, maybe UDP will work. And then I thought, well, do I really need the overhead of UDP, maybe raw ethernet will work. It turned out that no error correction was needed at all. Anyway, it wasn't fundamentally that hard to emulate the Mac feel, you just had to go to the effort to figure out the function that maps the movements. It was kind of a sigmoid curve. One of many things that made me wonder why nobody cared but me about certain things.
- hedgehog 8y agoIt would be great to see this happen. Being curious, a couple years ago I read the ChromeOS touchpad driver ("CMT") to see why it worked so much better than other Linux distros. I don't have the reference handy but the short version is they bypass X11 due to the need for high frequency and subpixel scroll events. The highest fidelity technical answer is probably to bake scrolling into the UI toolkit and compositor, and you likely have to do this to match Mac / iOS performance. You can see Apple's approach reflected in the NSScrollview documentation [1] and elaborated in [2]. 1. https://developer.apple.com/documentation/appkit/nsscrollview https://developer.apple.com/documentation/appkit/nsscrollvie... 2. https://gist.github.com/zwaldowski/8710fddc8b0b39d2c152#10_9Scrolling https://gist.github.com/zwaldowski/8710fddc8b0b39d2c152#10_9...
- mediocrejoker 8y agoWhich components on a typical (say Ubuntu 16.04 desktop) are the toolkit and the compositor? GTK and Gnome?
- hedgehog 8y agoWith the caveat that I don't know a lot about Linux GUI infrastructure but I would bucket GTK and the X11 client library into "toolkit", and the compositor would live in the X server and probably to some extent in the display and HID drivers. If you wanted to dig in I would look at doing an analysis of everything between physical finger movement and that movement being reflected on the physical screen, and how to reduce the latency and jitter. Anything about the Firefox APZ implementation [1] and that John Carmack has written about VR latency [2] would give a feel for the problem. 1. https://hacks.mozilla.org/2016/02/smoother-scrolling-in-firefox-46-with-apz/ https://hacks.mozilla.org/2016/02/smoother-scrolling-in-fire... 2. Original article is broken but this is good: https://danluu.com/latency-mitigation/ https://danluu.com/latency-mitigation/
- chj 8y agoHere I am using Macbook with a good old mouse.
- deleted 8y ago[deleted]
- neatcoder 8y agoVery good article. Can someone explain me the pop culture reference to https://images.amplenote.com/35bd7d80-eabc-11e8-8f1b-0a54dd353f78/1fdc4191-c0ff-4829-aeab-fe4c7cf561d5 https://images.amplenote.com/35bd7d80-eabc-11e8-8f1b-0a54dd3... that is present at the end of the article under the hypertext "pragmatist at heart". How does the phrase "pragmatist at heart" relate to "Good Old Grateful Dead" and what is "Good Old Grateful Dead"?
- lsiebert 8y agoIf you scroll down, it's a jerry garcia quote, "somebody has to do something, it's just incredibly pathetic that it has to be us."
- dopeboy 8y agoIt's really cool to see this get legs. Thanks OP for spearheading the effort. It would go a long way towards getting Linux competitive on desktop. I can't donate dev time but I'm happy to donate testing time and to throw in some cash too.
- random878 8y ago> turns out, a niche OS with a subjective quality issue is -- in this case -- a topic that's important to thousands I would argue that it is less a quality issue, and more that experienced GNU/Linux users tend not have a strong preference for touchpads. There's no collective desire to improve them. Away from my desktop (where a touchpad is irrelevant) my X200 doesn't even have a touchpad. I have an X250 thinkpad with touchpad, but it sees minimal use and performs just fine. I tend to use it when the laptop is at arms reach and it's easier to select a file that way than lean over and use the keyboard. When I'm working I use i3wm (tiling window manager) and most GNU/Linux application make huge use of keyboard bindings. Using a mouse, or worse a trackpad, is massively inefficient. 'OMG, I wish my new MacBook Pro enormous trackpad functioned better when I'm using Ubuntu' is not a phrase I hear often.
- kristofferR 8y agoSounds like you've never used a good trackpad. When the trackpad driver is abysmal like it is on Linux, of course you prefer using a mouse.
- random878 8y agoYes, as with so many hackers in the GNU/Linux universe I have been painfully waiting all my life for someone to come along and develop a really nice trackpad so I can use it with my tiling window manager, Emacs, and CLI tools.
- jwatt 8y agoIt's probably worth comparing notes with Bingxing Wang, who has a similar project to provide an open source Apple Touchpad driver for Windows: https://github.com/imbushuo/mac-precision-touchpad/ https://github.com/imbushuo/mac-precision-touchpad/
- mschuster91 8y agoSo, are there any affordable Windows/Linux laptops not made by Apple that carry touchpads that are even remotely compareable to a MBP2015 in terms of hardware? When I go to the nearest computer store all I see is shitty 4cm-wide black plastic stuff with a depth of easily 2mm. The plastic will get "shiny" from fat fingers (dito for the keyboard), and the tiny-ness makes any kind of gestures ... weird if not impossible at all.
- doubleunplussed 8y agoDell xps15/xps13/precision 5520/5530? The xps15 and precision models have a 4 x 3.1 inch touchpad, the 13 inch might be smaller, I'm not sure. I don't know what it's made out of but it has a matte finish and is not going shiny with use. My experience with it has been very nice. Edit: oh, you said affordable. I think the answer is probably "no" then, but macbooks are not cheap either. These dells are comparable in price to macbooks.
- nurettin 8y agoMy 2017 Hp Omen notebook has linux mint and nvidia drivers installed. Touchpad feels and works exactly like MacBook pro's. Very satisfied with it.
- pandry 8y agoI'm not sure that comparing trackpads on mouseaccuracy.com may be a good idea... I am using a Dell E7270, and I'm able to get a [244 score](https://vgy.me/UJ7LW4.png https://vgy.me/UJ7LW4.png) on it (and I never complained about my touchpad). Of course, I would love it to improve even further, but I don't feel it to be so bad after all, but I see people complaining when what we (or, at least I) have is pretty good...
- roryrjb 8y agoSeeing as people have mentioned libinput, xorg.conf and other manual things and seeing as this is Hacker News.. the way I get around this is by using cwm as a window manager with its rudimentary tiling, tmux in st/alacritty/xterm and either Firefox or Chromium with vimium. Often I don't reach for the touchpad or mouse for hours.
- arghwhat 8y agoHow do you intend on performing your tests? Just by continuously testing your own mouse precision performance? Would it be possible to emulate touchpad input? Maybe see if you can record enough touchpad data on macOS to be able to make a replay driver on Linux, or maybe with an arduino emulating a touchpad with synthetic input. That way, testing could become a set of test cases along the lines of "given this input and a cursor at position 0,0, the cursor should end up at position X, Y", and you'd be able to see how big the current error is. A bunch of those tests with various recorded movements should be a lot more stable than a human test.
- tsp 8y agoAs a long Mac user I am looking at non-Apple laptop computers for a while now (mainly because of dongle-madness, reduced build quality in the newer MacBook Pros, and the bad keyboard). The trackpad is the biggest reason for me to keep using my 2014 MacBook Pro and not buy a Laptop from another manufacturer to put Linux on.
- wink 8y agoWhen reading stuff like this I wonder if maybe a MacBook would be a cure for my hate (ok, distaste?) of touchpads or if it's too late or if it would change anything (so far trying out macs for short amount of time didn't help). -- someone carrying a mouse or using the red thinkpad button thingy since 2004.
- stargrazer 8y agoComing from Linux and Windows: the Mac touch pad works well. Once you learn the strokes and finger combinations, no mouse is needed. It becomes natural in use. And the control panel has various knobs if you don't like some of the defaults.