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.61k stars 827 forks source link

Touchpad doesn't detect the right number of fingers after a period of inactivity #7459

Open nicobonada opened 3 weeks ago

nicobonada commented 3 weeks ago

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit 9a09eac79b85c846e3a865a9078a3f8ff65a9259 (props: bump version to 0.42.0). Date: 2024-08-07 Tag: v0.42.0, commits: 9a09eac79b85c846e3a865a9078a3f8ff65a9259 flags: (if any) System Information: System name: Linux Node name: navi Release: 6.10.4 Version: #1-NixOS SMP PREEMPT_DYNAMIC Sun Aug 11 10:58:04 UTC 2024 GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-LP GT2 [Iris Xe Graphics] [8086:9a49] (rev 01) (prog-if 00 [VGA controller]) os-release: ANSI_COLOR="1;34" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" BUILD_ID="24.11.20240818.8a33541" DOCUMENTATION_URL="https://nixos.org/learn.html" HOME_URL="https://nixos.org/" ID=nixos IMAGE_ID="" IMAGE_VERSION="" LOGO="nix-snowflake" NAME=NixOS PRETTY_NAME="NixOS 24.11 (Vicuna)" SUPPORT_URL="https://nixos.org/community.html" VERSION="24.11 (Vicuna)" VERSION_CODENAME=vicuna VERSION_ID="24.11" plugins: ======Config-Start====== Config File: /home/nico/.config/hypr/hyprland.conf: Read Succeeded exec-once = /nix/store/sb8wn0zw1mk1g4mny8mqmn9h8q0ldvjj-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target # vi:ft=hyprlang # Refer to the wiki for more information. # https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ # Please note not all available settings / options are set here. # For a full list, see the wiki # You can split this configuration into multiple files # Create your files separately and then link them to this file like this: # source = ~/.config/hypr/myColors.conf ################ ### MONITORS ### ################ # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=desc:BOE 0x095F,preferred,auto,1.6 # Framework 13 # monitor=desc:ASUSTek COMPUTER INC VG258 MBLMQS146465,1920x1080@144,0x0,1,vrr,2 monitor=desc:ASUSTek COMPUTER INC VG258 MBLMQS146465,1920x1080@144,0x0,1 monitor=desc:ViewSonic Corporation VX2457 0x01010101,1920x1080@60,1920x0,1,vrr,2 monitor=,preferred,auto,1 ################### ### MY PROGRAMS ### ################### # See https://wiki.hyprland.org/Configuring/Keywords/ # Set programs that you use $terminal = kitty $fileManager = pcmanfm-qt $menud = rofi -show drun $menuw = rofi -show window # $browser = vivaldi $browser = floorp ################# ### AUTOSTART ### ################# # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: exec-once = lxqt-policykit-agent exec-once = jamesdsp --tray exec-once = wayland-pipewire-idle-inhibit exec-once = waybar exec-once = type solaar >/dev/null 2>&1 && solaar -w hide exec-once = $terminal ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = XCURSOR_SIZE,24 env = HYPRCURSOR_THEME,phinger-cursors-light env = HYPRCURSOR_SIZE,24 env = QT_QPA_PLATFORM,wayland env = QT_QPA_PLATFORMTHEME,qt6ct ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hyprland.org/Configuring/Variables/ # https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 5 gaps_out = 5 border_size = 2 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = false # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false layout = dwindle } # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 10 # Change transparency of focused and unfocused windows active_opacity = 1.0 inactive_opacity = 1.0 drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true size = 3 passes = 1 vibrancy = 0.1696 } } # https://wiki.hyprland.org/Configuring/Variables/#animations animations { enabled = true # 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 } # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more dwindle { pseudotile = true # Master switch for pseudotiling. Enabling is bound to mod + P in the keybinds section below preserve_split = true # You probably want this } # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more master { new_status = master } # https://wiki.hyprland.org/Configuring/Variables/#misc misc { disable_splash_rendering = true force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( } ############# ### INPUT ### ############# # https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = us kb_variant = kb_model = kb_options = compose:caps kb_rules = repeat_rate = 40 repeat_delay= 250 follow_mouse = 1 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. touchpad { natural_scroll = false tap_button_map = lmr } } # https://wiki.hyprland.org/Configuring/Variables/#gestures gestures { workspace_swipe = true } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more device { name = epic-mouse-v1 sensitivity = -0.5 } #################### ### KEYBINDINGSS ### #################### # See https://wiki.hyprland.org/Configuring/Keywords/ $mod = SUPER # Sets "Windows" key as main modifier # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mod, Return, exec, $terminal bind = $mod, E, exec, $fileManager bind = $mod, D, exec, $menud bind = $mod, Tab, exec, $menuw bind = $mod, O, exec, $browser bind = $mod, B, exec, bemoji -n bind = $mod SHIFT, B, exec, bemoji -n -t bind = $mod, C, centerwindow, bind = $mod, Q, killactive, bind = $mod, M, exit, bind = $mod, V, togglefloating, bind = $mod, P, pseudo, # dwindle bind = $mod, J, togglesplit, # dwindle bind = , XF86MonBrightnessDown, exec, brillo -U 5 bind = , XF86MonBrightnessUp, exec, brillo -A 5 bind = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 3%+ #increase sound volume bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 3%- #decrease sound volume bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle # mute sound bind = , XF86AudioNext, exec, mpc next bind = , XF86AudioPrev, exec, mpc prev bind = , XF86AudioPlay, exec, playerctl play-pause # Move focus with mod + arrow keys bind = $mod, left, movefocus, l bind = $mod, right, movefocus, r bind = $mod, up, movefocus, u bind = $mod, down, movefocus, d # Switch workspaces with mod + [0-9] bind = $mod, 1, workspace, 1 bind = $mod, 2, workspace, 2 bind = $mod, 3, workspace, 3 bind = $mod, 4, workspace, 4 bind = $mod, 5, workspace, 5 bind = $mod, 6, workspace, 6 bind = $mod, 7, workspace, 7 bind = $mod, 8, workspace, 8 bind = $mod, 9, workspace, 9 bind = $mod, 0, workspace, 10 # Move active window to a workspace with mod + SHIFT + [0-9] bind = $mod SHIFT, 1, movetoworkspace, 1 bind = $mod SHIFT, 2, movetoworkspace, 2 bind = $mod SHIFT, 3, movetoworkspace, 3 bind = $mod SHIFT, 4, movetoworkspace, 4 bind = $mod SHIFT, 5, movetoworkspace, 5 bind = $mod SHIFT, 6, movetoworkspace, 6 bind = $mod SHIFT, 7, movetoworkspace, 7 bind = $mod SHIFT, 8, movetoworkspace, 8 bind = $mod SHIFT, 9, movetoworkspace, 9 bind = $mod SHIFT, 0, movetoworkspace, 10 # Example special workspace (scratchpad) # bind = $mod, S, togglespecialworkspace, magic # bind = $mod SHIFT, S, movetoworkspace, special:magic # Scroll through existing workspaces with mod + scroll bind = $mod, mouse_down, workspace, e+1 bind = $mod, mouse_up, workspace, e-1 # Move/resize windows with mod + LMB/RMB and dragging bindm = $mod, mouse:272, movewindow bindm = $mod, mouse:273, resizewindow bindm = $mod, Control_L, movewindow bindm = $mod, ALT_L, resizewindow bind = $mod, A, submap, fastedit submap = fastedit binde = , left, movefocus, l binde = , right, movefocus, r binde = , up, movefocus, u binde = , down, movefocus, d bind = SHIFT, left, movewindow, l bind = SHIFT, right, movewindow, r bind = SHIFT, up, movewindow, u bind = SHIFT, down, movewindow, d bind = , escape, submap, reset submap = reset bind = $mod, S, submap, screenshot submap = screenshot # Screenshot a region bind = , R, exec, hyprshot -m region -o $HOME/screen bind = , R, submap, reset # Screenshot a monitor bind = , M, exec, hyprshot -m output -o $HOME/screen bind = , M, submap, reset # Screenshot a window bind = , W, exec, hyprshot -m window -o $HOME/screen bind = , W, submap, reset # Record a region (toggle) bind = , V, exec, pkill wl-screenrec || wl-screenrec -g "$(slurp)" bind = , escape, submap, reset submap = reset ############################## ### WINDOWS AND WORKSPACES ### ############################## # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ windowrulev2 = opacity 0.95, class:^kitty$ windowrulev2 = float, class:^mpv$ windowrulev2 = noborder, class:^mpv$ windowrulev2 = rounding 0, class:^mpv$ windowrulev2 = float, class:^.gamescope-wrapped$ windowrulev2 = rounding 0, class:^.gamescope-wrapped$ windowrulev2 = float, class:^xdg-desktop-portal-gtk$ # Vivaldi pip window windowrulev2 = rounding 0, title:^Picture in picture$ windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. layerrule = blur, waybar debug { disable_logs = false } ======Config-End======== ```

Description

After some time passes with the lid closed:

How to reproduce

I'm having a hard time reproducing it consistently myself but this happens on a Framework 13 laptop with the output for hyprctl devices attached devices.txt

Crash reports, logs, images, videos

This happens after several hours of use so the log files are huge but these are the differences I've noticed:

Log output when it's working fine (single finger movement on touchpad): normal.log

Log output when pointer doesn't move (also single finger on touchpad): wrong.log

I can provide more information but it might take a few days as it doesn't happen frequently.

vaxerski commented 3 weeks ago

eeee this sounds like an issue further down, possibly kernel / drivers / hardware?

Have you tested kwin / sway?

nicobonada commented 3 weeks ago

Before hyprland I'd only used x11+i3wm (with the libinput driver) on this laptop and never had it happen there, which makes me doubt it's a hardware problem.

I guess it's possible the issue is specifically with libinput under wayland in that case.

vaxerski commented 2 weeks ago

you can test kwin/sway for that

nicobonada commented 2 weeks ago

Unfortunately it would be hard to test it because it's hard to reproduce reliably. Today it happened for the first time in a week.

I did run libinput debug-events --verbose when it happened to see if anything was going on there and there were no palm detection messages, everything seemed normal.

I found a workaround though. Actually placing my palm on the touchpad and removing it seems to restore the finger detection to normal.