Inertial scrolling should be possible on all multi-touch trackpads
A new feature called "inertial scrolling" has been introduced in the latest MacBook Pros. This feature changes the way that scrolling functions in OS X, making it behave more like the iPhone. Traditionally, when you use two-finger scrolling in OS X, scrolling stops dead as soon as your fingers stop moving. On the iPhone, however, there's a certain "momentum" to scrolling that is entirely dependent on how quickly you flick your finger to scroll; slow scrolling motions have almost no momentum to them at all, while fast flicks mean the screen continues to scroll long after your finger has left the tracking surface, possibly even scrolling all the way to the top or bottom of what you're scrolling through in a matter of seconds. Many people prefer the way scrolling behaves on the iPhone compared to the Mac, so it's been introduced as an optional behavior in the newest MacBook Pros.Since the multi-touch trackpads on the MacBook, MacBook Air, and MacBook Pro use essentially the same multi-touch hardware as the iPhone, it's been possible to bring this same scrolling behavior into OS X. However, it only works on the newest MacBook Pros for now. I suspected that there wasn't any reason this new inertial scrolling behavior couldn't be implemented on the older multi-touch trackpads, so I spent most of the morning investigating how to get it working on my Early 2008 MacBook Pro (the first model of MacBook Pro with a multi-touch trackpad). Read on to find out what I discovered.
First, a bit of background to establish a precedent for why I believe inertial scrolling should work on all multi-touch trackpads, and not just the ones on the newest MacBook Pros. When first introduced on the MacBook Air, the multi-touch trackpad supported standard two-finger scrolling just like older trackpads. However, it also introduced rotating, pinching, and three-finger swipe gestures. These new gestures were possible because the MacBook Air's trackpad used a multi-touch controller chip that was similar, if not identical, to the one used in the iPhone. A month after the MacBook Air's release, the Early 2008 MacBook Pro was released with an identical multi-touch trackpad. Later in 2008, when the MacBook Pro line was updated with unibody enclosures and glass trackpads, these new MacBook Pros also gained an additional set of gestures: four-finger swipes to invoke Exposé and the application switcher.
Many people suspected that these new four-finger gestures were implementable on the older MacBook Air and Pro multi-touch trackpads via a software update, and they were correct. Enterprising hackers cooked up an updated extension for these older models that allowed the new four-finger gestures to work. Almost a year later, Apple rendered this extra work unnecessary with Snow Leopard's release, which enabled four-finger gestures for all Apple notebooks with multi-touch trackpads.
Today, we have a nearly identical situation: the new inertial scrolling behavior, present only in the newest MacBook Pros, seems like something that should be easily ported to the older multi-touch trackpads via a software update. The iPhone has inertial scrolling by default, and since all multi-touch trackpads use essentially the same controller chip, it seems that there aren't any hardware limitations preventing inertial scrolling from working on older multi-touch trackpads.
To investigate the possibility of enabling inertial scrolling on my Early '08 MacBook Pro, I asked my dad to send me a few files from his new 13" MacBook Pro:
/System/Library/Extensions/AppleUSBMultitouch.kext
/System/Library/Extensions/AppleUSBTopCase.kext
/System/Library/PreferencePanes/Trackpad.prefPane
These were the three files needed to enable four-finger gestures on the older Multi-Touch trackpads before Snow Leopard's release, so I figured the same files would be necessary for enabling inertial scrolling.
First, the good news. After looking through the info.plist file for AppleUSBMultitouch.kext from my dad's new MacBook Pro and comparing it against the same file on my older MacBook Pro, not only does it appear that inertial scrolling is possible on the older trackpads via a software update, but it may also be coming as soon as the 10.6.4 update. In the old info.plist from my MacBook Pro, there are several instances of a string that reads:
<key>TrackpadFourFingerGestures</key>
<true/>
This string is a reliable identifier of Multi-Touch trackpads within the info.plist file for AppleUSBMultitouch.kext, because as of Snow Leopard, all Multi-Touch trackpads support four-finger gestures. When examining the same info.plist from my dad's new MacBook Pro, the FourFingerGestures string was followed, without a single exception, with the following string:
<key>TrackpadMomentumScroll</key>
<true/>
There wasn't a single instance within this new info.plist where the FourFingerGestures string was not followed by the TrackPadMomentumScroll string. So, there's the good news: inertial scrolling should be possible on all multi-touch trackpads, and we might not have to wait very long for official support from Apple.
Now the bad news: I wasn't able to get inertial scrolling working on my MacBook Pro, even after installing the three files from my dad's Mac and spending a whole morning wrestling with it. I spent most of the morning unable to use any multi-touch gestures at all after installing the new files. For some reason, even though Disk Utility said it was repairing permissions on the changed extensions (an essential step to ensure that these files load properly after restarting the Mac), it never actually repaired the permissions at all. As a result, AppleUSBMultitouch.kext and AppleUSBTopCase.kext wouldn't load at all, which meant that, not only were there no multi-touch gestures, but my keyboard's function keys were disabled as well. After a couple hours, I was finally able to figure out how to fix things so that multi-touch gestures and my function keys worked (using the new extensions and prefpane). Even after all of that effort, though, inertial scrolling still doesn't work, and it doesn't show up as an option in System Preferences under Trackpad.
My amateurish failure to hack this thing aside, I'm still convinced it's possible to enable inertial scrolling on multi-touch trackpads without waiting for official support from Apple (which may come in 10.6.4 but also may not come until 10.7, if ever). It's possible that there are more files needed other than the three I got from my dad's MacBook Pro. It's also possible that additional steps are necessary with the files I already have in order to enable inertial scrolling. Hopefully some enterprising Mac geek will read this and have a solution. If, after reading through this, you have an idea how to get inertial scrolling working on older multi-touch trackpads, let us know in the comments.
So you know, just like all other multi-touch gestures, inertial scrolling will only ever be possible on the following Macs:
MacBook Air
Early 2008 MacBook Pro
Late 2008 17" MacBook Pro
All unibody MacBook Pros
All unibody aluminum MacBooks
The late 2009 unibody polycarbonate MacBook with glass trackpad
Basically, if you have a MacBook Pro that was released before February 2008, a plastic MacBook without a glass trackpad, or any PowerBook or iBook, no Multi-Touch gestures (other than simple two-finger scrolling) will ever work on your trackpad because the hardware simply doesn't support it. If you do have one of the models that supports Multi-Touch, though, I don't see any reason why inertial scrolling shouldn't work just as well on those Macs as it does on the iPhone.
Share
Categories
A new feature called "inertial scrolling" has been introduced in the latest MacBook Pros. This feature changes the way that scrolling...
Add a Comment
I wrote a small free utility that simulates this, it works quite well. Look on the page for a small demo video.
http://inertial.keeener.com
Hi Chris,
thanks for your blog. Learning about the momentum scroll on the new MacBooks I was so mad at apple for not having it on my 2009 model...
Don't worry about those freaks that keep posting comments just for pissing other people off but don't produce anything productive.
OK, you could have mentioned SmartScroll in the original article, but only for pointing out that there's a third party app that pretends to do inertial scrolling but does it only very poorly.
I agree with the previous post of lan dean, SmartScroll is buggy as hell, doesn't scroll nearly as smooth as the new macbooks, and some apps just don't work with it.
Biggest Bug: With SmartScroll activated you can't scroll the cover flow view of finder at all using two fingers left/right.
Therefore:
I'm absolutely in favor of a solution directly in the OS.
Have you had any success in the meanwhile?
And I'm rather pessimist about Apple implementing it in 10.6.4 or even 10.7 - knowing the way the company is heading lately don't expect anything that might people help sticking to old hardware.
Andreas of BetterTouchTool writes it's the firmware of the trackpad that is the problem ...
http://blog.boastr.net/?p=1859
So until Apple doesn't release a firmware update there won't be a way to do it :-(
Give it up already! Smart Scroll is a really sloppy implementation. It doesn't work anything nearly as smartly as inertia scrolling. First of all with apples implementation of momentum, if you don't lift your fingers when scrolling, you get no inertia. Giving you great control over scrolling. With smart scroll it carries on even when fingers are kept down. Not to mention it's buggy, ugly and won't work in many applications. And the reasons for this... Maybe hardware.
May 28 2010 at 3:28 AM Report abuse Permalink rate up rate down Replyi bought a new 13" model (2,66ghz) and switched the harddrive with my late 2009 15" unibody mbp. apparently it didn't do the trick for the older 15". The 13 inch had the momentum option right away !
May 27 2010 at 2:20 PM Report abuse Permalink rate up rate down ReplyMan, this could really save some wrists.
May 03 2010 at 6:21 PM Report abuse Permalink rate up rate down ReplyComments and criticism have been excellent imo. I found two great new trackpad extension apps - smartscroll and jitouch.
Just to throw an additional one in here even though it does not support inertial scrolling .. yet. BetterTouchTool - http://www.boastr.net/
Okay, this is the first time I've posted a "jeez TUAW, do some research" comment, but seriously TUAW, do some research. Writing this entire article without mentioning any of the longtime methods of doing this, which obviously prove that this feature is possible, is pretty lazy.
April 25 2010 at 3:14 AM Report abuse Permalink rate up rate down ReplyLike I said to another commenter who came in here with a pedantic "do some research" comment, I'm perfectly aware there are third-party trackpad drivers. I use one of them every day. That wasn't the point of the article, and anyone who actually read the entire thing would easily have been able to comprehend that.
April 25 2010 at 7:35 AM Report abuse Permalink rate up rate down ReplyI certainly read the article. What you did, by not mentioning the existing solutions, is akin to a Soviet journalist writing a whole article in 1971 about how it should be possible to send a Soviet to the moon without mentioning that the Americans did it several years before. True, it's not exactly the point of the article in a narrow sense, but it's highly relevant to the broader concept of the article, and would be of interest to anyone who's interested in moon travel. I think that's the worst part about what you did here - if people were to look at this article and say "wow, I wish Apple would turn that feature on right now!" they'd walk away with no idea that they could turn it on for themselves today.
April 25 2010 at 2:06 PM Report abuse Permalink rate up rate down ReplyâAh, I see you've got the machine that goes PING!â
April 24 2010 at 10:43 PM Report abuse Permalink rate up rate down ReplyThe new MacBook Pro's require a specific build of OS X, which has additional hooks for the scrolling. I would suggest that you put your MacBook Pro into target disk mode, connect it via Firewire to your Dad's machine, and then do an archive and install onto your drive using his restore discs to get the build correct and then try tweaking some of the plist files to see if you can get it working.
April 24 2010 at 9:53 PM Report abuse Permalink rate up rate down ReplyThat would probably work, and it's a great suggestion.
Unfortunately, I'd need a 13,000 kilometre Firewire cable to pull it off; I'm in New Zealand, and my dad is in Tennessee.
Which, for those of you playing along in the States, comes out to 8,077.8255 miles. ;)
April 24 2010 at 11:36 PM Report abuse Permalink rate up rate down ReplyWas about to post the same thing! I hope this isn't integrated into OSX by default- I hate Smart Scroll and inertial scrolling!
April 24 2010 at 9:34 PM Report abuse Permalink rate up rate down ReplyHot Apps on TUAW
Deals of the Day
more deals- Apple iPhone Headset with Mic for $4 + $2 s&h
- miFrame Picture Frame Dock for iPad for $64 + $8 s&h
- Refurb Apple iPod nano 8GB MP3 Player for $99 + free shipping, 16GB for $119
- Hannspree Apple-Shaped 28" 1080p LCD HDTV for $270 + free shipping
- Philips wOOx Alarm Clock Radio for Apple iPod / iPhone for $60 + free shipping
- iWatchz Elemetal Collection Bracelet for iPod nano for $75 + free shipping
Software Updates
more updates- EFI Firmware Update brings Lion Internet Recovery to 2010-model Macs
- OS X Lion 10.7.3 released with Safari 5.1.3, Wi-Fi bug fix
- Aperture updated to 3.2.2, addresses Photo Stream issue
- Apple updates Keynote to address Lion issues
- Google Search app gets new look on iPad
- Apple releases Apple TV Software Update 4.4.3



48 Comments