I've recently moved into an office that has standardized on Apple computers and have run into something that I have used with Linux that I know is going to drive me nuts on the Mac. I use a Logitech MarbleMouse, a trackball that does not have a mouse wheel. On Linux, there is a configuration option (EmulateWheel and EmulateWheelButton in evdev) that let's you press a button and have mouse/trackball motion act like a scroll wheel. Is there anything equivalent on Mac?
You can use KeyRemap4MacBook.
Scroll by moving the pointer while holding the secondary button:
Scroll by moving the the pointer while holding F1:
<autogen>__KeyToKey__ KeyCode::F1, KeyCode::VK_MODIFIER_EXTRA1</autogen> <autogen>__PointingRelativeToScroll__ PointingButton::NONE, ModifierFlag::EXTRA1</autogen>
Scroll with F1 and F2:
<autogen>__KeyToKey__ KeyCode::F1, KeyCode::VK_MOUSEKEY_SCROLL_UP</autogen> <autogen>__KeyToKey__ KeyCode::F2, KeyCode::VK_MOUSEKEY_SCROLL_DOWN</autogen>
Scroll by moving the pointer while holding the primary and secondary buttons:
<autogen>__SimultaneousKeyPresses__ PointingButton::LEFT, PointingButton::RIGHT, KeyCode::VK_CONFIG_SYNC_KEYDOWNUP_notsave_pointing_relative_to_scroll</autogen>
You can map scrolling to pressing a key and moving the cursor from the GUI!
Here, I map the scrollwheel action to pressing the
Fn key and moving the cursor. Notice the nice option that enables this behavior for both horizontal and vertical scrolling.
By the way, KeyRemap4MacBook is now called Karabiner. https://pqrs.org/osx/karabiner/
This seems to work with Karabiner-Elements again.
You must "Import more rules from the Internet (open a web browser)," get "Change mouse motion to scroll," and "Enable" it. This adds the ability to hold a mouse button to change the mouse ball into a scroll wheel while the button is held down. You can then change the scrolling speed and feel by adjusting both "speed" under "Parameters" and adjusting "Scrolling speed" in the regular MacOS Mouse System Preferences Pane.
The speed, smoothness, and momentum of the scrolling feels a little weird; I think it's related to the difference in sensation from a regular scroll wheel which kind of clicks as it's scrolled.
Since Karabiner-Elements no longer seems to have this functionality, Smart Scroll is the new way. Just use Mouse Button 4 with the "grab scroll" option. Unfortunately scrolling will stop when the cursor hits a screen edge, so it's not true scrolling, and Photoshop doesn't support it for alt-scroll zooming.
Now Karabiner has an option for Logitech Marble Mouse
You can achieve this with the SteerMouse software, by mapping a mouse button to "Scroll", which will then toggle this behavior.