Way too fast scrolling in Emacs on OSX

In GUI builds of emacs for OSX, the scrolling speed when using the trackpad in so fast that it's unusable. I already have the following lines in my init.el:

(setq mouse-wheel-scroll-amount '(1 ((shift) . 1)))
(setq mouse-wheel-progressive-speed nil)
(setq mouse-wheel-follow-mouse 't)
(setq scroll-step 1)
(setq mac-mouse-wheel-mode t)
(setq mac-mouse-wheel-smooth-scroll t)

None of that helped with the issue, though. As soon as I scroll a tiny but on the trackpad, my buffers jump around several lines.

I'm not interested in "smooth scrolling", I just want to scroll at reasonable speeds.

UPDATE: Seems to be a macOS Sierra bug. (see comments)


Solution 1:

I figured out a fix for now. I answered it here:

https://stackoverflow.com/questions/39660065/emacs-smooth-scrolling-not-effect-after-system-upgrade-to-macos-10-12/40006539#40006539

But for completeness, I have copy/pasted my answer below:


Clicking through here:

https://discussions.apple.com/thread/7679256?start=0&tstart=0

Led me to the solution. Which for me is 2 things. One, what the user on the apple support forum said:

This time I went into Accessibility. Then Click on Mouse and Trackpad. Now click on Trackpad Options. The scrolling box is most likely highlighted already. Toggle it off and then back on and see if that fixes it - it did for me. Now go back to the Trackpad in System Preferences and make sure you have everything selected as desired.

Go to Preferences > Accessibility > Mouse & Trackpad > Mouse Options

Then toggle off, then back on the scrolling check box, then click OK. This seems to clean things up. Possibly reset some things somewhere in the code.

Double check your mouse settings in Preferences to ensure they are as expected. Test your scrolling in chrome to make sure it works as desired.

It should work as expected in Java based apps now and terminal apps as well. For reference, i had this issue with emacs/spacemacs. For reference, this is what my settings are in my .spacemacs config settings.

(defun dotspacemacs/user-config ()
  [...]

  ;; Scrolling
  (setq mouse-wheel-scroll-amount '(3 ((shift) . 1) ((control) . nil)))
  (setq mouse-wheel-progressive-speed nil)
)

And with those, it scrolls smoothly.