hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
19.92k stars 849 forks source link

Scroll wheel only triggers once in wayland apps(and kitty for unknown reasons) #6299

Closed Ciel-MC closed 3 months ago

Ciel-MC commented 4 months ago

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit a54ab301602e205f273969c093cf494d38ba4a98 dirty (cmake: make xcb-errors required). Date: Sat Jun 1 04:07:00 2024 Tag: v0.40.0-146-ga54ab301, commits: 4752 flags: (if any) System Information: System name: Linux Node name: CielPC Release: 6.9.2-zen1-1-zen Version: #1 ZEN SMP PREEMPT_DYNAMIC Sun, 26 May 2024 01:30:09 +0000 GPU information: 0d:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M] [1002:744c] (rev c8) (prog-if 00 [VGA controller]) os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo plugins: ======Config-Start====== Config File: /home/ciel/.config/hypr/hyprland.conf: Read Succeeded # See https://wiki.hyprland.org/Configuring/Monitors/ # monitor=,preferred,auto,auto # monitor=DP-2,3840x2160@143.988,0x0,1 monitor=DP-1,3840x2160@144Hz,0x0,1,bitdepth,10 monitor=DP-2,1920x1080@144Hz,3840x0,1,transform,3 monitor=,preferred,auto,1 workspace = DP-1,1 workspace = DP-2,2 # See https://wiki.hyprland.org/Configuring/Keywords/ for more # Execute your favorite apps at launch # Status bar exec = killall waybar;waybar # Wallpaper exec-once = hyprpaper # exec-once=/home/ciel/portals.sh exec-once=dbus-update-activation-environment --systemd --all exec-once=systemctl --user import-environment QT_QPA_PLATFORMTHEME # Browser exec-once = [workspace 2; noanim] firefox # Notification Daemon # exec-once = mako exec-once = swaync # Authentication agent exec-once=/usr/lib/polkit-kde-authentication-agent-1 # Password manager exec-once=1password --silent # Sync files exec-once=syncthing --no-browser # Airplay keepalive fix # exec-once=~/airplay_fix.fish # Discord in special workspace # exec-once=[workspace special silent] discord-ptb exec-once=[workspace special silent] discord --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime exec-once=$(ls ~/Applications/Cider*.AppImage) # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf # Some default env vars. env = XCURSOR_SIZE,24 # env = HYPRCURSOR_THEME,capitaine-cursors env = GDK_BACKEND,wayland,x11 env = QT_QPA_PLATFORM,wayland;xcb #env = SDL_VIDEODRIVER,wayland,x11 env = CLUTTER_BACKEND,wayland # env = XDG_CURRENT_DESKTOP,Hyprland # Technically incorrect, but dark mode is fucked in kde apps without this so env = XDG_CURRENT_DESKTOP,kde env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland env = MOZ_ENABLE_WAYLAND,1 env = QT_IM_MODULE=fcitx env = XMODIFIERS=@im=fcitx # env = GTK_IM_MODULE,wayland # env = GTK_IM_MODULE,fcitx env = SDL_IM_MODULE,fcitx # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = #follow_mouse = 0 touchpad { natural_scroll = false } numlock_by_default = true sensitivity = 0 # -1.0 - 1.0, 0 means no modification. tablet { output = DP-1 } } general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 5 gaps_out = 5 border_size = 1 #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.active_border = rgba(33ccffee) #col.active_border = rgba(33ccffee) col.inactive_border = rgba(595959aa) #no_cursor_warps = true layout = dwindle } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 10 blur { enabled = true size = 3 passes = 2 new_optimizations = on } drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) } animations { enabled = true # enabled = false # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default } dwindle { # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = no # you probably want this # special_scale_factor = 0.8 } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more new_is_master = true } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = off } misc { #focus_on_activate = true #force_hypr_chan = true disable_splash_rendering = true } debug { disable_logs = false } # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more windowrulev2 = tile,class:neovide windowrulev2 = noinitialfocus,class:^jetbrains-(?!toolbox),floating:1 windowrulev2 = noblur,class:^8dpLpcU3aynKff windowrulev2 = noborder,class:^8dpLpcU3aynKff windowrulev2 = float,class:^8dpLpcU3aynKff windowrulev2 = workspace special silent,class:discord windowrulev2 = workspace special silent,class:Cider # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER # bind = $mainMod SHIFT, n, exec, swaync-client -t # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more # bind = $mainMod, ENTER, exec, kitty bind = $mainMod SHIFT, Q, killactive, bind = $mainMod SHIFT, M, exit, bind = $mainMod, RETURN, exec, kitty bind = $mainMod, BACKSLASH, exec, firefox bind = $mainMod, T, exec, neovide #bind = $mainMod, E, exec, dolphin bind = $mainMod, V, togglefloating, # bind = $mainMod, D, exec, anyrun bind = $mainMod, D, exec, pgrep anyrun && pkill anyrun || anyrun windowrulev2 = forceinput,class:jetbrains-studio # windowrulev2 = forceinput,class:^(krunner)$ #windowrulev2 = center,class:^(krunner)$ #bind = $mainMod, D, exec, qdbus org.kde.krunner /App display && hyprctl dispatch focuswindow krunner #exec-once = #bind = $mainMod, D, exec, qdbus org.kde.krunner / && krunner && hyprctl dispatch focuswindow krunner windowrulev2 = stayfocused, class:^(krunner)$ bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, S, togglesplit, # dwindle # Move focus with mainMod + hjkl bind = $mainMod, h, movefocus, l bind = $mainMod, n, movefocus, d bind = $mainMod, e, movefocus, u bind = $mainMod, i, movefocus, r # Move window with mainmod + shift + hjkl bind = $mainMod SHIFT, h, movewindow, l bind = $mainMod SHIFT, n, movewindow, d bind = $mainMod SHIFT, e, movewindow, u bind = $mainMod SHIFT, i, movewindow, r binde=$mainMod CTRL SHIFT,h,resizeactive,-10 0 binde=$mainMod CTRL SHIFT,n,resizeactive,0 10 binde=$mainMod CTRL SHIFT,e,resizeactive,0 -10 binde=$mainMod CTRL SHIFT,i,resizeactive,10 0 # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 # Fullscreen bind=$mainMod,F,fullscreen # Scroll through existing workspaces with mainMod + scroll # bind = $mainMod, mouse_down, workspace, e+1 # bind = $mainMod, mouse_up, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging # bindm = $mainMod, mouse:272, movewindow # bindm = $mainMod, mouse:273, resizewindow # Volume control $WOBSOCK = $XDG_RUNTIME_DIR/wob.sock exec-once = rm -f $WOBSOCK && mkfifo $WOBSOCK && tail -f $WOBSOCK | wob bind = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_SINK@ 5%+ && pactl get-sink-volume @DEFAULT_SINK@ | head -n 1| awk '{print substr($5, 1, length($5)-1)}' $WOBSOCK bind = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_SINK@ 5%- && pactl get-sink-volume @DEFAULT_SINK@ | head -n 1| awk '{print substr($5, 1, length($5)-1)}' > $WOBSOCK bind = ,XF86AudioMute, exec, wpctl set-volume @DEFAULT_SINK@ 0% bind = ,XF86AudioPlay, exec, playerctl play-pause # Screenshot bind = $mainMod SHIFT, p, exec, grim -g "$(slurp -d)" - | wl-copy # Input method exec = fcitx5 -d --replace # bindl = $mainMod, Space, pass, fcitx5 # Special workspace workspace=special:special,gapsout:100 bind=$mainMod CTRL,SPACE,movetoworkspace,e+0 bind=$mainMod SHIFT,MINUS,movetoworkspace,special bind=$mainMod ,MINUS,togglespecialworkspace, # Keybind passthough # bind=CTRL SHIFT,SPACE,pass,^1password$ # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # cursor { # no_hardware_cursors = true # } ======Config-End======== ```

Bug or Regression?

Regression? Bug? Idk actually

Description

In Xwayland apps, when you continuously scroll down, it only happens once, it will only scroll once again if you stop scrolling and start scrolling.

It's almost as if it's scrolling on the derivative, except moving to neutral doesn't trigger one in the reverse direction.

It is also noted that Kitty, despite being a wayland app, still exhibits the same behavior, but until more recently, to a lesser extent, it went

Normal scrolling -> xwayland app broken + kitty scrolls very slowly(1 line per scroll compared to ~5 when it was normal) -> now both broken

How to reproduce

Scroll in steam/Krita

Crash reports, logs, images, videos

No response

Aqa-Ib commented 4 months ago

I think this is solved in a recent git commit. Try building from latest git commit. You could use the AUR package hyprland-git

Agent00Ming commented 4 months ago

probably a dupe of #6278

Ciel-MC commented 4 months ago

I think this is solved in a recent git commit. Try building from latest git commit. You could use the AUR package hyprland-git

I built it right before I made this issue so I doubt image Yeah lmao, isn't that one of the points of sending specs? smh

Ciel-MC commented 4 months ago

probably a dupe of #6278

Looks like the same issue, though I may argue that we each contain details the other don't have. A merge would be nice

Aqa-Ib commented 4 months ago

Yeah sorry, I didnt pay enough attention to the specs. I had a similar issue that was fixed at some point hence my comment. I will pay more attention next time. Good luck.