Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collecting User Information & Experiences #18

Open
jdtsmith opened this issue Jan 10, 2025 · 19 comments
Open

Collecting User Information & Experiences #18

jdtsmith opened this issue Jan 10, 2025 · 19 comments
Labels
help wanted Extra attention is needed

Comments

@jdtsmith
Copy link
Owner

jdtsmith commented Jan 10, 2025

As I learned writing indent-bars, it can be challenging to write cross-platform graphically intensive package in Emacs, because individual ports, builds, and systems actually vary widely in capabilities. What is documented in the manual to be a basic feature may work only on some builds. When you count all the various graphical backends and options, the number of build "flavors" is in the many dozens. And in ultra-scroll, we also add the complexity of the underlying input hardware (mouse or trackpad).

I am unable to test most combinations of systems, OS, and hardware, so rely on user experience. If you have tried ultra-scroll and had a positive or negative experience, please help out by mentioning the following:

User Input Survey

  1. What system are you on (paste results of (emacs-version))?
  2. Any related build flags (e.g. --xinput2 for Linux people)?
  3. What does M-x ultra-scroll-check report after you send events (e.g. "Normal scroll events")?
  4. What input hardware did you try?
  5. Any special configuration to your desktop system, window manager, etc. you need to configure?
  6. Did ultra-scroll work for you?
  7. Did it provide smooth scrolling?
  8. Does it give you "momentum" scrolling? (i.e. continued scrolling after you lift your fingers)
  9. Did it alleviate issues scrolling tall images?
  10. Any other notes or comments?

Please keep it brief and don't discuss issues here (you can open a new issue). Just the facts. Thanks!

@jdtsmith
Copy link
Owner Author

jdtsmith commented Jan 10, 2025

I'll start:

emacs-mac + NS on MacOS 15.2, both working

  1. GNU Emacs 29.4 (build 1, aarch64-apple-darwin24.2.0, Carbon Version 170 AppKit 2575.3) of 2025-01-07, and also GNU Emacs 29.4 (build 2, aarch64-apple-darwin24.2.0, NS appkit-2575.30 Version 15.2 (Build 24C101)) of 2024-12-23
  2. None
  3. Native Comp Detected, Normal pixel scroll data: -47.0 to -1.0 (-16.73 mean)
  4. Logitech MX Master, a Cheap click USB-dongle mouse, MacBook trackpad.
  5. No, smooth scrolling and momentum scrolling are built-in to MacOS. I used LogOptions+ to set the MXMaster scroll rate and enable smooth scroll (simulating a trackpad).
  6. Yes, on all 3 devices.
  7. Yes, scrolling is smooth.
  8. Yes, momentum is provided by MacOS and works well.
  9. Yes, tall images work fine.
  10. Thanks (self) for ultra-scroll :) !

jdtsmith added a commit that referenced this issue Jan 10, 2025
@jdtsmith jdtsmith added the help wanted Extra attention is needed label Jan 10, 2025
@idlip
Copy link

idlip commented Jan 13, 2025

Hi, thanks for extending this for all builds.

Emacs-pgtk, Nixos

  1. GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.43, cairo version 1.18.2)

  2. Latest package (emacs-pgtk, 31.0.50) from emacs-overlay

  3. Native Comp Detected

    • Trackpad: Normal pixel scroll data: 100.0 to 134.8 (105.00 mean)
    • Redragon Mouse:
      pixel-scroll-precision-mode nil: Normal pixel scroll data: 179.4 to 229.4 (196.77 mean)
      pixel-scroll-precision-mode t: WARNING, all pixel scroll values == 150.00 No real pixel scroll data stream?
  4. Trackpad, redragon Mouse

  5. No, I use niri wayland WM

  6. Yes

  7. Yes

  8. Yes, I can observe this after recent commits

  9. Can't wait for it to be up-streamed. Cheers ;)

@jdtsmith
Copy link
Owner Author

Thanks. In recent builds, ultra-scroll turns on pixel-scroll-precision-mode, so you shouldn't set that separately. Probably the real underlying difference is mwheel-coalesce-scroll-events being on in the "not working" case. Can you investigate?

@idlip
Copy link

idlip commented Jan 13, 2025

Probably the real underlying difference is mwheel-coalesce-scroll-events being on in the "not working" case. Can you investigate?

That is nil only
Edit: This might be similar to #6 (since we use nixos, emacs-pgtk)

@jdtsmith
Copy link
Owner Author

Well, pixel-scroll-precision-mode in fact turns it on, so it can't be "only" nil...

@zonuexe
Copy link

zonuexe commented Jan 13, 2025

Emacs 30.0.93(NS) + macOS 15.2

  1. GNU Emacs 30.0.93 (build 1, aarch64-apple-darwin21.6.0, NS appkit-2113.65 Version 12.7.6 (Build 21H1320)) of 2024-12-20 (Emacs For Mac OS X's build)
  2. None
  3. Scroll your mouse wheel or track-pad slow then fast to generate 30 events
  4. MacBook Pro (14", 2021) built-in trackpad
  5. No
  6. Yes, no problem.
  7. Excellent, very comfortable.
  8. Looks good
  9. No errors. I am a pdf-tools user and I have not seen any negative effects.
  10. Thank you for your great work!

@roshanshariff
Copy link

roshanshariff commented Jan 14, 2025

Emacs 29.4 (Lucid+X11) on Fedora 41

  1. GNU Emacs 29.4 (build 1, x86_64-redhat-linux-gnu, X toolkit, cairo version 1.18.2, Xaw3d scroll bars) of 2025-01-03
  2. --with-x-toolkit=lucid --with-xinput2
  3. ** 30 scroll events detected in 2.52s (11.9 events/s) *** Normal pixel scroll data: 12.4 to 49.8 (13.28 mean)
  4. Logitech MX Master 2S
  5. Running on XWayland
  6. Yes
  7. Yes, including high-resolution mouse wheel events
  8. No, but I don't expect momentum with mouse wheels
  9. Not tested with images
  10. My mouse supports a high resolution scroll wheel, which reports pixel-delta values as you rotate the wheel at a higher rate than once per detent

Emacs 29.4 (PGTK) on Fedora 41

  1. GNU Emacs 29.4 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.43, cairo version 1.18.2) of 2025-01-03
  2. --with-pgtk
  3. ** 30 scroll events detected in 5.04s (5.9 events/s) *** WARNING, all pixel scroll values == -100.00 No real pixel scroll data stream? ** (try again, or use pixel-scroll-precision instead)
  4. Logitech MX Master 2S
  5. Running on Wayland without X11
  6. No
  7. No
  8. No
  9. Not tested with images
  10. It appears that GTK3 (which is used by Emacs PGTK) does not support high-resolution scroll events with mouse wheels, only trackpads. There in an unmerged PR to backport this feature from GTK4.

Emacs 29.4 (GTK+X11) on Fedora 41

  1. GNU Emacs 29.4 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.43, cairo version 1.18.2) of 2025-01-03
  2. --with-x-toolkit=gtk3 --with-xinput2
  3. ** 30 scroll events detected in 0.65s (45.9 events/s) *** Normal pixel scroll data: 4.4 to 17.7 (4.71 mean)
  4. Logitech MX Master 2S
  5. Running on XWayland
  6. Yes
  7. Yes, including high-resolution mouse wheel events
  8. No momentum
  9. Not tested with images
  10. Unlike the PGTK version, the GTK+X11 version of Emacs uses XInput2 to get high-resolution mouse wheel events rather than relying on GTK alone.

NOTE: If you're trying to get some background on high-resolution mouse wheel support in Linux, this issue has links to the implementation status and some blog posts. It should work correctly in Chromium and GTK4+ apps, but not in GTK3 apps like Firefox.

@rdiaz02
Copy link

rdiaz02 commented Jan 14, 2025

Emacs 30.0.93, Lucid + X11 on Debian

  1. GNU Emacs 30.0.93 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.18.2, Xaw scroll bars) of 2024-12-26
  2. --without-xaw3d --with-x-toolkit=lucid --with-xinput2
* Native Comp Detected

 ** 30 scroll events detected in 5.03s (6.0 events/s)
 *** Normal pixel scroll data: 64.1 to 128.2 (64.08 mean)

But that is variable. I repeated and now I get

** 30 scroll events detected in 19.99s (1.5 events/s)
 *** WARNING, all pixel scroll values == 48.81 No real pixel scroll data stream?
 ** (try again, or use pixel-scroll-precision instead)

Trackpad or mouse wheel, both can give the same warning and both can give the non-warning in the same Emacs frame. I can't see a pattern.

  1. Microsoft USB Mouse, Dell Precision Laptop trackpad
  2. No
  3. Yes
  4. Yes (though the mouse wheel I think is restricted to very noticeable discrete jumps, also in browsers and other programs)
  5. Yes (from the trackpad; I think mouse wheel cannot provide momentum)
  6. YES! I can comfortably scroll over tall images in org mode :-)
  7. None.

Emacs 30.0.93, GTK + X11 on Debian

  1. GNU Emacs 30.0.93 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.43, cairo version 1.18.2) of 2024-12-23
  2. --without-xaw3d --with-x-toolkit=gtk3 --with-xinput2
  3. As above, this is variable. Some times
** 30 scroll events detected in 8.22s (3.6 events/s)
 *** Normal pixel scroll data: 10.6 to 15.4 (14.72 mean)

and sometimes

** 30 scroll events detected in 9.85s (3.0 events/s)
 *** WARNING, all pixel scroll values == -95.41 No real pixel scroll data stream?
 ** (try again, or use pixel-scroll-precision instead)

Trackpad or mouse wheel, both can give the same warning and both can give the non-warning in the same Emacs frame. I can't see a pattern.
4. Microsoft USB Mouse, Dell Precision Laptop trackpad
5. No
6. Yes
7. Yes (though the mouse wheel I think is restricted to very noticeable discrete jumps, also in browsers and other programs)
8. Yes (from the trackpad; I think mouse wheel cannot provide momentum)
9. YES! I can comfortably scroll over tall images in org mode :-)
10. None.

@jdtsmith
Copy link
Owner Author

If your mouse gives fairly granular scroll events (at a fairly low rate too I noticed, my fastest mouse reaches 120 events/s), this could explain occasional "all events the same" warnings. Try accelerating your scroll during ultra-scroll-check. Maybe your hardware/system is "intermediate" in providing a slightly varying stream of pixel scroll info. Linux is truly the Wild West when it comes to input.

@pkryger
Copy link

pkryger commented Jan 15, 2025

emacs-mac 29.4 on macOS 15.2

  1. GNU Emacs 29.4 (build 1, aarch64-apple-darwin24.0.0, Carbon Version 170 AppKit 2566)
  2. Installed with: brew install emacs-mac --HEAD --wiht-natural-title-bar --with-native-compilation --with-xwidgets --with-librsvg, commit:
    7cc5e67629363d9e98f65e4e652f83bb4e0ee674
  3. Native Comp Detected, Normal pixel scroll data: 1.0 to 48.0 (13.87 mean)
  4. Built in trackpad on macBook Air M2
  5. No special configuration
  6. Yes, ultra-scroll does work
  7. Yes, scrolling is smooth
  8. Yes, I can see "momentum" scrolling
  9. I haven't try images
  10. Great package, can wait for upstream! I have
    show-paren-context-when-offscreen set to overlay. When I used to use
    ultra-scroll-mac (commit: 07fbe0d), and
    after a scroll first line was not fully visible the show paren overlay that
    displayed on it was not visible either. This has is happening less often on
    the most recent commit (64ad7be), as it
    seems to realign buffer when point changes line. Although, if you put a
    point in the line with the closing paren (just before it), and the opening
    paren is not visible, and then scroll such that first line is only
    partially visible, the overlay is not fully visible.
    This is what I get: Screenshot 2025-01-15 at 16 58 54, while expecting: Screenshot 2025-01-15 at 16 59 15

@okomestudio
Copy link

Emacs 30.0.93, PGTK on Debian 12

  • GNU Emacs 30.0.93 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.16.0)
  • --with-pgtk --with-x-toolkit=gtk
  • With Kensington SlimBlade Trackball (via USB): Native Comp Detected; all pixel scroll values == 150.00 No real pixel scroll data stream?; With HHKB Studio Pointing Stick (via USB): Native Comp Detected; all pixel scroll values == -150.00 No real pixel scroll data stream?
  • (1) Kensington SlimBlade Trackball (2) HHKB Studio Pointing Stick
  • No special configuration with KDE; using keyd (https://github.com/rvaiya/keyd) but only for key remapping
  • When active, it improves the large image scrolling, but it seems to disable the pixel scroll precision natively offered by Emacs
  • No; see the previous answer. When I disable ultra-scroll and re-activate pixel-scroll-precision-mode, it works again
  • No; see the previous answer.
  • Yes.
  • Thanks for the package development effort. The glitch-y scrolling on large images is what has prevented me from using precision scrolling, so it would be nice if ultra-scroll worked in my setting. It doesn't seem to quite work fully yet.

@jdtsmith
Copy link
Owner Author

Thanks for the report. See compatibility.

Pixel-scroll-precision uses interpolation for devices/systems like yours that do not provide pixel scroll information. Looks like there are lots of other users with success on Linux; maybe see if you can find a solution?

@jdtsmith
Copy link
Owner Author

emacs-mac 29.4 on macOS 15.2

Can you open a separate issue for this?

`show-paren-context-when-offscreen` set to `overlay`.  When I used to use

`ultra-scroll-mac` (commit: 07fbe0d10ec0d68207cbe0675c139f31d2b4d516), and

after a scroll first line was not fully visible the show paren overlay that

displayed on it was not visible either. This has is happening less often on

the most recent commit (64ad7be02e11317576498dabb15c92cf31e2c04c), as it

seems to realign buffer when point changes line. Although, if you put a

point in the line with the closing paren (just before it), and the opening

paren is not visible, and then scroll such that first line is only

partially visible, the overlay is not fully visible.

This is what I get: <img width="215" alt="Screenshot 2025-01-15 at 16 58 54" src="https://github.com/user-attachments/assets/b47b1187-ec43-46b1-b5bc-aa5592cd2649" />, while expecting:  <img width="172" alt="Screenshot 2025-01-15 at 16 59 15" src="https://github.com/user-attachments/assets/82cbd07f-ec75-4d68-bca6-aebb9649377a" />

@okomestudio
Copy link

Pixel-scroll-precision uses interpolation for devices/systems like yours that do not provide pixel scroll information. Looks like there are lots of other users with success on Linux; maybe see if you can find a solution?

@jdtsmith My question would be: Does "working in Linux" here means that it is possible for me to find a way to activate ultra-scroll (so that I can get the benefit of the fix for tall images) while letting the pixel scrolling fully fall back to the builtin pixel-scroll? From the compatibility section of readme, that part wasn't entirely clear to me.

@jdtsmith
Copy link
Owner Author

If you mean let pixel-scroll-precision fake smooth scrolling via interpolation, but somehow also have ultra-scroll's ability to scroll past tall images: no, that's not an option. Three options:

  1. Use pixel-scroll-precision to interpolate (fake) smooth scrolling for you.
  2. Use ultra-scroll for good handling of images, but your scrolling will be line-by-line.
  3. Update your system and (if needed) hardware to get the best of both worlds.

@pkryger
Copy link

pkryger commented Jan 16, 2025

emacs-mac 29.4 on macOS 15.2

Can you open a separate issue for this?

Opened: #20

@AjaiKN
Copy link

AjaiKN commented Jan 20, 2025

  1. GNU Emacs 30.0.93 (build 2, aarch64-apple-darwin24.1.0, NS appkit-2575.20 Version 15.1.1 (Build 24B91))
    of 2025-01-10
  2. None
* Native Comp Detected

** 30 scroll events detected in 1.24s (24.3 events/s)
*** Normal pixel scroll data: 0.0 to 132.0 (32.50 mean)
  1. MacBook trackpad
  2. None
  3. Yes, very well!
  4. Yes
  5. Yes
  6. I don't scroll tall images much, so I'm not sure
  7. Thank you! I can't stress enough how much this package has improved my experience with Emacs. I used it with emacs-mac when it was called ultra-scroll-mac (and that was the primary reason I was using emacs-mac). Now that it no longer requires emacs-mac, I've switched to homebrew-emacs-plus.

@mooseyboots
Copy link

mooseyboots commented Jan 22, 2025

Emacs 31.0.50, Linux, Debian stable, xfce

  1. GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.16.0) of 2024-12-27
  2. Nothing fancy (I forget exactly). Native comp is active.
 ** 30 scroll events detected in 0.73s (41.3 events/s)
 *** Normal pixel scroll data: 7.1 to 74.9 (35.55 mean)
  1. Thinkpad trackpad. (USB mousewheel scrolling is also changed: it is less jumpy, but it isn't momentum/super-smooth pixel style, seems ok like that)
  2. Not particularly
  3. Yes
  4. Yes
  5. Yes
  6. Yes
  7. Apart from the issue i opened here, I also get a slightly funny jump sometimes when typing text after scrolling. I'll see if I can catch it again and work out if its an actual issue (or perhaps it's expected). Thanks for the project!

@jdtsmith
Copy link
Owner Author

Regarding the "funny small jump", that happens after you end a scroll with a non-zero vscroll, since line-move and friends reset it. Since many parts of emacs insist on vscroll=0, and smooth scrolling requires vscroll != 0, a jump has to happen sometime.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

9 participants