kovidgoyal / kitty

Cross-platform, fast, feature-rich, GPU based terminal
https://sw.kovidgoyal.net/kitty/
GNU General Public License v3.0
23.87k stars 964 forks source link

regression: Horizontal scrolling is reversed on X11 #7481

Closed YaQia closed 3 months ago

YaQia commented 3 months ago

Describe the bug though #7740 fixed the horizontal scrolling of wayland, this fix leads to X11 horizontal scrolling reversed.

To Reproduce Steps to reproduce the behavior:

  1. Open kitty with configuration: linux_display_server X11
  2. Open a text file that has long lines with vim/nvim configuring :set mouse=a and :set nowrap
  3. Use touchpad or mouse to do horizontal scroll
  4. Scrolling is inverted (which should be natural scrolling)

Environment details

kitty 0.35.0 created by Kovid Goyal
Linux archlinux 6.9.2-arch1-1 #1 SMP PREEMPT_DYNAMIC Sun, 26 May 2024 01:30:29 +0000 x86_64
Arch Linux 6.9.2-arch1-1 (/dev/tty)

Running under: X11
OpenGL: '4.6 (Core Profile) Mesa 24.0.8-arch1.1' Detected version: 4.6
Frozen: False
Paths:
  kitty: /usr/bin/kitty
  base dir: /usr/lib/kitty
  extensions dir: /usr/lib/kitty/kitty
  system shell: /usr/bin/fish
Loaded config files:
  /home/ethan/.config/kitty/kitty.conf

Config options different from defaults:
allow_remote_control  yes
background_opacity    0.9
editor                nvim
enabled_layouts       ['splits', 'stack']
font_family           FiraCode Nerd Font
initial_window_height (19, 'cells')
initial_window_width  (68, 'cells')
linux_display_server  x11
remember_window_size  False
symbol_map:
    U+2010 - U+2010 → Source Code Pro
Added shortcuts:
    ctrl+alt+h →  move_window left
    ctrl+alt+home →  resize_window reset
    ctrl+alt+j →  move_window down
    ctrl+alt+k →  move_window up
    ctrl+alt+l →  move_window right
    ctrl+alt+n →  resize_window narrower
    ctrl+alt+s →  resize_window shorter
    ctrl+alt+t →  resize_window taller
    ctrl+alt+w →  resize_window wider
    ctrl+enter →  launch --location=hsplit
    kitty_mod+alt+h →  layout_action move_to_screen_edge left
    kitty_mod+alt+j →  layout_action move_to_screen_edge bottom
    kitty_mod+alt+k →  layout_action move_to_screen_edge top
    kitty_mod+alt+l →  layout_action move_to_screen_edge right
Changed shortcuts:
    kitty_mod+` →  next_layout
    kitty_mod+enter →  launch --location=vsplit
    kitty_mod+h →  neighboring_window left
    kitty_mod+j →  neighboring_window down
    kitty_mod+k →  neighboring_window up
    kitty_mod+l →  neighboring_window right
Colors:
    color1                #cc0000   
    color10               #8ae234   
    color11               #fce94f   
    color12               #729fcf   
    color13               #ad7fa8   
    color14               #34e2e2   
    color15               #eeeeec   
    color2                #4e9a06   
    color3                #c4a000   
    color4                #3465a4   
    color5                #75507b   
    color6                #06989a   
    color7                #d3d7cf   
    color8                #555753   
    color9                #ef2929   
    cursor                #ffffff   
    foreground            #ffffff   
    selection_background  #b4d5ff   

Important environment variables seen by the kitty process:
    PATH                                /opt/riscv/bin:/opt/riscv64-linux/bin:/home/ethan/.local/share/gem/ruby/3.0.0/bin:/usr/share/bcc/tools:/home/ethan/.cargo/bin:/home/ethan/.local/bin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
    LANG                                zh_CN.UTF-8
    SHELL                               /usr/bin/fish
    GLFW_IM_MODULE                      ibus
    DISPLAY                             :0
    WAYLAND_DISPLAY                     wayland-0
    USER                                ethan
    XDG_DATA_DIRS                       /home/ethan/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/
    XDG_RUNTIME_DIR                     /run/user/1000
    XDG_CURRENT_DESKTOP                 GNOME
    XDG_MENU_PREFIX                     gnome-
    XDG_SESSION_CLASS                   user
    XDG_SESSION_DESKTOP                 gnome
    XDG_SESSION_TYPE                    wayland

Additional context kitty --config NONE works well, because it uses wayland. Also, older version of kitty (tested in 0.33.1) using X11 works well.

MithicSpirit commented 3 months ago

Oh, great, nvm then! Thanks @kovidgoyal for properly fixing it and sorry for the erroneous "fix" I submitted.

kovidgoyal commented 3 months ago

no worries, I should have reviewed it properly but I was very busy at the time...