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.52k stars 818 forks source link

Touchpad text selection + context menu glitch in Google Chrome #6538

Closed spjz closed 2 months ago

spjz commented 2 months ago

Bug or Regression?

Bug

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 9e781040d9067c2711ec2e9f5b47b76ef70762b3 (props: bump version to 0.41.1). Date: Thu Jun 13 09:54:06 2024 Tag: v0.41.1, commits: 4818 flags: (if any) System Information: System name: Linux Node name: asus.spjz.uk Release: 6.9.4-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Wed, 12 Jun 2024 20:17:17 +0000 GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation GeminiLake [UHD Graphics 600] [8086:3185] (rev 06) (prog-if 00 [VGA controller]) DeviceName: VGA 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/spjz/.config/hypr/hyprland.conf: Read Succeeded # nwg-shell Hyprland config file # # The nwg-shell-config utility generates a part of settings for you: # General, Input devices, Touchpad, Dwindle layout, Master layout. # Decoration, animations, gestures and per-device config are left to be configured by yourself. # Refer to the Hyprland wiki at https://wiki.hyprland.org for more information. # # Monitors & workspaces: nwg-displays generates 2 files, which we include here: # source = $XDG_CONFIG_HOME/hypr/monitors.conf source = $XDG_CONFIG_HOME/hypr/workspaces.conf # # Autostart. Feel free to add your own entries. # Shell components will be started in the includes.conf file, which we include below. # exec = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 exec-once = $HOME/.azotebg-hyprland # Wallpaper exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE exec = hyprshade auto # # Include settings generated by nwg-shell-config # source = $XDG_CONFIG_HOME/hypr/includes.conf # # All the settings below are up to you. We don't touch them in the shell config utility. # # Some default env vars.t env = XCURSOR_SIZE,20 env = GDK_BACKEND,wayland,x11,* env = QT_QPA_PLATFORM,wayland;xcb env = SDL_VIDEODRIVER,wayland env = CLUTTER_BACKEND,wayland env = XDG_CURRENT_DESKTOP,Hyprland env = XDG_SESSION_TYPE,wayland env = XDG_SESSION_DESKTOP,Hyprland decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 5 blur { enabled = true size = 3 passes = 1 new_optimizations = true } drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) } animations { enabled = true # 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 } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = true } plugin { hyprwinwrap { class = projectMSDL } overview { panelHeight = 100 } } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more # device:epic-mouse-v1 { # sensitivity = -0.5 # } # Wwindowrule v2 windowrulev2 = float,class:^(blueman-manager|azote|gnome-disks)$ windowrulev2 = float,class:^(pavucontrol|nm-connection-editor|gsimplecal|galculator)$ windowrulev2 = float,title:^(copying|deleting|moving)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Keywords/ for more $mainMod = SUPER # KEY BINDINGS, see https://wiki.hyprland.org/Configuring/Binds/ for more # If you happen to change some key bindings, you may also edit ~/.local/share/nwg-shell-config/help-hyprland.pango # We've defined $term, $editor and so on in includes.conf. bind = $mainMod, W, exec, $browser bind = $mainMod, E, exec, $editor bind = $mainMod, X, exec, $exit #bind = $mainMod, F, exec, $filemanager bind = ALT, F1, exec, $launcher bind = ALT, C, exec, nwg-clipman bind = $mainMod, T, exec, $term bind = $mainMod, F2, exec, $term # Disable middle mouse paste bind = , mouse:274, exec, ; # Dropdown terminal #bind = $mainMod, GRAVE, exec, hyprdrop kitty -i kitty-hyprdrop #bind = $mainMod, GRAVE, exec, hdrop kitty -c kitty-hdrop #windowrulev2 = float, class:^(kitty-hdrop)$ #windowrulev2 = size 100% 50%, class:^(kitty-hdrop)$ #windowrulev2 = move 0 40, class:^(kitty-hdrop)$ #windowrulev2 = workspace special:dropdown,class:^(kitty-hdrop)$ # Show/hide the dock, if started bind = ALT, D, exec, pkill -10 nwg-dock bind = $mainMod, L, exec, nwg-lock # screen locker, according to shell settings bind = $mainMod, F1, exec, nwg-shell-help # help window bind = $mainMod, F, fullscreen bind = $mainMod, I, pin bind = $mainMod, C, killactive, bind = ALT, Q, killactive, bind = ALT, F4, killactive, bind = $mainMod SHIFT, M, exit, bind = $mainMod, Space, togglefloating, bind = $mainMod, V, togglefloating, bind = $mainMod SHIFT, C, exec, hyprctl reload # reload Hyprland bind = $mainMod SHIFT, Z, movetoworkspace, special # move to the special workspace bind = $mainMod, Z, togglespecialworkspace # show/hide special workspace bind = ALT, Tab, togglesplit, # (dwindle) bind = $mainMod, P, pseudo, # (dwindle) bind = $mainMod, A, layoutmsg, cycleprev # (master) bind = $mainMod, S, layoutmsg, swapwithmaster # (master) bind = $mainMod, D, layoutmsg, cyclenext # (master) # SCREENSHOT (/usr/local/bin/screenshot) bind = , Print, exec, screenshot fullscreen # full screen bind = CONTROL, Print, exec, screenshot display # focused display bind = $mainMod SHIFT+CONTROL, Print, exec, screenshot focused # focused window bind = SHIFT+CONTROL, Print, exec, screenshot swappy # selected region -> swappy # bind = SHIFT+CONTROL, Print, exec, screenshot region # or selected region w/o swappy # MOVE FOCUS with mainMod + arrow keys bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d # MOVE WINDOW with mainMod SHIFT + arrow keys bind = $mainMod SHIFT, left, movewindow, l bind = $mainMod SHIFT, right, movewindow, r bind = $mainMod SHIFT, up, movewindow, u bind = $mainMod SHIFT, down, movewindow, d # 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 # 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 # Media keys bindl=, XF86AudioPlay, exec, playerctl play-pause bindl=, XF86AudioNext, exec, playerctl next bindl=, XF86AudioPrev, exec, playerctl previous bindl=, XF86AudioStop, exec, playerctl stop # Output volume and toggle mute bindel=, XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise bindel=, XF86AudioLowerVolume, exec, swayosd-client --output-volume lower bindl=, XF86AudioMute, exec, swayosd-client --output-volume mute-toggle # Input volume toggle mute bindl=, XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle # Capslock bindl=, Caps_Lock, exec, swayosd-client --caps-lock # Display brightness bindel=, XF86MonBrightnessUp, exec, swayosd-client --brightness raise bindel=, XF86MonBrightnessDown, exec, swayosd-client --brightness lower # LAPTOP #bindl=, switch:lid:on, output, eDP-1 disable #bindl=, switch:lid:off, output, eDP-1 enable Config File: /home/spjz/.config/hypr/monitors.conf: Read Succeeded # Generated by nwg-displays on 2024-06-12 at 10:36:08. Do not edit manually. monitor=eDP-1,1366x768@60.0,0x0,1.0 Config File: /home/spjz/.config/hypr/workspaces.conf: Read Succeeded Config File: /home/spjz/.config/hypr/includes.conf: Read Succeeded # This content was generated by nwg-shell-config. Do not modify it manually. # VARIABLES $term = kitty $browser = /usr/bin/google-chrome-stable --ozone-platform-hint=auto --ozone-platform=wayland --enable-features=UseOzonePlatform,TouchpadOverscrollHistoryNavigation,VaapiVideoDecodeLinuxGL,VaapiVideoDecoder $filemanager = lf $editor = helix $launcher = nwg-drawer $exit = nwg-bar -t hyprland.json -p center -a middle -i 48 -s hyprland-1.css # AUTOSTART exec-once = rm /tmp/nwg-shell-check-update.lock exec-once = wlsunset -t 4500 -T 6500 -l 51.5022 -L -0.1779 -g 1.0 exec-once = swaync -c /home/spjz/.config/swaync/hyprland.json -s /home/spjz/.config/swaync/hyprland-1.css exec-once = nm-applet --indicator exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store exec = nwg-drawer -r -c 6 -is 64 -fscol 2 -ovl -g Tokyonight-Dark -i palenight -s hyprland-1.css -term kitty -ft -wm hyprland -pbexit 'nwg-dialog -p exit-hyprland -c "hyprctl dispatch exit"' -pblock 'nwg-lock' -pbpoweroff 'nwg-dialog -p poweroff -c "systemctl -i poweroff"' -pbreboot 'nwg-dialog -p reboot -c "systemctl reboot"' -pbsleep 'nwg-dialog -p sleep -c "systemctl suspend"' -pbsize 48 exec = nwg-panel -c hyprland-1 -s hyprland-1.css exec = nwg-shell-check-updates exec-once = nwg-update-indicator exec = nwg-screenshot-applet # GENERAL SETTINGS general { border_size = 1 no_border_on_floating = false gaps_in = 2 gaps_out = 2 col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) layout = dwindle resize_on_border = true extend_border_grab_area = true hover_icon_on_border = true } # DWINDLE LAYOUT dwindle { pseudotile = false force_split = 0 preserve_split = true smart_split = false smart_resizing = true special_scale_factor = 0.8 split_width_multiplier = 1.0 no_gaps_when_only = false use_active_for_splits = true default_split_ratio = 1.0 } # MASTER LAYOUT master { allow_small_split = false special_scale_factor = 0.8 mfact = 0.55 new_is_master = true new_on_top = false no_gaps_when_only = true orientation = left inherit_fullscreen = true always_center_master = false } # INPUT DEVICES input { kb_layout = gb repeat_rate = 25 repeat_delay = 600 follow_mouse = 1 mouse_refocus = true float_switch_override_focus = 1 touchpad { disable_while_typing = true natural_scroll = true scroll_factor = 1.0 middle_button_emulation = true clickfinger_behavior = true tap-to-click = true } } # MISC SETTINGS misc { disable_hyprland_logo = true disable_splash_rendering = true vrr = 0 mouse_move_enables_dpms = true key_press_enables_dpms = true layers_hog_keyboard_focus = true focus_on_activate = true mouse_move_focuses_monitor = true } # KEY BINDINGS bindr = SUPER, SUPER_L, exec, $launcher ======Config-End======== ```

Description

I frequently initiate this input glitch in Google Chrome, whilst using my laptop's touchpad. It seems to be related to a conflict of input gestures.

How to reproduce

Using the trackpad in Google Chrome, whilst selecting text with one finger, initiate a two finger tap to open the context menu, then cancel with another tap. The menu may appear briefly but the current browser tab loses interactivity with no way to recover.

Crash reports, logs, images, videos

No response

spjz commented 2 months ago

Just found it is even easier to replicate this by simply dragging a youtube thumbnail image, and dropping it anywhere on the page. No further click events become possible on the tab.

spjz commented 2 months ago

Probably related to https://github.com/hyprwm/Hyprland/issues/6509

hdm9527 commented 2 months ago

It should be fixed. 2031af82fa029aa098357339d502b53c371919d4

spjz commented 2 months ago

It should be fixed. 2031af8

Nice one. Tested in hyprland-git 41.2, issue is indeed fixed 👍🏻