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
21.9k stars 911 forks source link

Keyboard input lags, sometimes for multiple seconds #8520

Closed erahhal closed 1 week ago

erahhal commented 1 week ago

Already reported ? *

Regression?

No

System Info and Version

System/Version info ```sh Hyprland 0.45.0 built from branch at commit 936dfedbadbae761cd307ba7509467b55ac5e1ae (). Date: 2024-11-18 Tag: , commits: 5478 built against aquamarine 0.5.0 flags set: debug System Information: System name: Linux Node name: antikythera Release: 6.6.60 Version: #1-NixOS SMP PREEMPT_DYNAMIC Fri Nov 8 15:28:28 UTC 2024 GPU information: c4:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix3 [1002:1900] (rev d2) (prog-if 00 [VGA controller]) os-release: ANSI_COLOR="1;34" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" BUILD_ID="24.11.20241116.057f63b" CPE_NAME="cpe:/o:nixos:nixos:24.11" DEFAULT_HOSTNAME=antikythera DOCUMENTATION_URL="https://nixos.org/learn.html" HOME_URL="https://nixos.org/" ID=nixos ID_LIKE="" IMAGE_ID="" IMAGE_VERSION="" LOGO="nix-snowflake" NAME=NixOS PRETTY_NAME="NixOS 24.11 (Vicuna)" SUPPORT_END="2025-06-30" SUPPORT_URL="https://nixos.org/community.html" VARIANT="" VARIANT_ID="" VENDOR_NAME=NixOS VENDOR_URL="https://nixos.org/" VERSION="24.11 (Vicuna)" VERSION_CODENAME=vicuna VERSION_ID="24.11" plugins: ======Config-Start====== Config File: /home/erahhal/.config/hypr/hyprland.conf: Read Succeeded exec-once = /nix/store/2542sr1ch7ypz52w423vyn0fhn934rj7-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 $mod=SUPER $screenshotarea=/nix/store/nyy06jn0pj5bla5m9w9c48xiwhb9m51j-hyprland-0.45.0+date=2024-11-18_936dfed/bin/hyprctl keyword animation "fadeOut,0,0,default"; grimblast --notify copysave area; /nix/store/nyy06jn0pj5bla5m9w9c48xiwhb9m51j-hyprland-0.45.0+date=2024-11-18_936dfed/bin/hyprctl keyword animation "fadeOut,1,4,default" $term=/nix/store/c2f2wylymsyq1b948b7418qsz3njwipq-foot-1.19.0/bin/foot animations { animation=border, 1, 2, default animation=fade, 1, 4, default animation=windows, 1, 3, default, popin 80% animation=workspaces, 1, 2, default, slide } debug { disable_logs=false } decoration { rounding=0 } device { name=tpps/2-elan-trackpoint sensitivity=-0.300000 tap-to-click=false } dwindle { preserve_split=1 pseudotile=1 } general { border_size=1 col.active_border=rgba(4a7697ff) col.inactive_border=rgba(2b2b2bff) gaps_in=0 gaps_out=0 no_border_on_floating=true resize_on_border=true } gestures { workspace_swipe=1 workspace_swipe_forever=1 } group { groupbar { col.active=rgba(285577ff) col.inactive=rgba(2b2b2bff) font_family=DejaVu Sans font_size=10 height=22 text_color=rgba(ffffffff) } col.border_active=rgba(285577ff) col.border_inactive=rgba(2b2b2bff) insert_after_current=false } input { touchpad { clickfinger_behavior=true disable_while_typing=true scroll_factor=0.300000 tap-to-click=false } accel_profile=adaptive float_switch_override_focus=0 follow_mouse=2 kb_layout=us, cn kb_options=ctrl:nocaps repeat_delay=255 repeat_rate=50 } misc { disable_hyprland_logo=true disable_splash_rendering=true focus_on_activate=true force_default_wallpaper=0 mouse_move_focuses_monitor=false } xwayland { force_zero_scaling=true } bind=$mod, E, exec, if systemctl --user is-active --quiet fcitx5-daemon; then systemctl --user stop fcitx5-daemon; else systemctl --user start fcitx5-daemon; fi bind=$mod, Return, exec, $term bind=$mod, X, exec, /nix/store/i9c1salys861a8rfbybcxf3wzc74qimr-hyprlock.sh bind=$mod, A, exec, /nix/store/5pfk75pc86n02xnrx1kkpbvsbnwf7wxx-hyprpicker-0.4.1/bin/hyprpicker -a --format=hex bind=$mod, C, exec, /nix/store/77bnz30j4ks4l71l57wp7d992zwfp3wc-hyprland-kill-active.sh bind=$mod_SHIFT, C, exec, /nix/store/nyy06jn0pj5bla5m9w9c48xiwhb9m51j-hyprland-0.45.0+date=2024-11-18_936dfed/bin/hyprctl -j activewindow | /nix/store/75q9nlm0zn7cg6w151cc4mkqqk0mwaxa-jq-1.7.1-bin/bin/jq '.pid' | /nix/store/lfhmpajzgfmgl8xrdvp2r9hdi2rf17wy-findutils-4.10.0/bin/xargs -L 1 kill -9 bind=$mod, R, exec, /nix/store/nyy06jn0pj5bla5m9w9c48xiwhb9m51j-hyprland-0.45.0+date=2024-11-18_936dfed/bin/hyprctl reload bind=$mod, Y, exec, systemctl --user restart kanshi bind=$mod, T, exec, /nix/store/acbm4i0lv1sm6nbysqcc6w3wnpz1sbl3-hyprland-toggle-group.sh bind=$mod_SHIFT, E, exec, nag-graphical 'Exit Hyprland?' '/nix/store/s8xcpnz026glv61mca4yzkljhw6r7lig-exit-hyprland' bind=$mod_SHIFT, P, exec, nag-graphical 'Power off?' 'systemctl poweroff -i, mode "default"' bind=$mod_SHIFT, R, exec, nag-graphical 'Reboot?' 'systemctl reboot' bind=$mod_SHIFT, S, exec, nag-graphical 'Suspend?' '/nix/store/i9c1salys861a8rfbybcxf3wzc74qimr-hyprlock.sh suspend' bind=$mod_SHIFT_CTRL, L, movecurrentworkspacetomonitor, r bind=$mod_SHIFT_CTRL, H, movecurrentworkspacetomonitor, l bind=$mod_SHIFT_CTRL, K, movecurrentworkspacetomonitor, u bind=$mod_SHIFT_CTRL, J, movecurrentworkspacetomonitor, d bind=$mod, N, exec, /nix/store/dgaw9jnwxgs9k5qsnga85v7wihkbazfd-SwayNotificationCenter-0.10.1/bin/swaync-client -t -sw bind=$mod_SHIFT, N, exec, /nix/store/dgaw9jnwxgs9k5qsnga85v7wihkbazfd-SwayNotificationCenter-0.10.1/bin/swaync-client -C -sw bind=$mod_SHIFT_CTRL, N, exec, /nix/store/dgaw9jnwxgs9k5qsnga85v7wihkbazfd-SwayNotificationCenter-0.10.1/bin/swaync-client -d -sw bind=SHIFT_CTRL, 3, exec, /nix/store/chlfdijzg6j0mps6g3fqdkyyyzb8y0mr-grim-1.4.1/bin/grim -o $(/nix/store/nyy06jn0pj5bla5m9w9c48xiwhb9m51j-hyprland-0.45.0+date=2024-11-18_936dfed/bin/hyprctl -j activeworkspace | jq -r '.monitor') - | /nix/store/vmdf7jz3dydhglzkl7pjx26rblskn2fi-wl-clipboard-2.2.1/bin/wl-copy -t image/png bind=SHIFT_CTRL, 4, exec, /nix/store/chlfdijzg6j0mps6g3fqdkyyyzb8y0mr-grim-1.4.1/bin/grim -g "$(/nix/store/1y3akli46vf55kqigbmqb2dswn3j3y66-slurp-1.5.0/bin/slurp -d)" - | /nix/store/vmdf7jz3dydhglzkl7pjx26rblskn2fi-wl-clipboard-2.2.1/bin/wl-copy -t image/png bind=SHIFT_CTRL, 5, exec, /nix/store/chlfdijzg6j0mps6g3fqdkyyyzb8y0mr-grim-1.4.1/bin/grim -g "$(/nix/store/nyy06jn0pj5bla5m9w9c48xiwhb9m51j-hyprland-0.45.0+date=2024-11-18_936dfed/bin/hyprctl -j activewindow | jq -r '.at | join(",")') $(/nix/store/nyy06jn0pj5bla5m9w9c48xiwhb9m51j-hyprland-0.45.0+date=2024-11-18_936dfed/bin/hyprctl -j activewindow | jq -r '.size | join("x")')" - | /nix/store/vmdf7jz3dydhglzkl7pjx26rblskn2fi-wl-clipboard-2.2.1/bin/wl-copy -t image/png bind=$mod_CTRL, L, resizeactive, 10 0 bind=$mod_CTRL, H, resizeactive, -10 0 bind=$mod_CTRL, K, resizeactive, 0 -10 bind=$mod_CTRL, J, resizeactive, 0 10 bind=$mod, H, exec, /nix/store/ncbw68ndk76ydvnnvxf6gm54b3hqpgyg-hyprland-move-left.sh bind=$mod, L, exec, /nix/store/8hmb4s17x325sbhr6hkbjmkhvih1s07c-hyprland-move-right.sh bind=$mod, K, movefocus, u bind=$mod, J, movefocus, d bind=$mod_SHIFT, L, movewindow, r bind=$mod_SHIFT, H, movewindow, l bind=$mod_SHIFT, K, movewindow, u bind=$mod_SHIFT, J, movewindow, d bind=$mod, F, fullscreen bind=$mod, SPACE, togglefloating bind=$mod, P, exec, /nix/store/nkjjc70cidfc3wbpas7kqr7agasma59c-rofi-1.7.5+wayland3/bin/rofi -show drun -theme ~/.config/rofi/launcher.rasi bind=$mod, Escape, exec, wlogout -p layer-shell bind=$mod, O, exec, run-as-service wl-ocr bind=$mod, S, submap, resize bind=, Print, exec, $screenshotarea bind=CTRL, Print, exec, grimblast --notify --cursor copysave output bind=$mod_SHIFT_CTRL, R, exec, grimblast --notify --cursor copysave output bind=ALT, Print, exec, grimblast --notify --cursor copysave screen bind=$mod_SHIFT_ALT, R, exec, grimblast --notify --cursor copysave screen bind=$mod, bracketleft, workspace, m-1 bind=$mod, bracketright, workspace, m+1 bind=$mod_SHIFT, braceleft, focusmonitor, l bind=$mod_SHIFT, braceright, focusmonitor, r bind=, mouse:274, exec, ; bind=$mod, 1, workspace, 1 bind=$mod_SHIFT, 1, movetoworkspace, 1 bind=$mod, 2, workspace, 2 bind=$mod_SHIFT, 2, movetoworkspace, 2 bind=$mod, 3, workspace, 3 bind=$mod_SHIFT, 3, movetoworkspace, 3 bind=$mod, 4, workspace, 4 bind=$mod_SHIFT, 4, movetoworkspace, 4 bind=$mod, 5, workspace, 5 bind=$mod_SHIFT, 5, movetoworkspace, 5 bind=$mod, 6, workspace, 6 bind=$mod_SHIFT, 6, movetoworkspace, 6 bind=$mod, 7, workspace, 7 bind=$mod_SHIFT, 7, movetoworkspace, 7 bind=$mod, 8, workspace, 8 bind=$mod_SHIFT, 8, movetoworkspace, 8 bind=$mod, 9, workspace, 9 bind=$mod_SHIFT, 9, movetoworkspace, 9 bind=$mod, 0, workspace, 10 bind=$mod_SHIFT, 0, movetoworkspace, 10 bind=,switch:on:Lid Switch,exec,/nix/store/i9c1salys861a8rfbybcxf3wzc74qimr-hyprlock.sh suspend bindl=, XF86AudioPlay, exec, playerctl play-pause bindl=, XF86AudioPrev, exec, playerctl previous bindl=, XF86AudioNext, exec, playerctl next bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bindl=, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 6%+ bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 6%- bindle=, XF86MonBrightnessUp, exec, light -A 5 bindle=, XF86MonBrightnessDown, exec, light -U 5 bindm=$mod, mouse:272, movewindow bindm=$mod, mouse:273, resizewindow bindm=$mod_ALT, mouse:272, resizewindow env=XDG_CURRENT_DESKTOP,Hyprland env=XDG_SESSION_TYPE,wayland env=XDG_SESSION_DESKTOP,Hyprland env=GDK_BACKEND,wayland,x11,* env=QT_QPA_PLATFORM,wayland;xcb env=SDL_VIDEODRIVER,wayland env=CLUTTER_BACKEND,wayland env=QT_AUTO_SCREEN_SCALE_FACTOR,1 env=QT_QPA_PLATFORM,wayland;xcb env=QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env=QT_QPA_PLATFORMTHEME,qt5ct exec=/nix/store/i96pyq67va7sf4gbm847vrwlcpwlmzwi-hyprland-wallpaper exec=pkill blueman-applet; /nix/store/xqa15fnkc4pm5zk7bkqynfxzq4h1yp0g-blueman-2.4.3/bin/blueman-applet exec=systemctl --user restart xdg-desktop-portal-hyprland exec=systemctl --user restart polkit-gnome-authentication-agent-1 exec=systemctl --user restart swaynotificationcenter exec=systemctl --user restart network-manager-applet exec=systemctl --user restart wlsunset exec=systemctl --user stop sway-idle exec=systemctl --user restart hypridle exec=/nix/store/cni877k6fqpsqn400xwmrb1jldj4jm5y-hyprland-bitwarden-resize exec-once=[workspace 2 silent] foot tmux a -dt code exec-once=[workspace 4 silent] spotify exec-once=[workspace 4 silent] brave exec-once=[workspace 6 silent] signal-desktop exec-once=[workspace 6 silent] telegram-desktop exec-once=[workspace 6 silent] whatsapp-for-linux exec-once=[workspace 7 silent] discord exec-once=[workspace 7 silent] element-desktop exec-once=[workspace 5 silent] firefox exec-once=tmux setenv -g HYPRLAND_INSTANCE_SIGNATURE "$HYPRLAND_INSTANCE_SIGNATURE" exec-once=/nix/store/2jcxgqgk5kafmgk4026dkrdxln4wfxxs-waybar-0.11.0/bin/waybar monitor=eDP-1,preferred,0x1440,1.8 monitor=desc:LG Electronics LG Ultra HD 0x00043EAD,preferred,652x0,1.5 monitor=desc:LG Electronics LG HDR 4K 0x00020F5B,preferred,3212x0,1.5 windowrulev2=workspace 2, silent, class:^(kitty)$ windowrulev2=workspace 2, silent, class:^(foot)$ windowrulev2=workspace 3, silent, class:^(Slack)$ windowrulev2=workspace 4, silent, title:^(Spotify)$ windowrulev2=workspace 4, silent, class:^(brave-browser)$ windowrulev2=workspace 6, class:^(signal)$ windowrulev2=workspace 6, class:^(org.telegram.desktop)$ windowrulev2=workspace 6, class:^(whatsapp-for-linux)$ windowrulev2=workspace 7, class:^(discord)$ windowrulev2=workspace 7, class:^(Element)$ windowrulev2=workspace 1, silent, class:^(chromium-browser)$ windowrulev2=float, title:^(KCalc)$ windowrulev2=float, title:^(Media viewer)$ windowrulev2=float, title:^(Picture-in-Picture)$ windowrulev2=pin, title:^(Picture-in-Picture)$ windowrulev2=workspace special silent, title:^(Firefox — Sharing Indicator)$ windowrulev2=workspace special silent, title:^(.*is sharing (your screen|a window).)$ windowrulev2=stayfocused, class:^(zenity)$ windowrulev2=float, initialClass:^(mpv)$ windowrulev2=float, class:^(mpv)$ windowrulev2=fullscreen, initialClass:^(mpv)$ windowrulev2=fullscreen, class:^(mpv)$ windowrulev2=idleinhibit focus, initialClass:^(mpv)$ windowrulev2=idleinhibit focus, class:^(mpv)$ windowrulev2=idleinhibit focus, class:^(zoom)$ windowrulev2=idleinhibit fullscreen, class:^(firefox)$ windowrulev2=idleinhibit fullscreen, class:^(chromium)$ windowrulev2=idleinhibit fullscreen, class:^(brave)$ windowrulev2=float, initialTitle:^(Bitwarden)$ windowrulev2=float, initialTitle:^(_crx_nngceckbapebfimnlniiiahkandclblb)$ windowrulev2=center, initialTitle:^(_crx_nngceckbapebfimnlniiiahkandclblb)$ windowrulev2=size 400 600, initialTitle:^(_crx_nngceckbapebfimnlniiiahkandclblb)$ windowrulev2=suppressevent maximize, class:^(firefox)$ windowrulev2=fullscreen,class:flameshot windowrulev2=float,class:flameshot windowrulev2=monitor 0,class:flameshot windowrulev2=move 0 0,class:flameshot windowrulev2=noanim,class:flameshot windowrulev2=noborder,class:flameshot windowrulev2=rounding 0,class:flameshot windowrulev2=stayfocused, class:^(BambuStudio)$,title:^()$ windowrulev2=suppressevent activate, class:^(BambuStudio)$,title:^()$ workspace=desc:LG Electronics LG Ultra HD 0x00043EAD, 1 workspace=desc:LG Electronics LG HDR 4K 0x00020F5B, 2 workspace=desc:LG Electronics LG HDR 4K 0x00020F5B, 3 workspace=desc:LG Electronics LG Ultra HD 0x00043EAD, 4 workspace=desc:LG Electronics LG Ultra HD 0x00043EAD, 5 workspace=desc:LG Electronics LG Ultra HD 0x00043EAD, 6 workspace=desc:LG Electronics LG Ultra HD 0x00043EAD, 7 workspace=desc:LG Electronics LG Ultra HD 0x00043EAD, 8 workspace=desc:LG Electronics LG Ultra HD 0x00043EAD, 9 workspace=w[t1], border:false workspace=w[g1], border:false # repeating binds (will repeat when key is held) submap = resize binde = , right, resizeactive, 10 0 binde = , left, resizeactive, -10 0 binde = , up, resizeactive, 0 -10 binde = , down, resizeactive, 0 10 bind = , escape, submap, reset submap = reset ======Config-End======== ```

Description

In several, but not all apps, keyboard input lags severely, to the point of almost being unusable. It doesn't seem to be specific to Wayland or XWayland. It behaves the worst by far in terminal apps like Foot and Kitty. Hyprland logs show the following when the timeouts occur:

[LOG] [AQ] [libinput] event7  - palm: keyboard timeout

This only is a problem on my Thinkpad P14 Gen 4 AMD, but does not occur on a Thinkpad X1C Gen 11 Intel, with the same config. The Intel machine shows the same log entries, but does not have the issue.

Tried disabling disable_while_typing but had no effect.

Same problem seen on latest master as well as 0.45 in NixOS unstable.

I'm typing this in Firefox right now which has no problem at all.

How to reproduce

This person had the exact same issue in Gnome, and solved it by clearing out dconf config, but that has no effect with this issue.

I could only find the same person posting to several places. No other instances of the issue. Searched Discord and this repo's bug tracker as well.

Crash reports, logs, images, videos

As mentioned above, the following is printed in the logs when the lag occurs:

[LOG] [AQ] [libinput] event7  - palm: keyboard timeout
RadicalTray commented 1 week ago

amd iGPU issue? https://gitlab.freedesktop.org/drm/amd/-/issues/3760

erahhal commented 1 week ago

amd iGPU issue? https://gitlab.freedesktop.org/drm/amd/-/issues/3760

Nope, rendering is smooth and perfect. Mouse input is fine. Even keyboard input is fine in some apps. The problem. The problem only occurs in about half the apps I've tried. And there's a libinput error in the logs when the lags occur.

RadicalTray commented 1 week ago

Have you tried setting amdgpu.dcdebugmask=0x610 on the kernel command line or downgrade linux-firmware and see if that stops the problem? Because that sounds really close to what happened to me. Keyboard input delay/text not updating when there is nothing moving on the screen while typing in SDDM and foot, and firefox is not affected. I also didn't have any rendering issues either except the input delay.

erahhal commented 1 week ago

@RadicalTray that fixed it! How did you find out about this? I'd like to follow whatever ticket is tracking the issue. Thank you, you saved me, my computer was useless!

Closing the ticket.