[[https://melpa.org/#/scrollkeeper][file:https://melpa.org/packages/scrollkeeper-badge.svg]] [[https://stable.melpa.org/#/scrollkeeper][file:https://stable.melpa.org/packages/scrollkeeper-badge.svg]]
This package provides scrolling commands and several customization options. The commands use ~pulse~ to display a quickly fading guideline, or another chosen style, on the line at which new contents are visible after scrolling. Also, scrolling can be divided into steps which proceed at the desired speed. Together, these features help your eyes to keep their place in the buffer while scrolling.
** Screencast :PROPERTIES: :TOC: ignore :END:
It's hard to capture in a GIF, but here is a [[example.mkv][video]] demonstration ([[https://i.imgur.com/P2nAcRJ.mp4][view on Imgur]]).
Contents :noexport: :PROPERTIES: :TOC: this :END:
Installation :PROPERTIES: :TOC: 0 :END:
** MELPA
Just install from MELPA, then bind the commands and customize the =scrollkeeper= group as desired.
** Quelpa
[[https://framagit.org/steckerhalter/quelpa-use-package][quelpa-use-package]] makes it easy to install, and [[https://github.com/noctuid/general.el][general]] makes it easy to configure key bindings:
(use-package scrollkeeper :quelpa (scrollkeeper :fetcher github :repo "alphapapa/scrollkeeper.el") :general ([remap scroll-up-command] #'scrollkeeper-contents-up [remap scroll-down-command] #'scrollkeeper-contents-down))
Usage :PROPERTIES: :TOC: 0 :END:
Run one of these commands:
** Tips
You can customize settings in the =scrollkeeper= group.
Changelog :PROPERTIES: :TOC: 0 :END:
** 0.1.1
Fixed
** 0.1
Initial release.
Credits :PROPERTIES: :TOC: 0 :END:
Inspired by Clemens Radermacher's blog post, [[https://with-emacs.com/posts/keep-scrollin-scrollin-scrollin/][Scrollin', scrollin', scrollin']].
Aided by studying Michael Heerdegen's package, [[https://github.com/michael-heerdegen/on-screen.el][on-screen]].
** See also
These packages provide some similar functionality but in very different ways.
[[https://github.com/michael-heerdegen/on-screen.el][on-screen]] :: A more complex and comprehensive implementation that uses hooks to observe scrolling in other windows.
[[https://github.com/ska2342/highlight-context-line/][highlight-context-line]] :: Highlights the boundary line statically, using a minor mode rather than commands.
[[https://github.com/Malabarba/beacon][beacon]] :: Highlights the cursor rather than the boundary line between new and old content.
Development :PROPERTIES: :TOC: ignore :END:
Bug reports, feature requests, suggestions — /oh my/!
GPLv3