“Natural” scrolling across operating systems

“Natural” Scrolling Overview

I am beginning to get used to the reversed scrolling behavior in the new OS X. For those that have not heard about it, this was one of the most controversial changes in the new operating system. They reversed the direction of the action that is performed by spinning the mouse’s scroll wheel or using two fingers to scroll on a touchpad. There have been a lot of heated debates on both sides of the fence.

If you think about it, the scroll wheel action is fairly arbitrary. It was:

  • scroll the wheel down, the slider in the window that marks your position moves downward (to match your finger movement), the text of your document slides up, you reveal more text at the bottom edge of the window.

It is now:

  • scroll the wheel down, the slider in the window that marks your position moves upward, the text of your document slides down (to match your finger movement), you reveal more text at the top edge of the window.

In other words, the movement switched from manipulating the window slider to manipulating the document itself. You might argue that it is a little more direct now — instead of manipulating the slider that manipulates your position in the document, you are directly manipulating the document. You might argue that, at least for touch-based trackpad systems (not mice, per se), the action is more iPhone-like. You might also argue that as a society we now have a culture muscle-memory of how the scroll wheel works and changing it would be akin to swapping the position of the gas and brake pedals on a car or (less dangerous) building analog clocks whose hands spun counter-clockwise.

I figured I would at least give it a try, but had to jump in with both feet. That meant leaving the new default OS X reversed (“natural”) scrolling, but that also meant hacking my Windows and Linux boxes to behave similarly — otherwise, I found myself getting stuck in a limbo of not knowing which direction the scroller worked at any given time, hesitating with a little test nudge to ensure it was going to work the way I thought.


For me, the Windows hack was pretty easy. I already run AutoHotkey for a few keyboard shortcuts. AutoHotkey is an app that intercepts keypresses and mouse clicks and lets you transform them to other actions. I have a few macros set up (similar to TextExpander on the Mac) that lets me type an abbreviation, which gets expanded to a hard-to-enter unicode character, pre-canned text, or snippet of code. I also have a keystroke that automatically opens the selected file in Notepad++. I just had to paste a few lines into my configuration file, and it intercepts the up-scroll and passes it to the system as a down-scroll and vice-versa. Specifically, it looks a little something like this:

; Reverse mouse wheel to be more like OS X
    Send {WheelDown}

    Send {WheelUp}


Under Linux, I had to edit my Xorg configuration file. I opened /etc/X11/xorg.conf in a text editor and looked for the ‘Section “InputDevice”‘ block that corresponded to the mouse. I then had to change (or add, if it was not already there) the “Option ZAxisMapping” to the following:

Option "ZAxisMapping" "5 4"

This works with a mouse locally plugged into the system. I still have a problem when the keyboard and mouse are remotely connected via Synergy in that the mouse scolling does not get translated. I am not sure whether that is the server (on Windows) bypassing the AutoHotkey and/or the client (on Linux) side-stepping the Xorg configuration. It may be both, since if I configure only one or the other with a reversed mouse, there is no change to the behavior. I’d expect a change if one was reversing it and the other was un-reversing.

So aside from via Synergy, it’s all working and I am doing a good job at adapting, though I fear the day that I sit down at a coworker’s computer and get tripped up because their mouse wheel works “backwards.”

Posted in: Software

Published by

Brian Enigma

Brian Enigma is a Portlander, manipulator of atoms & bits, minor-league blogger, and all-around great guy. He typically writes about the interesting “maker” projects he's working on, but sometimes veers off into puzzles, software, games, local news, and current events.

5 thoughts on ““Natural” scrolling across operating systems”

    1. Nope. I have since given up on natural scrolling on anything but a touchpad, and (therefore, in my situation) anything but the Mac. My brain can do the touchpad because it’s similar to the iPhone/iPad, but I could never quite overcome the muscle memory of the scroll wheel’s behavior.

    2. So it’s now well after this post was originally posted, but I found the registry hack at http://one-cheekymonkey.blogspot.com/2012/01/reverse-mouse-scroll-direction-in.html works without needing AutoHotKey and will work successfully across Synergy. It patches scroll behavior at a deeper OS layer. Unfortunately, it only works for up/down scrolling. If you have a trackpad (e.g. Apple’s Magic Trackpad), the left/right directions aren’t flipped. Fortunately, I don’t scroll horizontally very much.

Leave a Reply

Your email address will not be published. Required fields are marked *