mirror of
https://github.com/jimeh/.emacs.d.git
synced 2026-02-19 13:46:41 +00:00
feat(ui): define custom siren-pixel-scroll-mode
This makes it easy to toggle all per-pixel scrolling related settings on and off.
This commit is contained in:
@@ -12,17 +12,36 @@
|
||||
:straight (:type built-in)
|
||||
:if window-system
|
||||
|
||||
:custom
|
||||
;; Only affects keyboard-based scrolling when pixel scrolling is enabled.
|
||||
(scroll-preserve-screen-position 'always)
|
||||
(scroll-margin 0)
|
||||
(pixel-scroll-precision-interpolate-page t)
|
||||
(pixel-scroll-precision-large-scroll-height 40.0)
|
||||
(pixel-scroll-precision-interpolation-factor 30)
|
||||
(pixel-scroll-precision-use-momentum (not (eq system-type 'darwin)))
|
||||
:preface
|
||||
(defvar siren-pixel-scroll--original-scroll-margin scroll-margin)
|
||||
(defvar siren-pixel-scroll--original-scroll-preserve-screen-position
|
||||
scroll-preserve-screen-position)
|
||||
|
||||
(define-minor-mode siren-pixel-scroll-mode
|
||||
"enable pixel-scroll-precision-mode with other tweaks."
|
||||
:global t
|
||||
(if siren-pixel-scroll-mode
|
||||
(progn
|
||||
(setq pixel-scroll-precision-interpolate-page t)
|
||||
(setq pixel-scroll-precision-large-scroll-height 40.0)
|
||||
(setq pixel-scroll-precision-interpolation-factor 30)
|
||||
(setq pixel-scroll-precision-use-momentum
|
||||
(not (eq system-type 'darwin)))
|
||||
(setq siren-pixel-scroll--original-scroll-margin scroll-margin)
|
||||
(setq scroll-margin 0)
|
||||
(setq siren-pixel-scroll--original-scroll-preserve-screen-position
|
||||
scroll-preserve-screen-position)
|
||||
(setq scroll-preserve-screen-position 'always)
|
||||
|
||||
(pixel-scroll-precision-mode +1))
|
||||
(progn
|
||||
(pixel-scroll-precision-mode -1)
|
||||
(setq scroll-margin siren-pixel-scroll--original-scroll-margin)
|
||||
(setq scroll-preserve-screen-position
|
||||
siren-pixel-scroll--original-scroll-preserve-screen-position))))
|
||||
|
||||
:config
|
||||
(pixel-scroll-precision-mode +1)))
|
||||
(siren-pixel-scroll +1)))
|
||||
|
||||
(provide 'siren-pixel-scroll)
|
||||
;;; siren-pixel-scroll.el ends here
|
||||
|
||||
Reference in New Issue
Block a user