unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#57526: 29.0.50; Precise pixel-scrolling works great with touchpad but not with mouse wheel
@ 2022-09-01 13:48 Tassilo Horn
  2022-09-02  1:15 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 9+ messages in thread
From: Tassilo Horn @ 2022-09-01 13:48 UTC (permalink / raw)
  To: 57526


1. emacs -Q
2. In *scratch* evaluate

(pixel-scroll-mode 1)
(setq pixel-scroll-precision-use-momentum t)
(pixel-scroll-precision-mode 1)

The result for me is that scrolling with my notebook's touchpad is
precise and uses momentum.  But scrolling with the mouse wheel seems to
scroll about 8 lines with each "click" of the wheel in one redisplay (so
it's not smooth at all) and there seems to be no momentum (which is
probably correct because the wheel doesn't give the ability to stop
momentum scrolling).  C-h k reports that wheel-down/up are bound to
pixel-scroll-precision.  On the touchpad it seems next to wheel-down/up
events a final touch-end event is generated starting the momentum
scrolling.

The reason for the difference is that the EVENTs passed to
pixel-scroll-precision have very different delta values.  The touchpad
events command emacs to scroll about 20 pixels, the mouse wheel events
command it to scroll 150 pixels.

I see there's some interpolation feature which might be relevant but I
don't get into that code path because (device-class last-event-frame
last-event-device) returns core-keyboard instead of mouse.  I get that
value in both the case where I scrolled using touchpad as well as mouse.
When I typed something with the real keyboard, it says just keyboard.


In GNU Emacs 29.0.50 (build 13, x86_64-pc-linux-gnu, GTK+ Version
 3.24.34, cairo version 1.17.6) of 2022-09-01 built on thinkpad-t440p
Repository revision: 67b85decc7702c24f2904e60e3eecfc2bfca5ab6
Repository branch: master
System Description: Arch Linux

Configured using:
 'configure --with-pgtk --with-native-compilation --with-xinput2'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS WEBP XIM GTK3 ZLIB

Important settings:
  value of $LC_MONETARY: de_DE.utf8
  value of $LC_NUMERIC: de_DE.utf8
  value of $LC_TIME: de_DE.utf8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: ELisp/l

Minor modes in effect:
  symbol-overlay-mode: t
  display-fill-column-indicator-mode: t
  editorconfig-mode: t
  debbugs-browse-mode: t
  hl-todo-mode: t
  global-aggressive-indent-mode: t
  aggressive-indent-mode: t
  pdf-occur-global-minor-mode: t
  dirvish-override-dired-mode: t
  diredfl-global-mode: t
  which-key-mode: t
  highlight-parentheses-mode: t
  global-corfu-mode: t
  corfu-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  outline-minor-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  auto-revert-mode: t
  bug-reference-prog-mode: t
  vertico-mode: t
  marginalia-mode: t
  minibuffer-depth-indicate-mode: t
  electric-pair-mode: t
  recentf-mode: t
  pixel-scroll-precision-mode: t
  pixel-scroll-mode: t
  override-global-mode: t
  save-place-mode: t
  savehist-mode: t
  shell-dirtrack-mode: t
  puni-global-mode: t
  puni-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
~/Repos/el/mu/build/mu4e/mu4e hides ~/Repos/el/mu/mu4e/mu4e
~/Repos/el/mu/build/mu4e/mu4e-main hides ~/Repos/el/mu/mu4e/mu4e-main
~/Repos/el/mu/build/mu4e/mu4e-view hides ~/Repos/el/mu/mu4e/mu4e-view
~/Repos/el/mu/build/mu4e/mu4e-org hides ~/Repos/el/mu/mu4e/mu4e-org
~/Repos/el/mu/build/mu4e/mu4e-lists hides ~/Repos/el/mu/mu4e/mu4e-lists
~/Repos/el/mu/build/mu4e/mu4e-actions hides ~/Repos/el/mu/mu4e/mu4e-actions
~/Repos/el/mu/build/mu4e/mu4e-helpers hides ~/Repos/el/mu/mu4e/mu4e-helpers
~/Repos/el/mu/build/mu4e/mu4e-search hides ~/Repos/el/mu/mu4e/mu4e-search
~/Repos/el/mu/build/mu4e/mu4e-server hides ~/Repos/el/mu/mu4e/mu4e-server
~/Repos/el/mu/build/mu4e/mu4e-obsolete hides ~/Repos/el/mu/mu4e/mu4e-obsolete
~/Repos/el/mu/build/mu4e/mu4e-update hides ~/Repos/el/mu/mu4e/mu4e-update
~/Repos/el/mu/build/mu4e/mu4e-context hides ~/Repos/el/mu/mu4e/mu4e-context
~/Repos/el/mu/build/mu4e/mu4e-draft hides ~/Repos/el/mu/mu4e/mu4e-draft
~/Repos/el/mu/build/mu4e/mu4e-bookmarks hides ~/Repos/el/mu/mu4e/mu4e-bookmarks
~/Repos/el/mu/build/mu4e/mu4e-message hides ~/Repos/el/mu/mu4e/mu4e-message
~/Repos/el/mu/build/mu4e/mu4e-compose hides ~/Repos/el/mu/mu4e/mu4e-compose
~/Repos/el/mu/build/mu4e/mu4e-headers hides ~/Repos/el/mu/mu4e/mu4e-headers
~/Repos/el/mu/build/mu4e/mu4e-mark hides ~/Repos/el/mu/mu4e/mu4e-mark
~/Repos/el/mu/build/mu4e/mu4e-contacts hides ~/Repos/el/mu/mu4e/mu4e-contacts
~/Repos/el/mu/build/mu4e/mu4e-icalendar hides ~/Repos/el/mu/mu4e/mu4e-icalendar
~/Repos/el/mu/build/mu4e/mu4e-folders hides ~/Repos/el/mu/mu4e/mu4e-folders
~/Repos/el/mu/build/mu4e/mu4e-speedbar hides ~/Repos/el/mu/mu4e/mu4e-speedbar
~/Repos/el/mu/build/mu4e/mu4e-contrib hides ~/Repos/el/mu/mu4e/mu4e-contrib
~/Repos/el/mu/build/mu4e/mu4e-vars hides ~/Repos/el/mu/mu4e/mu4e-vars
/home/horn/.emacs.d/elpa/transient-20220806.2224/transient hides /home/horn/Repos/el/emacs/lisp/transient

Features:
(shadow emacsbug xref gnus-fun dabbrev cursor-sensor cape-keyword cape
shortdoc rect delsel executable symbol-overlay misearch multi-isearch
editorconfig-core editorconfig-core-handle editorconfig-fnmatch project
consult-vertico consult-icomplete consult compat-28 cl-print sort
gnus-cite mm-archive mail-extr qp textsec uni-scripts idna-mapping
ucs-normalize uni-confusable textsec-check view puni pulse
display-fill-column-indicator generic yaml-mode fish-mode cargo
cargo-process rust-utils rust-mode rust-rustfmt rust-playpen
rust-compile rust-cargo web-mode disp-table preview-latex tex-site
editorconfig elfeed-show elfeed-search vc-hg vc-bzr vc-src vc-sccs
vc-svn vc-cvs vc-rcs log-view debbugs-browse elfeed-csv elfeed
elfeed-curl elfeed-log elfeed-db elfeed-lib avl-tree generator url-queue
xml-query socks elpher hl-todo aggressive-indent rainbow-mode pdf-occur
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
pdf-misc pdf-tools pdf-view jka-compr pdf-cache pdf-info tq pdf-util
pdf-macs image-mode exif vc-git vc-dir ewoc epa-file rdictcc dirvish
so-long diredfl dired-x mu4e-icalendar gnus-icalendar org-capture
org-refile icalendar diary-lib diary-loaddefs mu4e mu4e-org org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src
ob-comint org-pcomplete org-list org-faces org-entities org-version
ob-emacs-lisp ob-core ob-eval org-table oc-basic bibtex ol org-keys oc
org-compat org-macs org-loaddefs mu4e-main mu4e-view cal-menu calendar
cal-loaddefs mu4e-headers mu4e-compose mu4e-draft mu4e-actions smtpmail
mu4e-search mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message flow-fill
mule-util hl-line mu4e-contacts mu4e-update mu4e-folders mu4e-server
mu4e-context mu4e-obsolete mu4e-vars mu4e-helpers mu4e-config
magit-bookmark bookmark ido ecomplete auto-dictionary flyspell ispell
tramp-smb which-key highlight-parentheses restclient kind-icon svg-lib
corfu yasnippet forge-list forge-commands forge-semi forge-bitbucket
buck forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github
ghub-graphql treepy gsexp ghub let-alist forge-notify forge-revnote
forge-pullreq forge-issue forge-topic yaml forge-post markdown-mode
color thingatpt noutline outline forge-repo forge forge-core forge-db
closql emacsql-sqlite emacsql emacsql-compiler 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 imenu edebug
debug backtrace find-func magit-diff smerge-mode diff diff-mode
git-commit log-edit pcvs-util add-log magit-core magit-autorevert
autorevert filenotify magit-margin magit-transient magit-process
with-editor server magit-mode magit-git magit-base magit-section crm
dash compat-27 compat-26 pcase visual-filename-abbrev rg vc
vc-dispatcher rg-info-hack advice rg-menu transient comp comp-cstr
compat compat-macs rg-ibuffer rg-result wgrep-rg wgrep rg-history
rg-header ibuf-ext ibuffer ibuffer-loaddefs grep compile debbugs
soap-client url-http url-auth url-gw nsm warnings rng-xsd rng-dt
rng-util xsd-regexp bug-reference vertico marginalia icomplete mb-depth
use-package-diminish ace-window avy elec-pair recentf tree-widget
pixel-scroll cua-base edmacro kmacro use-package-bind-key bind-key
diminish saveplace savehist smiley gnus-art mm-uu mml2015 mm-view
mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg
dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap
nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range message
sendmail yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa
derived epg rfc6068 epg-config mailabbrev gmm-utils mailheader gnus-win
gnus nnheader gnus-util text-property-search mail-utils range
doom-themes-ext-org doom-themes-ext-visual-bell face-remap
doom-Iosvkem-theme doom-themes doom-themes-base use-package-ensure
quelpa-use-package cl-extra use-package-core quelpa mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr lisp-mnt help-fns radix-tree help-mode finder-inf tramp rx
tramp-loaddefs trampver tramp-integration cus-edit pp cus-load icons
wid-edit files-x tramp-compat shell pcomplete comint ansi-color ring
parse-time iso8601 time-date ls-lisp format-spec
aggressive-indent-autoloads cape-autoloads cargo-autoloads
clojure-mode-autoloads consult-eglot-autoloads consult-autoloads
corfu-autoloads csv-mode-autoloads debbugs-autoloads diredfl-autoloads
dirvish-autoloads doom-themes-autoloads editorconfig-autoloads
eglot-autoloads elfeed-autoloads elpher-autoloads ement-autoloads
expand-region-autoloads fish-mode-autoloads forge-autoloads
closql-autoloads ghub-autoloads hl-todo-autoloads magit-autoloads
git-commit-autoloads marginalia-autoloads markdown-mode-autoloads
pdf-tools-autoloads plz-autoloads puni-autoloads easy-mmode
quelpa-autoloads rainbow-mode-autoloads rcirc-color-autoloads
rust-mode-autoloads symbol-overlay-autoloads tablist-autoloads
taxy-magit-section-autoloads taxy-autoloads magit-section-autoloads
transient-autoloads use-package-autoloads bind-key-autoloads
vertico-autoloads web-mode-autoloads which-key-autoloads
with-editor-autoloads info compat-autoloads yaml-autoloads
yaml-mode-autoloads package browse-url url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv
bytecomp byte-compile cconv url-vars cl-loaddefs cl-lib rmc iso-transl
tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win
pgtk-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
replace newcomment text-mode lisp-mode prog-mode register page tab-bar
menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse
jit-lock font-lock syntax font-core term/tty-colors frame minibuffer
nadvice seq simple cl-generic indonesian philippine 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 emoji-zwj charscript charprop
case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
gtk pgtk lcms2 multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 1145563 194767)
 (symbols 48 53673 11)
 (strings 32 285446 22601)
 (string-bytes 1 8850372)
 (vectors 16 150139)
 (vector-slots 8 3141153 227342)
 (floats 8 1206 1149)
 (intervals 56 28710 8078)
 (buffers 1000 40))





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#57526: 29.0.50; Precise pixel-scrolling works great with touchpad but not with mouse wheel
  2022-09-01 13:48 bug#57526: 29.0.50; Precise pixel-scrolling works great with touchpad but not with mouse wheel Tassilo Horn
@ 2022-09-02  1:15 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-02  4:57   ` Tassilo Horn
  0 siblings, 1 reply; 9+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-02  1:15 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 57526

Tassilo Horn <tsdh@gnu.org> writes:

> The reason for the difference is that the EVENTs passed to
> pixel-scroll-precision have very different delta values.  The touchpad
> events command emacs to scroll about 20 pixels, the mouse wheel events
> command it to scroll 150 pixels.

Try playing with pixel-scroll-precision-large-scroll-height; start with
a value of 30, and adjust it upwards if it interferes with trackpad
scrolling.

> I see there's some interpolation feature which might be relevant but I
> don't get into that code path because (device-class last-event-frame
> last-event-device) returns core-keyboard instead of mouse.  I get that
> value in both the case where I scrolled using touchpad as well as mouse.
> When I typed something with the real keyboard, it says just keyboard.

That part of the code will be reworked soon in accordance with an
earlier discussion, and you can assist with that by sending the result
of running "xinput list --long", which will help determine why your
mouse is not being recognized by Emacs.

Unfortunately momentum will not work with any non-trackpad mice other
than Apple's "Magic Mouse 2" (which recently gained driver support on
the kernel side), since the necessary tactile information is not
reported to programs by their hardware.






^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#57526: 29.0.50; Precise pixel-scrolling works great with touchpad but not with mouse wheel
  2022-09-02  1:15 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-02  4:57   ` Tassilo Horn
  2022-09-02  9:30     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 9+ messages in thread
From: Tassilo Horn @ 2022-09-02  4:57 UTC (permalink / raw)
  To: Po Lu; +Cc: 57526

[-- Attachment #1: Type: text/plain, Size: 2404 bytes --]

Po Lu <luangruo@yahoo.com> writes:

>> The reason for the difference is that the EVENTs passed to
>> pixel-scroll-precision have very different delta values.  The
>> touchpad events command emacs to scroll about 20 pixels, the mouse
>> wheel events command it to scroll 150 pixels.
>
> Try playing with pixel-scroll-precision-large-scroll-height; start
> with a value of 30, and adjust it upwards if it interferes with
> trackpad scrolling.

Oh, yes, that does the trick.  I don't actually feel much of a
difference (if any) no matter if I set it to 10 vs. 140.  It seems it
must be at least smaller as the delta in the mouse wheel events (150) in
order to have any effect but that's it.  So I went with 140.

>> I see there's some interpolation feature which might be relevant but
>> I don't get into that code path because (device-class
>> last-event-frame last-event-device) returns core-keyboard instead of
>> mouse.  I get that value in both the case where I scrolled using
>> touchpad as well as mouse.  When I typed something with the real
>> keyboard, it says just keyboard.
>
> That part of the code will be reworked soon in accordance with an
> earlier discussion, and you can assist with that by sending the result
> of running "xinput list --long", which will help determine why your
> mouse is not being recognized by Emacs.

The short list is:

--8<---------------cut here---------------start------------->8---
❯ xinput list
WARNING: running xinput against an Xwayland server. See the xinput man page for details.
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ xwayland-pointer:39                     	id=6	[slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:39            	id=7	[slave  pointer  (2)]
⎜   ↳ xwayland-pointer-gestures:39            	id=8	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ xwayland-keyboard:39                    	id=9	[slave  keyboard (3)]
--8<---------------cut here---------------end--------------->8---

Interestingly, that list is the same no matter if I plugged my mouse
into my notebook's USB slot or if it is not connected.

The long list is attached.

[-- Attachment #2: xinput-list-long.txt --]
[-- Type: text/plain, Size: 5345 bytes --]

WARNING: running xinput against an Xwayland server. See the xinput man page for details.
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
	Reporting 3 classes:
		Class originated from: 2. Type: XIButtonClass
		Buttons supported: 10
		Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" None None None
		Button state:
		Class originated from: 2. Type: XIValuatorClass
		Detail for Valuator 0:
		  Label: Rel X
		  Range: -1.000000 - -1.000000
		  Resolution: 0 units/m
		  Mode: relative
		Class originated from: 2. Type: XIValuatorClass
		Detail for Valuator 1:
		  Label: Rel Y
		  Range: -1.000000 - -1.000000
		  Resolution: 0 units/m
		  Mode: relative

⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
	Reporting 3 classes:
		Class originated from: 4. Type: XIButtonClass
		Buttons supported: 10
		Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" None None None
		Button state:
		Class originated from: 4. Type: XIValuatorClass
		Detail for Valuator 0:
		  Label: Rel X
		  Range: -1.000000 - -1.000000
		  Resolution: 0 units/m
		  Mode: relative
		Class originated from: 4. Type: XIValuatorClass
		Detail for Valuator 1:
		  Label: Rel Y
		  Range: -1.000000 - -1.000000
		  Resolution: 0 units/m
		  Mode: relative

⎜   ↳ xwayland-pointer:39                     	id=6	[slave  pointer  (2)]
	Reporting 7 classes:
		Class originated from: 6. Type: XIButtonClass
		Buttons supported: 10
		Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" None None None
		Button state:
		Class originated from: 6. Type: XIValuatorClass
		Detail for Valuator 0:
		  Label: Abs X
		  Range: 0.000000 - 65535.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 0.000000
		Class originated from: 6. Type: XIValuatorClass
		Detail for Valuator 1:
		  Label: Abs Y
		  Range: 0.000000 - 65535.000000
		  Resolution: 10000 units/m
		  Mode: absolute
		  Current value: 0.000000
		Class originated from: 6. Type: XIValuatorClass
		Detail for Valuator 2:
		  Label: Rel Horiz Wheel
		  Range: -1.000000 - -1.000000
		  Resolution: 0 units/m
		  Mode: relative
		Class originated from: 6. Type: XIValuatorClass
		Detail for Valuator 3:
		  Label: Rel Vert Wheel
		  Range: -1.000000 - -1.000000
		  Resolution: 0 units/m
		  Mode: relative
		Class originated from: 6. Type: XIScrollClass
		Scroll info for Valuator 2
		  type: 2 (horizontal)
		  increment: 1.000000
		  flags: 0x0
		Class originated from: 6. Type: XIScrollClass
		Scroll info for Valuator 3
		  type: 1 (vertical)
		  increment: 1.000000
		  flags: 0x2 ( preferred )

⎜   ↳ xwayland-relative-pointer:39            	id=7	[slave  pointer  (2)]
	Reporting 7 classes:
		Class originated from: 7. Type: XIButtonClass
		Buttons supported: 10
		Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" None None None
		Button state:
		Class originated from: 7. Type: XIValuatorClass
		Detail for Valuator 0:
		  Label: Rel X
		  Range: -1.000000 - -1.000000
		  Resolution: 0 units/m
		  Mode: relative
		Class originated from: 7. Type: XIValuatorClass
		Detail for Valuator 1:
		  Label: Rel Y
		  Range: -1.000000 - -1.000000
		  Resolution: 0 units/m
		  Mode: relative
		Class originated from: 7. Type: XIValuatorClass
		Detail for Valuator 2:
		  Label: Rel Horiz Wheel
		  Range: -1.000000 - -1.000000
		  Resolution: 0 units/m
		  Mode: relative
		Class originated from: 7. Type: XIValuatorClass
		Detail for Valuator 3:
		  Label: Rel Vert Wheel
		  Range: -1.000000 - -1.000000
		  Resolution: 0 units/m
		  Mode: relative
		Class originated from: 7. Type: XIScrollClass
		Scroll info for Valuator 2
		  type: 2 (horizontal)
		  increment: 1.000000
		  flags: 0x0
		Class originated from: 7. Type: XIScrollClass
		Scroll info for Valuator 3
		  type: 1 (vertical)
		  increment: 1.000000
		  flags: 0x2 ( preferred )

⎜   ↳ xwayland-pointer-gestures:39            	id=8	[slave  pointer  (2)]
	Reporting 2 classes:
		Class originated from: 8. Type: XIValuatorClass
		Detail for Valuator 0:
		  Label: Rel X
		  Range: -1.000000 - -1.000000
		  Resolution: 0 units/m
		  Mode: relative
		Class originated from: 8. Type: XIValuatorClass
		Detail for Valuator 1:
		  Label: Rel Y
		  Range: -1.000000 - -1.000000
		  Resolution: 0 units/m
		  Mode: relative

⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
	Reporting 1 classes:
		Class originated from: 9. Type: XIKeyClass
		Keycodes supported: 248

    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
	Reporting 1 classes:
		Class originated from: 5. Type: XIKeyClass
		Keycodes supported: 248

    ↳ xwayland-keyboard:39                    	id=9	[slave  keyboard (3)]
	Reporting 1 classes:
		Class originated from: 9. Type: XIKeyClass
		Keycodes supported: 248


[-- Attachment #3: Type: text/plain, Size: 14 bytes --]


Bye,
Tassilo

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#57526: 29.0.50; Precise pixel-scrolling works great with touchpad but not with mouse wheel
  2022-09-02  4:57   ` Tassilo Horn
@ 2022-09-02  9:30     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-02 11:41       ` Tassilo Horn
  0 siblings, 1 reply; 9+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-02  9:30 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 57526

Tassilo Horn <tsdh@gnu.org> writes:

> The short list is:
>
> ❯ xinput list
> WARNING: running xinput against an Xwayland server. See the xinput man page for details.
> ⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
> ⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
> ⎜   ↳ xwayland-pointer:39                     	id=6	[slave  pointer  (2)]
> ⎜   ↳ xwayland-relative-pointer:39            	id=7	[slave  pointer  (2)]
> ⎜   ↳ xwayland-pointer-gestures:39            	id=8	[slave  pointer  (2)]
> ⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
>     ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
>     ↳ xwayland-keyboard:39                    	id=9	[slave  keyboard (3)]
>
> Interestingly, that list is the same no matter if I plugged my mouse
> into my notebook's USB slot or if it is not connected.

Ah, you're using Xwayland.

Unfortunately, that X server is not implemented properly, so the X build
of Emacs cannot determine the source of wheel movement correctly.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#57526: 29.0.50; Precise pixel-scrolling works great with touchpad but not with mouse wheel
  2022-09-02  9:30     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-02 11:41       ` Tassilo Horn
  2022-09-02 12:33         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 9+ messages in thread
From: Tassilo Horn @ 2022-09-02 11:41 UTC (permalink / raw)
  To: Po Lu; +Cc: 57526

[-- Attachment #1: Type: text/plain, Size: 1307 bytes --]

Po Lu <luangruo@yahoo.com> writes:

>> The short list is:
>>
>> ❯ xinput list
>> WARNING: running xinput against an Xwayland server. See the xinput man page
>> for details.
>> ⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
>> ⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
>> ⎜   ↳ xwayland-pointer:39                     	id=6	[slave  pointer  (2)]
>> ⎜   ↳ xwayland-relative-pointer:39            	id=7	[slave  pointer  (2)]
>> ⎜   ↳ xwayland-pointer-gestures:39            	id=8	[slave  pointer  (2)]
>> ⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
>>     ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
>>     ↳ xwayland-keyboard:39                    	id=9	[slave  keyboard (3)]
>>
>> Interestingly, that list is the same no matter if I plugged my mouse
>> into my notebook's USB slot or if it is not connected.
>
> Ah, you're using Xwayland.

Actually, I use pgtk so that emacs runs as native wayland client but I
guess that doesn't make a difference here.

AFAIK, X and wayland use libinput for device handling by default and
"libinput list-devices" knows about touchpad AND USB mouse.  Of course I
have no clue if that has any relevance wrt. emacs.

[-- Attachment #2: libinput-list-devices.txt --]
[-- Type: text/plain, Size: 4657 bytes --]

Device:           Power Button
Kernel:           /dev/input/event2
Group:            1
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Video Bus
Kernel:           /dev/input/event3
Group:            2
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Video Bus
Kernel:           /dev/input/event4
Group:            2
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Lid Switch
Kernel:           /dev/input/event0
Group:            3
Seat:             seat0, default
Capabilities:     switch
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Sleep Button
Kernel:           /dev/input/event1
Group:            4
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           USB OPTICAL MOUSE 
Kernel:           /dev/input/event6
Group:            5
Seat:             seat0, default
Capabilities:     pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           AT Translated Set 2 keyboard
Kernel:           /dev/input/event5
Group:            6
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           SynPS/2 Synaptics TouchPad
Kernel:           /dev/input/event18
Group:            7
Seat:             seat0, default
Size:             100x76mm
Capabilities:     pointer gesture
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    *button-areas clickfinger 
Disable-w-typing: enabled
Disable-w-trackpointing: enabled
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           TPPS/2 IBM TrackPoint
Kernel:           /dev/input/event19
Group:            8
Seat:             seat0, default
Capabilities:     pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   *button
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           ThinkPad Extra Buttons
Kernel:           /dev/input/event8
Group:            9
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         n/a


[-- Attachment #3: Type: text/plain, Size: 14 bytes --]


Bye,
Tassilo

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#57526: 29.0.50; Precise pixel-scrolling works great with touchpad but not with mouse wheel
  2022-09-02 11:41       ` Tassilo Horn
@ 2022-09-02 12:33         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-02 12:39           ` Tassilo Horn
  0 siblings, 1 reply; 9+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-02 12:33 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 57526

Tassilo Horn <tsdh@gnu.org> writes:

> Actually, I use pgtk so that emacs runs as native wayland client but I
> guess that doesn't make a difference here.

Hmm, please show what message is displayed when you scroll with the
mouse, after running this:

  (while t (read-event) (message "Device: %s" last-event-device))

> AFAIK, X and wayland use libinput for device handling by default and
> "libinput list-devices" knows about touchpad AND USB mouse.  Of course I
> have no clue if that has any relevance wrt. emacs.

X doesn't necessarily use libinput for input handling.  It all depends
on the input drivers in use.

Most Wayland compositors do, however.

Thanks.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#57526: 29.0.50; Precise pixel-scrolling works great with touchpad but not with mouse wheel
  2022-09-02 12:33         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-02 12:39           ` Tassilo Horn
  2022-09-03  1:04             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 9+ messages in thread
From: Tassilo Horn @ 2022-09-02 12:39 UTC (permalink / raw)
  To: Po Lu; +Cc: 57526

Po Lu <luangruo@yahoo.com> writes:

>> Actually, I use pgtk so that emacs runs as native wayland client but
>> I guess that doesn't make a difference here.
>
> Hmm, please show what message is displayed when you scroll with the
> mouse, after running this:
>
>   (while t (read-event) (message "Device: %s" last-event-device))

Device: Virtual core pointer [24 times]

>> AFAIK, X and wayland use libinput for device handling by default and
>> "libinput list-devices" knows about touchpad AND USB mouse.  Of
>> course I have no clue if that has any relevance wrt. emacs.
>
> X doesn't necessarily use libinput for input handling.  It all depends
> on the input drivers in use.
>
> Most Wayland compositors do, however.

I use sway and also have only xf86-input-libinput and
xf86-input-synaptics installed.

When I run "sudo libinput debug-events" and click and scroll with the
USB mouse, I get:

 event6   POINTER_MOTION          +34.209s	 0.00/  0.41 ( +0.00/ +1.00)
 event6   POINTER_BUTTON          +34.209s	BTN_LEFT (272) released, seat count: 0
 event6   POINTER_SCROLL_WHEEL    +35.425s	vert -15.00/-120.0* horiz 0.00/0.0 (wheel)

With the touchpad I get:

-event18  GESTURE_HOLD_BEGIN      +0.041s	2
 event18  GESTURE_HOLD_END        +2.254s	2
 event18  POINTER_MOTION          +3.456s	-0.12/  0.41 ( -1.00/ +3.32)
 event18  POINTER_MOTION          +3.465s	-0.24/  1.60 ( -1.00/ +6.65)
 event18  POINTER_MOTION          +3.475s	-0.51/  1.42 ( -2.00/ +5.54)
 event18  POINTER_MOTION          +3.484s	 0.00/  2.85 ( +0.00/+11.08)
 event18  GESTURE_HOLD_BEGIN      +4.527s	1
 event18  GESTURE_HOLD_END        +4.545s	1

In both cases, event6 and event18 are the devices shown by "sudo
libinput list-devices".

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#57526: 29.0.50; Precise pixel-scrolling works great with touchpad but not with mouse wheel
  2022-09-02 12:39           ` Tassilo Horn
@ 2022-09-03  1:04             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-09-03  7:04               ` Tassilo Horn
  0 siblings, 1 reply; 9+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-09-03  1:04 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 57526

Tassilo Horn <tsdh@gnu.org> writes:

> Device: Virtual core pointer [24 times]

Thanks.  Please evaluate "(x-gtk-debug)", go to the "General" tab in the
debugger window that will pop up, and show what is displayed under "Seat
0" (you might have to scroll down a bit).

> I use sway and also have only xf86-input-libinput and
> xf86-input-synaptics installed.

Well, since you aren't using X by itself, that information is not very
meaningful.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#57526: 29.0.50; Precise pixel-scrolling works great with touchpad but not with mouse wheel
  2022-09-03  1:04             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-09-03  7:04               ` Tassilo Horn
  0 siblings, 0 replies; 9+ messages in thread
From: Tassilo Horn @ 2022-09-03  7:04 UTC (permalink / raw)
  To: Po Lu; +Cc: 57526

Po Lu <luangruo@yahoo.com> writes:

>> Device: Virtual core pointer [24 times]
>
> Thanks.  Please evaluate "(x-gtk-debug)", go to the "General" tab in
> the debugger window that will pop up, and show what is displayed under
> "Seat 0" (you might have to scroll down a bit).

Seat 0                     Pointer, Keyboard
  Wayland Keyboard                  Keyboard
  Wayland pointer                      Mouse
    Axes                                X, Y

>> I use sway and also have only xf86-input-libinput and
>> xf86-input-synaptics installed.
>
> Well, since you aren't using X by itself, that information is not very
> meaningful.

Ah, ok, I've had the impression that the drivers are used by both X11
and Wayland.

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-09-03  7:04 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-01 13:48 bug#57526: 29.0.50; Precise pixel-scrolling works great with touchpad but not with mouse wheel Tassilo Horn
2022-09-02  1:15 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-02  4:57   ` Tassilo Horn
2022-09-02  9:30     ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-02 11:41       ` Tassilo Horn
2022-09-02 12:33         ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-02 12:39           ` Tassilo Horn
2022-09-03  1:04             ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-09-03  7:04               ` Tassilo Horn

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).