4 ms·
Related: The "linux touchpad like a macbook" discussions: https://news.ycombinator.com/item?id=23235609 https://news.ycombinator.com/item?id=23235609 https://b
by seltzered_ 6y ago
Related: The "linux touchpad like a macbook" discussions: https://news.ycombinator.com/item?id=23235609 https://news.ycombinator.com/item?id=23235609
https://bill.harding.blog/2020/05/17/linux-touchpad-preliminary-project-funding-survey-results/ https://bill.harding.blog/2020/05/17/linux-touchpad-prelimin...
https://github.com/sponsors/gitclear https://github.com/sponsors/gitclear
- robertely 6y agoGiven how ubiquitous the capacitive touch senors have become I'm surprised no one has put together an open source option. I've gone down something of a rabbit hole searching and haven't found any prior work. The closest I have seen is the Snowpad[1] but it's been discontinued by the maker and they pulled down the source as well. I'd try duplicating it but it used the Microchip MTCH6301 and it's been marked `Not recommended for use in new designs.` I'm hunting for an easy to use alternative if anyone knows one. I may still take a stab at the MTCH6301 just because of how easy it looks to use. [1][https://www.kitronyx.com/snowpad.html https://www.kitronyx.com/snowpad.html]
- solarkraft 6y agoWhat does "Open Source" mean in this context? Isn't the goal "just" to have an understandable interface? Also: Can you recommend some reading material as an introduction to using a capacitive digitizer? I am planning to use one in an upcoming project (either one from a tablet glass replacement or a stand alone one) and really have no idea what to look out for yet in terms of communication with my Linux board (bonus: Something about DIYing one because I need a special format, but I guess that's especially hard because it's supposed to go on to a screen).
- robertely 6y agoHaving a tidy interface is certainly a primary goal but there are others. - Control over the size/shape of the sensor pad. - Control over communication (i2c/spi/usb) - Ability to explore gesture behaviors and expose simplified interfaces to the OS. - Control over click feel/behaviors by customizing snap switch style, mount, and locations. - Control over the touch surface finish. (Did you know you can laser cut glass screen protectors? Why are none of these touch pads glass outside of macbooks?) - Open documentation on all of the above. As for reading material I can't recommend anything as a summery (see my last bullet). Manufacture design guidelines are probably where you should start. Case in point: MTCH6301: https://www.microchip.com/wwwproducts/en/MTCH6301 https://www.microchip.com/wwwproducts/en/MTCH6301 Microchip Sensor design guide: http://ww1.microchip.com/downloads/en/DeviceDoc/FAQs%20-%20Sensor%20Design%20Guidelines.pdf http://ww1.microchip.com/downloads/en/DeviceDoc/FAQs%20-%20S...
- seltzered_ 6y agoIt's not just the sensor. I'd warn people trying to DIY from scratch to make sure you really think of the full gestalt of a touch / gesture experience which spans: - Mechanics (a good surface, sensing) - Robustly designed state machines to track states even before your finger lands. - Math (to deal with finger acceleration, stabilization) - Feedback! Mechanical clicking, piezo, weight actuation, etc. I cringe when I see projects lacking feedback. As a teaser here's my messy breakdown of the macbook trackpad states, based on things done back around 2008/2009 (http://blog.sendapatch.se/2009/november/multitouch-on-unibody-macbooks.html http://blog.sendapatch.se/2009/november/multitouch-on-unibod...): enum RawTouchStateOneValues { TOUCH_STARTED_STATE = 1, // initial touch started state - i.e. first frame of a touch. warning on this state: StateTwoValues seem invalid here TOUCH_HOVERING_STATE = 2, // multi-frame: typically occurs when a touch is about to land. TOUCH_LANDED_ON_PAD_STATE = 3, // usually single-frame, but can occur multiple times if a touch hovers and returns (from state 6,2,1) - you can also go here from state 6, which means a hanging touch can 'return' TOUCH_ON_PAD_STATE = 4, // typical duration of a touch - moving around on pad TOUCH_LEAVING_PAD_STATE = 5, // usually single-frame - TOUCH_LEFT_NOW_HOVERING_STATE = 6, // multi-frame: occurs when a touch occurred but then left pad (state 5), and is now hovering TOUCH_ENDED_STATE = 7 // single-frame: touch finally ends }; enum RawTouchStateTwoValues { TOUCH_DETECTED_ALTSTATE = 0, //state only seems to occur on initial touch (stateOne's TOUCH_STARTED_STATE), which I filter out TOUCH_RESTING = 1, TOUCH_NON_RESTING = 2, TOUCH_NON_RESTING_AGAIN = 3, TOUCH_THIRD_TOUCH = 4, TOUCH_EDGE_REGION = 5, //only observed on magic trackpad - seems to occur when starting at the edge. TOUCH_SIXTH_TOUCH = 6, TOUCH_GROWING_FROM_EDGE = 7, //both cases 12 and 7 seem be used for palm-rejection scenarios TOUCH_EIGHTH_TOUCH = 8, TOUCH_NINTH_TOUCH = 9, TOUCH_TENTH_TOUCH = 10, TOUCH_ELEVENTH_TOUCH = 11, TOUCH_COMING_FROM_EDGE = 12 //both cases 12 and 7 seem be used for palm-rejection scenarios //other states observed but unknown - 4 (seems to consistently occur when I have three fingers down. // likely occurs in certain pad regions) // };
- nextos 6y agoI personally think it's the hardware. I've run Linux on a MacBook Air 11 Late 2012 from the day I purchased the machine and it feels identical to macOS. Luckily, for those using desktops who still want to use a trackpad, the Magic Trackpad works really well out of the box too. And there are not many other options in the market. I used to prefer trackballs from Logitech, but current models are nowhere as smooth as those from the 1990s and early 2000s.
- abrowne 6y agoI agree that's a very large part of it. I have booted Ubuntu on innumerable PCs and Macs while working in repairs, and touchpads vary hugely even when running the same software. The recentish "Precious Touchpad" standard Microsoft has for PCs tend to work better in my experience, even under Linux. As a former Mac user, I can also recommend whatever is in the HP EliteBook I'm using now.
- abrowne 6y agoClearly meant "Precision Touchpad" …
- jorvi 6y agoIt is most definitely not the hardware. Apple's macOS palm rejection and especially the crispness & smoothness of the gestures are unparalleled, and using the same touchpad on Linux feels like the touchpad has dropped down into some sort of safe mode where all the fancy extras have been disabled. I mean, its understandable, Apple has been developing this since the original unibody Macs of 2007 so they have nearly a decade of progress vs Windows or Linux touchpad developement, but acting as if they're on par is simply false.
- gurkendoktor 6y agoI have a 13" MacBook Air from 2012, and found the trackpad terrible with libinput (around Ubuntu ~18.04). One example that I still remember: When you've started scrolling with two fingers on macOS, you can tap again with both fingers to "brake". The same gesture would trigger a right-click on Linux. Kinetic scrolling without a way to stop means that I've always either scrolled too far, or dealt with unwanted context menus.