mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-01 12:17:25 -05:00
module: add :ui smooth-scroll
Normally, this would be too small to warrant its own module, but smooth scrolling is one of those things that can tip large swaths of fence-sitting beginners into Emacs' camp. I can't help but imagine how many people get their impression that Emacs is "laggy" or "slow" solely from the way it scrolls. Don't get me wrong, there *are* good reasons to call Emacs slow, but startup and scrolling speed are not it, yet they are easily overblown because it's the first thing you see. I might even consider enabling this by default, but I'll make that decision later. Fix: #8335
This commit is contained in:
1
.github/CODEOWNERS
vendored
1
.github/CODEOWNERS
vendored
@ -154,6 +154,7 @@ modules/ui/nav-flash @doomemacs/ui-nav-flash
|
||||
modules/ui/neotree @doomemacs/ui-neotree
|
||||
modules/ui/ophints @doomemacs/ui-ophints
|
||||
modules/ui/popup @doomemacs/ui-popup
|
||||
modules/ui/smooth-scroll @doomemacs/ui-smooth-scroll
|
||||
modules/ui/tabs @doomemacs/ui-tabs
|
||||
modules/ui/treemacs @doomemacs/ui-treemacs
|
||||
modules/ui/unicode @doomemacs/ui-unicode
|
||||
|
72
modules/ui/smooth-scroll/README.org
Normal file
72
modules/ui/smooth-scroll/README.org
Normal file
@ -0,0 +1,72 @@
|
||||
#+title: :ui smooth-scroll
|
||||
#+subtitle: So smooth you won't believe it's not butter
|
||||
#+created: April 1, 2025
|
||||
#+since: 25.05.0
|
||||
|
||||
* Description :unfold:
|
||||
This module activates OS-independent smooth scrolling in Emacs. This primarily
|
||||
benefits trackpad and scroll wheel users (not so much those that scroll via
|
||||
their keyboards), by utilizing the [[https://github.com/jdtsmith/ultra-scroll][ultra-scroll]] package.
|
||||
|
||||
#+begin_quote
|
||||
For optimal performance from this module, it's highly recommended you use
|
||||
Emacs with native-compilation. MacOS users may also have a better experience
|
||||
using the [[https://bitbucket.org/mituharu/emacs-mac][emacs-mac]] fork of Emacs, available via Homebrew.
|
||||
#+end_quote
|
||||
|
||||
** Maintainers
|
||||
- [[doom-user:][@hlissner]]
|
||||
|
||||
[[doom-contrib-maintainer:][Become a maintainer?]]
|
||||
|
||||
** Module flags
|
||||
/This module has no flags./
|
||||
|
||||
** Packages
|
||||
- [[doom-package:ultra-scroll]]
|
||||
|
||||
** Hacks
|
||||
/No hacks documented for this module./
|
||||
|
||||
** TODO Changelog
|
||||
# This section will be machine generated. Don't edit it by hand.
|
||||
/This module does not have a changelog yet./
|
||||
|
||||
* Installation
|
||||
[[id:01cffea4-3329-45e2-a892-95a384ab2338][Enable this module in your ~doom!~ block.]]
|
||||
|
||||
/This module has no external requirements./
|
||||
|
||||
* Usage
|
||||
This module only needs to be activated to experience its benefits.
|
||||
|
||||
* TODO Configuration
|
||||
#+begin_quote
|
||||
This module has no configuration documentation yet. [[doom-contrib-module:][Write some?]]
|
||||
#+end_quote
|
||||
|
||||
* Troubleshooting
|
||||
This module should work on any platform that provides pixel-level scrolling
|
||||
information from your input hardware, but if you run into issues, here are some
|
||||
things to try:
|
||||
|
||||
- Use ~M-x ultra-scroll-check~ to diagnose common issues. Visit [[https://github.com/jdtsmith/ultra-scroll?tab=readme-ov-file#compatibility][ultra-scroll's
|
||||
documentation]] for more on interpreting and acting on its results.
|
||||
- Read ultra-scroll's documentation on [[https://github.com/jdtsmith/ultra-scroll?tab=readme-ov-file#Speed][scrolling speed]]; it outlines common
|
||||
factors that may impact it and how to mitigate them.
|
||||
- See Doom's "[[https://discourse.doomemacs.org/t/why-is-emacs-doom-slow/83/3][Why is Emacs/Doom slow?]]" write-up, where Doom's author documents
|
||||
common factors that can slow Emacs down in general (not specifically to do
|
||||
with scrolling) and what to do about them.
|
||||
|
||||
If all else fails, let us know on [[https://discourse.doomemacs.org][Discourse]] or [[https://doomemacs.org/discord][Discord]]. Only file an issue if
|
||||
you have a good idea what's causing the problem or have an explicit error to
|
||||
report (performance issues, in general, tend to be the result of *many* factors
|
||||
and are the greatest source of false positives on our issue tracker).
|
||||
|
||||
* Frequently asked questions
|
||||
/This module has no FAQs yet./ [[doom-suggest-faq:][Ask one?]]
|
||||
|
||||
* TODO Appendix
|
||||
#+begin_quote
|
||||
This module has no appendix yet. [[doom-contrib-module:][Write one?]]
|
||||
#+end_quote
|
8
modules/ui/smooth-scroll/config.el
Normal file
8
modules/ui/smooth-scroll/config.el
Normal file
@ -0,0 +1,8 @@
|
||||
;;; ui/smooth-scroll/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package! ultra-scroll
|
||||
:hook (doom-first-input . ultra-scroll-mode)
|
||||
:hook (doom-first-file . ultra-scroll-mode)
|
||||
:init
|
||||
(setq scroll-conservatively 101
|
||||
scroll-margin 0))
|
6
modules/ui/smooth-scroll/packages.el
Normal file
6
modules/ui/smooth-scroll/packages.el
Normal file
@ -0,0 +1,6 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; ui/smooth-scroll/packages.el
|
||||
|
||||
(package! ultra-scroll
|
||||
:recipe (:host github :repo "jdtsmith/ultra-scroll")
|
||||
:pin "b72c507f6702db18d971a6b6bdc692e260f21159")
|
@ -43,6 +43,7 @@
|
||||
;;neotree ; a project drawer, like NERDTree for vim
|
||||
ophints ; highlight the region an operation acts on
|
||||
(popup +defaults) ; tame sudden yet inevitable temporary windows
|
||||
;;smooth-scroll ; So smooth you won't believe it's not butter
|
||||
;;tabs ; a tab bar for Emacs
|
||||
;;treemacs ; a project drawer, like neotree but cooler
|
||||
;;unicode ; extended unicode support for various languages
|
||||
|
Reference in New Issue
Block a user