Subject: 27.0.50; [Proposition] New option to scroll up regardless of eob
From: [email-masked]
To: [email-masked]
Date: Thu, 04 Jul 2019 13:03:40 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Most of the time I find it useful to scroll up in scroll-lock-mode also
in the case when the end of the buffer is in sight.  With this behavior
it's possible to scroll up until there is literally (almost) nothing
left in the buffer.

This is in opposition to the current behavior of scroll-lock-mode which
always switches to forward-line if the end of buffer is in sight.

Find attached a concrete realization.

Thanks for consideration and best regards!

In GNU Emacs 27.0.50 (build 5, x86_64-pc-linux-gnu, GTK+ Version 3.24.9)
 of 2019-06-28 built on tm6592
Repository revision: d58fc4e8ece8ccafd5ef430a57c2a8b417c8e038
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12005000
System Description: Arch Linux

Recent messages:
Type "q" to restore previous buffer, <mouse-5> to scroll help.
Mark saved where search started [2 times]
funcall-interactively: Buffer is read-only: #<buffer *Help*>
Mark saved where search started
user-error: Not defining or executing kbd macro
user-error: Only diff buffers can be saved as patches
Directory has changed on disk; type g to update Dired
Delete 0001-Document-bookmark-annotations-in-Emacs-Manual-bug-36.patch (y or n) y
Deleting...done
Pause over at 12:50:36.  What about another tomato?

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND GPM DBUS GSETTINGS GLIB NOTIFY INOTIFY
ACL GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM THREADS LIBSYSTEMD JSON PDUMPER
LCMS2 GMP

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Dired by name

Minor modes in effect:
  semantic-minor-modes-format: ((:eval (if (or semantic-highlight-edits-mode semantic-show-unmatched-syntax-mode)  S)))
  gnus-dired-mode: t
  global-magit-file-mode: t
  magit-auto-revert-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  pdf-occur-dired-minor-mode: t
  pdf-occur-global-minor-mode: t
  shell-dirtrack-mode: t
  winner-mode: t
  timeclock-mode-line-display: t
  show-paren-mode: t
  global-undo-tree-mode: t
  display-time-mode: t
  auto-insert-mode: t
  beginend-global-mode: t
  beginend-dired-mode: t
  global-company-mode: t
  company-mode: t
  wrap-region-global-mode: t
  ido-hacks-mode: t
  ido-everywhere: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  dired-hide-details-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  file-name-shadow-mode: t
  jit-lock-debug-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Load-path shadows:
/home/b/.emacs.d/straight/build/debbugs/debbugs hides /home/b/.emacs.d/elpa/debbugs-0.18/debbugs
/home/b/.emacs.d/straight/build/debbugs/debbugs-gnu hides /home/b/.emacs.d/elpa/debbugs-0.18/debbugs-gnu
/home/b/.emacs.d/straight/build/debbugs/debbugs-org hides /home/b/.emacs.d/elpa/debbugs-0.18/debbugs-org
/home/b/.emacs.d/straight/build/debbugs/debbugs-autoloads hides /home/b/.emacs.d/elpa/debbugs-0.18/debbugs-autoloads
/home/b/.emacs.d/straight/build/debbugs/debbugs-browse hides /home/b/.emacs.d/elpa/debbugs-0.18/debbugs-browse
/home/b/p/org/org-mode/lisp/org-inlinetask hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-inlinetask
/home/b/p/org/org-mode/lisp/ob-picolisp hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-picolisp
/home/b/p/org/org-mode/lisp/ox-ascii hides /home/b/p/emacs/emacs-a/clone/lisp/org/ox-ascii
/home/b/p/org/org-mode/lisp/ob-table hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-table
/home/b/p/org/org-mode/lisp/ob-ruby hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-ruby
/home/b/p/org/org-mode/lisp/ob-C hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-C
/home/b/p/org/org-mode/lisp/ob-hledger hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-hledger
/home/b/p/org/org-mode/lisp/ox-md hides /home/b/p/emacs/emacs-a/clone/lisp/org/ox-md
/home/b/p/org/org-mode/lisp/org-mouse hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-mouse
/home/b/p/org/org-mode/lisp/ob-lilypond hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-lilypond
/home/b/p/org/org-mode/lisp/ob-scheme hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-scheme
/home/b/p/org/org-mode/lisp/ox-beamer hides /home/b/p/emacs/emacs-a/clone/lisp/org/ox-beamer
/home/b/p/org/org-mode/lisp/ob-gnuplot hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-gnuplot
/home/b/p/org/org-mode/lisp/ob-core hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-core
/home/b/p/org/org-mode/lisp/ox-odt hides /home/b/p/emacs/emacs-a/clone/lisp/org/ox-odt
/home/b/p/org/org-mode/lisp/ob-comint hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-comint
/home/b/p/org/org-mode/lisp/ob-lua hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-lua
/home/b/p/org/org-mode/lisp/org-mobile hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-mobile
/home/b/p/org/org-mode/lisp/ob-java hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-java
/home/b/p/org/org-mode/lisp/ob-js hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-js
/home/b/p/org/org-mode/lisp/ob-lob hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-lob
/home/b/p/org/org-mode/lisp/ob-R hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-R
/home/b/p/org/org-mode/lisp/org-lint hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-lint
/home/b/p/org/org-mode/lisp/org-datetree hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-datetree
/home/b/p/org/org-mode/lisp/ob-shen hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-shen
/home/b/p/org/org-mode/lisp/ob-clojure hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-clojure
/home/b/p/org/org-mode/lisp/org-capture hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-capture
/home/b/p/org/org-mode/lisp/ob-sqlite hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-sqlite
/home/b/p/org/org-mode/lisp/org-entities hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-entities
/home/b/p/org/org-mode/lisp/ob-python hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-python
/home/b/p/org/org-mode/lisp/org-id hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-id
/home/b/p/org/org-mode/lisp/ob-abc hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-abc
/home/b/p/org/org-mode/lisp/org-habit hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-habit
/home/b/p/org/org-mode/lisp/org-protocol hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-protocol
/home/b/p/org/org-mode/lisp/ob-ebnf hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-ebnf
/home/b/p/org/org-mode/lisp/ob-makefile hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-makefile
/home/b/p/org/org-mode/lisp/ob-ditaa hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-ditaa
/home/b/p/org/org-mode/lisp/ob-org hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-org
/home/b/p/org/org-mode/lisp/ox hides /home/b/p/emacs/emacs-a/clone/lisp/org/ox
/home/b/p/org/org-mode/lisp/ob-stan hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-stan
/home/b/p/org/org-mode/lisp/org-element hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-element
/home/b/p/org/org-mode/lisp/org-colview hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-colview
/home/b/p/org/org-mode/lisp/ox-html hides /home/b/p/emacs/emacs-a/clone/lisp/org/ox-html
/home/b/p/org/org-mode/lisp/ox-man hides /home/b/p/emacs/emacs-a/clone/lisp/org/ox-man
/home/b/p/org/org-mode/lisp/org-install hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-install
/home/b/p/org/org-mode/lisp/ob-sed hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-sed
/home/b/p/org/org-mode/lisp/ob-io hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-io
/home/b/p/org/org-mode/lisp/ox-icalendar hides /home/b/p/emacs/emacs-a/clone/lisp/org/ox-icalendar
/home/b/p/org/org-mode/lisp/ob-vala hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-vala
/home/b/p/org/org-mode/lisp/org-compat hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-compat
/home/b/p/org/org-mode/lisp/ob-eval hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-eval
/home/b/p/org/org-mode/lisp/ox-latex hides /home/b/p/emacs/emacs-a/clone/lisp/org/ox-latex
/home/b/p/org/org-mode/lisp/org-footnote hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-footnote
/home/b/p/org/org-mode/lisp/ob-ledger hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-ledger
/home/b/p/org/org-mode/lisp/org-timer hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-timer
/home/b/p/org/org-mode/lisp/ob-asymptote hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-asymptote
/home/b/p/org/org-mode/lisp/org-list hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-list
/home/b/p/org/org-mode/lisp/ox-org hides /home/b/p/emacs/emacs-a/clone/lisp/org/ox-org
/home/b/p/org/org-mode/lisp/org-duration hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-duration
/home/b/p/org/org-mode/lisp/ob-sql hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-sql
/home/b/p/org/org-mode/lisp/org-table hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-table
/home/b/p/org/org-mode/lisp/ob-matlab hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-matlab
/home/b/p/org/org-mode/lisp/org-crypt hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-crypt
/home/b/p/org/org-mode/lisp/ob-haskell hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-haskell
/home/b/p/org/org-mode/lisp/org-macs hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-macs
/home/b/p/org/org-mode/lisp/org-attach hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-attach
/home/b/p/org/org-mode/lisp/ob-shell hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-shell
/home/b/p/org/org-mode/lisp/ob-css hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-css
/home/b/p/org/org-mode/lisp/ob-ocaml hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-ocaml
/home/b/p/org/org-mode/lisp/ob-plantuml hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-plantuml
/home/b/p/org/org-mode/lisp/ob-dot hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-dot
/home/b/p/org/org-mode/lisp/org-faces hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-faces
/home/b/p/org/org-mode/lisp/ob-calc hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-calc
/home/b/p/org/org-mode/lisp/ob-mscgen hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-mscgen
/home/b/p/org/org-mode/lisp/ob-forth hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-forth
/home/b/p/org/org-mode/lisp/ob-ref hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-ref
/home/b/p/org/org-mode/lisp/ob-awk hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-awk
/home/b/p/org/org-mode/lisp/org-agenda hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-agenda
/home/b/p/org/org-mode/lisp/org hides /home/b/p/emacs/emacs-a/clone/lisp/org/org
/home/b/p/org/org-mode/lisp/org-macro hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-macro
/home/b/p/org/org-mode/lisp/ob-J hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-J
/home/b/p/org/org-mode/lisp/ob-emacs-lisp hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-emacs-lisp
/home/b/p/org/org-mode/lisp/ob-maxima hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-maxima
/home/b/p/org/org-mode/lisp/ob-tangle hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-tangle
/home/b/p/org/org-mode/lisp/ob hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob
/home/b/p/org/org-mode/lisp/ox-publish hides /home/b/p/emacs/emacs-a/clone/lisp/org/ox-publish
/home/b/p/org/org-mode/lisp/ox-texinfo hides /home/b/p/emacs/emacs-a/clone/lisp/org/ox-texinfo
/home/b/p/org/org-mode/lisp/org-src hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-src
/home/b/p/org/org-mode/lisp/org-loaddefs hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-loaddefs
/home/b/p/org/org-mode/lisp/ob-processing hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-processing
/home/b/p/org/org-mode/lisp/ob-sass hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-sass
/home/b/p/org/org-mode/lisp/org-pcomplete hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-pcomplete
/home/b/p/org/org-mode/lisp/ob-exp hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-exp
/home/b/p/org/org-mode/lisp/ob-coq hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-coq
/home/b/p/org/org-mode/lisp/ob-groovy hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-groovy
/home/b/p/org/org-mode/lisp/ob-lisp hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-lisp
/home/b/p/org/org-mode/lisp/ob-perl hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-perl
/home/b/p/org/org-mode/lisp/org-feed hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-feed
/home/b/p/org/org-mode/lisp/ob-octave hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-octave
/home/b/p/org/org-mode/lisp/org-clock hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-clock
/home/b/p/org/org-mode/lisp/ob-screen hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-screen
/home/b/p/org/org-mode/lisp/org-plot hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-plot
/home/b/p/org/org-mode/lisp/org-archive hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-archive
/home/b/p/org/org-mode/lisp/ob-fortran hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-fortran
/home/b/p/org/org-mode/lisp/org-indent hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-indent
/home/b/p/org/org-mode/lisp/org-version hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-version
/home/b/p/org/org-mode/lisp/org-ctags hides /home/b/p/emacs/emacs-a/clone/lisp/org/org-ctags
/home/b/p/org/org-mode/lisp/ob-latex hides /home/b/p/emacs/emacs-a/clone/lisp/org/ob-latex
/home/b/.emacs.d/straight/build/soap-client/soap-client hides /home/b/p/emacs/emacs-a/clone/lisp/net/soap-client
/home/b/.emacs.d/straight/build/soap-client/soap-inspect hides /home/b/p/emacs/emacs-a/clone/lisp/net/soap-inspect
/home/b/.emacs.d/straight/build/cl-lib/cl-lib hides /home/b/p/emacs/emacs-a/clone/lisp/emacs-lisp/cl-lib
/home/b/.emacs.d/straight/build/let-alist/let-alist hides /home/b/p/emacs/emacs-a/clone/lisp/emacs-lisp/let-alist
/home/b/.emacs.d/straight/build/faceup/faceup hides /home/b/p/emacs/emacs-a/clone/lisp/emacs-lisp/faceup
/home/b/.emacs.d/straight/build/seq/seq hides /home/b/p/emacs/emacs-a/clone/lisp/emacs-lisp/seq

Features:
(shadow bbdb-message mailalias emacsbug whitespace magit-patch macros
iedit iedit-lib flycheck gnus-fun wdired compare-w tramp-cmds rfc2104
tramp-cache dired-aux pdf-sync pdf-annot pdf-outline pdf-links
pdf-history em-unix em-term term ehelp em-script em-prompt em-ls em-hist
em-pred em-glob em-dirs esh-var em-cmpl em-basic em-banner em-alias
esh-mode shr-color color url-cache expand-region text-mode-expansions
cc-mode-expansions the-org-mode-expansions python-el-fgallina-expansions
js-mode-expansions er-basic-expansions expand-region-core
expand-region-custom js iso-transl misearch multi-isearch gnus-dired
go-up ledger-mode ledger-check ledger-texi ledger-test ledger-sort
ledger-report ledger-reconcile ledger-occur ledger-fonts ledger-fontify
ledger-state ledger-complete ledger-schedule ledger-init ledger-xact
ledger-post ledger-exec ledger-navigate eshell esh-cmd esh-ext esh-opt
esh-proc esh-io esh-module esh-groups ledger-context ledger-commodities
esh-arg esh-util ledger-regex python tramp-sh tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat ls-lisp bug-reference
magit-extras magit-bookmark magit-submodule magit-obsolete magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes
magit-worktree magit-tag magit-merge magit-branch magit-reset
magit-files magit-refs magit-status magit magit-repos magit-apply
magit-wip magit-log which-func magit-diff smerge-mode magit-core
magit-autorevert autorevert filenotify magit-margin magit-transient
magit-process magit-mode transient git-commit magit-git magit-section
magit-utils log-edit pcvs-util eieio-opt speedbar sb-image ezimage
dframe herald-the-mode-line cal-move flyspell ispell sh-script smie
executable org-attach-screenshot tabify org-capture password-store
with-editor async-bytecomp async f s smiley gnus-cite qp mm-archive
mail-extr gnus-async gnus-bcklg gnus-kill gnus-ml disp-table
cursor-sensor nndir nnml nndraft nnmh nndoc utf-7 epa-file gnutls
network-stream nnfolder bbdb-gnus nnnil gnus-agent gnus-srvr gnus-score
score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime
smime dig gnus-cache gnus-demon nntp smtpmail sendmail hl-line
org-duration rase view cal-china lunar cal-islam cal-hebrew holidays
hol-loaddefs bbdb-anniv cal-iso appt diary-lib diary-loaddefs server
pinentry pdf-occur ibuf-ext ibuffer ibuffer-loaddefs tablist
tablist-filter semantic/wisent/comp semantic/wisent
semantic/wisent/wisent semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local cedet pdf-isearch
let-alist pdf-misc imenu pdf-tools compile cus-edit pdf-view bookmark
pdf-cache pdf-info pdf-util paredit elec-pair scroll-lock solar cal-dst
org-element avl-tree org-velocity dabbrev org-learn org-invoice
org-depend org-w3m org-tempo tempo org-rmail org-mhe org-irc
org-inlinetask org-info org-habit org-agenda org-gnus nnir gnus-sum
gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source
utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range message rfc822
mml mml-sec epa epg gmm-utils mailheader gnus-win org-eww org-docview
doc-view jka-compr image-mode org-crypt org-bibtex bibtex org-bbdb
ob-lua ob-sed ob-octave ob-makefile ob-forth ob-R ob-haskell ob-maxima
ob-java ob-plantuml ob-sqlite ob-sql ob-screen ob-J ob-io ob-shell shell
ob-clojure ob-scheme geiser-impl help-fns radix-tree geiser-custom
geiser-base geiser ob-gnuplot ob-dot ob-ditaa ob-lisp ob-css ob-js
ob-org ob-ledger ob-latex ob-calc calc-store calc-trail calc-ext calc
calc-loaddefs calc-macs ob-C cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs ob-python ob-awk winner
timeclock paren selectric-mode avoid image-file icomplete hack-time-mode
undo-tree diff time desktop frameset autoinsert cus-start cus-load
.emacs-custom hydra lv mw-private org-insert-context-dependent
postbank-to-ledger org-attach-embedded-images org-attach vc-git
diff-mode org-id ariadne-marks deadgrep-autoloads fit-text-scale
face-remap org-timer org-clock foldout ffap pdf-tools-autoloads
tablist-autoloads auxies-eww little-helpers mw-mark auxies-rest rect
dictionary link connection seclusion-mode seclusion-mode-autoloads
emr-autoloads iedit-autoloads clang-format-autoloads
projectile-autoloads list-utils-autoloads popup-autoloads emacsshot
emms-librefm-stream emms-librefm-scrobbler emms-playlist-limit
emms-volume emms-volume-amixer emms-i18n emms-history emms-score
emms-stream-info emms-metaplaylist-mode emms-bookmarks emms-cue
emms-mode-line-icon emms-browser sort emms-playlist-sort
emms-last-played emms-player-xine emms-player-mpd tq emms-playing-time
emms-lyrics emms-url emms-streams emms-show-all emms-tag-editor
emms-mark emms-mode-line emms-cache emms-info-opusinfo emms-info-ogginfo
emms-info-mp3info emms-info later-do emms-playlist-mode emms-player-vlc
emms-player-mpv emms-player-mplayer emms-player-simple
emms-source-playlist emms-source-file emms-setup emms emms-compat
page-ext eww mm-url gnus nnheader gnus-util rmail rmail-loaddefs
mail-utils wid-edit thingatpt url-queue date-at-point skeleton
major-mode-stack reverse-words carry-region rase-autoloads
flycheck-package-autoloads package-lint-autoloads flycheck-autoloads
let-alist-autoloads md4rd-autoloads tree-mode-autoloads
request-autoloads hierarchy-autoloads debbugs-autoloads
soap-client-autoloads lyrics-autoloads supercite regi rx ed
org-section-numbers keystrokes gopher derived shr text-property-search
svg dom bbdb-mua bbdb-com crm mailabbrev bbdb bbdb-site timezone
bbdb-loaddefs beginend org-bullets cider-autoloads sesman-autoloads
seq-autoloads spinner-autoloads queue-autoloads pkg-info-autoloads
epl-autoloads parseedn-autoloads parseclj-autoloads a-autoloads
clojure-mode-autoloads finder-inf hack-time-mode-autoloads
evil-autoloads goto-chg-autoloads undo-tree-autoloads deft-autoloads
magit-autoloads transient-autoloads git-commit-autoloads company-oddmuse
company-keywords company-etags etags fileloop generator xref project
company-gtags company-dabbrev-code company-dabbrev company-files
company-capf company-cmake company-xcode company-clang company-semantic
company-eclim company-template company-bbdb company pcase
company-autoloads ztree-autoloads form-feed-autoloads wrap-region dash
wrap-region-autoloads underline-with-char-autoloads ert pp ewoc debug
backtrace paredit-autoloads go-up-autoloads rope-read-mode-autoloads
herald-the-mode-line-autoloads pass-autoloads
password-store-otp-autoloads password-store-autoloads
with-editor-autoloads async-autoloads f-autoloads s-autoloads
racket-mode-autoloads faceup-autoloads mastodon-autoloads
lua-mode-autoloads gited-autoloads quarter-plane-autoloads
auto-correct-autoloads dired-narrow-autoloads
dired-hacks-utils-autoloads filladapt-autoloads ido-hacks ido
ido-hacks-autoloads geiser-autoloads hydra-autoloads lv-autoloads
key-chord key-chord-autoloads pinentry-autoloads expand-region-autoloads
ledger-mode-autoloads dictionary-autoloads link-autoloads
connection-autoloads avy avy-autoloads haskell-mode-autoloads
evil-numbers-autoloads impatient-mode-autoloads htmlize-autoloads
simple-httpd-autoloads aurel-autoloads bui-autoloads dash-autoloads
org-attach-screenshot-autoloads markdown-mode-autoloads
selectric-mode-autoloads org-pretty-tags elpher-autoloads chronos
notifications dbus chronos-autoloads sly-autoloads dired-du-autoloads
cl-lib-autoloads folding-isearch folding cl straight-autoloads cl-extra
help-mode straight hyperbole hinit hibtypes hib-doc-id hsys-www klink
hib-kbd hib-social hib-debbugs debbugs-gnu add-log debbugs soap-client
mm-decode mm-bodies mm-encode url-http url-auth mail-parse rfc2231
rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm rmc puny url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util mailcap warnings rng-xsd rng-dt rng-util xsd-regexp
xml hsys-org hactypes hui-mini hui hui-mouse hmouse-key hargs hui-menu
hyrolo-menu hyrolo hmail hui-jmenu hmouse-sh hmouse-drv hypb locate
dired dired-loaddefs hui-window pulse hycontrol hsettings hui-em-but
hbut hact hpath hhist hbdata htz cal-julian hbmap hmoccur browse-url
hui-select hvar set hversion hload-path org-protocol ob-keys edmacro
kmacro org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-color
ring org-list org-faces org-entities time-date noutline outline
easy-mmode org-version ob-emacs-lisp ob-core ob-eval org-table ol
org-keys org-compat advice org-macs org-loaddefs format-spec find-func
cal-menu calendar cal-loaddefs mule-util info kotl-autoloads package
easymenu epg-config url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache json subr-x map
url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode
lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 1278117 187138)
 (symbols 48 62299 1)
 (strings 32 355262 31866)
 (string-bytes 1 13502087)
 (vectors 16 176600)
 (vector-slots 8 2735975 260200)
 (floats 8 2139 1926)
 (intervals 56 45668 415)
 (buffers 992 181))

-- 
Marco Wahl
From fd1d67b159439717e46b6697f8443f5504412896 Mon Sep 17 00:00:00 2001
From: Marco Wahl <[email-masked]>
Date: Thu, 4 Jul 2019 12:42:18 +0200
Subject: [PATCH] Option to allow scroll up at eob

* lisp/scroll-lock.el (scroll-lock-switch-to-forward-line-at-eob): New
  customizable variable.
* lisp/scroll-lock.el (scroll-lock-next-line): Respect setting of
  `scroll-lock-switch-to-forward-line-at-eob'.
---
 lisp/scroll-lock.el | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lisp/scroll-lock.el b/lisp/scroll-lock.el
index 8281edb172..506bf53727 100644
--- a/lisp/scroll-lock.el
+++ b/lisp/scroll-lock.el
@@ -30,6 +30,10 @@
 
 ;;; Code:
 
+(defcustom scroll-lock-switch-to-forward-line-at-eob
+  t
+  "If set then don't scroll if the end of buffer is visible.")
+
 (defvar scroll-lock-mode-map
   (let ((map (make-sparse-keymap)))
     (define-key map [remap next-line] 'scroll-lock-next-line)
@@ -86,7 +90,8 @@ scroll-lock-next-line
   (interactive "p")
   (or arg (setq arg 1))
   (scroll-lock-update-goal-column)
-  (if (pos-visible-in-window-p (point-max))
+  (if (and scroll-lock-switch-to-forward-line-at-eob
+           (pos-visible-in-window-p (point-max)))
       (forward-line arg)
     (scroll-up arg))
   (scroll-lock-move-to-column scroll-lock-temporary-goal-column))
-- 
2.22.0