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
20.11k stars 854 forks source link

Crashes after hyprlock shows briefly after waking up from suspension with an external monitor #6828

Open andrew-shc opened 2 months ago

andrew-shc commented 2 months ago

Regression?

Yes, No

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit d7ea1b7785f31e9fd6477490309721a19a835592 (xwayland: break cyclic loop of parents (6722)). Date: Sun Jun 30 15:26:08 2024 Tag: v0.41.2-14-gd7ea1b77, commits: 4900 flags: (if any) System Information: System name: Linux Node name: archtotoro Release: 6.9.7-arch1-1 Version: #1 SMP PREEMPT_DYNAMIC Fri, 28 Jun 2024 04:32:50 +0000 GPU information: 00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-P [Iris Xe Graphics] [8086:a7a0] (rev 04) (prog-if 00 [VGA controller]) 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD107GLM [RTX 2000 Ada Generation Laptop GPU] [10de:28b8] (rev a1) (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/andrewhc/.config/hypr/hyprland.conf: Read Succeeded debug { disable_logs = false } # ####################################################################################### # AUTOGENERATED HYPR CONFIG. # PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, # OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. # ####################################################################################### autogenerated = 0 # remove this line to remove the warning # This is an example Hyprland config file. # 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=eDP-1,preferred,1080x920,auto monitor=HDMI-A-1,preferred,0x0,auto,transform,1 workspace=1,monitor:HDMI-A-1 workspace=2,monitor:eDP-1 ################### ### MY PROGRAMS ### ################### env = QT_QPA_PLATFORM,wayland env = QT_QPA_PLATFORMTHEME,qt5ct env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_AUTO_SCREEN_SCALE_FACTOR,1 env = QT_STYLE_OVERRIDE,kvantum exec-once=hyprpaper & exec-once=waybar exec-once=/usr/lib/polkit-kde-authentication-agent-1 exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once=hypridle exec-once=mako exec-once=clipse -listen # See https://wiki.hyprland.org/Configuring/Keywords/ # Set programs that you use $terminal = kitty $fileManager = dolphin $menu = tofi-drun --width 300 --height 100 --font /usr/share/fonts/TTF/JetBrainsMonoNLNerdFontMono-Regular.ttf --hint-font false ################# ### AUTOSTART ### ################# # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: # exec-once = $terminal # exec-once = nm-applet & # exec-once = waybar & hyprpaper & firefox ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = XCURSOR_SIZE,18 env = HYPRCURSOR_SIZE,18 ##################### # DEVICES ##################### device { name = logitech-m720-triathlon-multi-device-mouse-1 sensitivity = -0.5 } ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hyprland.org/Configuring/Variables/ # https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 0 gaps_out = 0 border_size = 2 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(fe8019ee) col.inactive_border = rgba(282828ee) # 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 = 0 # Change transparency of focused and unfocused windows active_opacity = 1.0 inactive_opacity = 0.9 drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1d2021ee) # 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 mainMod + P in the keybinds section below preserve_split = false # 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 { force_default_wallpaper = 0 # 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 = kb_rules = follow_mouse = 1 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. touchpad { natural_scroll = false } } # https://wiki.hyprland.org/Configuring/Variables/#gestures gestures { workspace_swipe = false } # 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/ $mainMod = SUPER # Sets "Windows" key as main modifier # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, return, exec, $terminal bind = $mainMod, Q, killactive, bind = $mainMod, delete, exit, bind = $mainMod, E, exec, $fileManager # bind = $mainMod, V, togglefloating, bind = $mainMod, D, exec, $menu # bind = $mainMod, P, pseudo, # dwindle # bind = $mainMod, J, togglesplit, # dwindle # 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 around windows 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 # Example special workspace (scratchpad) bind = $mainMod, S, togglespecialworkspace, magic bind = $mainMod SHIFT, S, movetoworkspace, special:magic # 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 bind = ,XF86MonBrightnessDown,exec,brillo -q -u 100000 -U 2 bind = ,XF86MonBrightnessUp,exec,brillo -q -u 100000 -A 2 bind = ,XF86AudioMute,exec,pactl set-sink-mute @DEFAULT_SINK@ toggle binde = ,XF86AudioLowerVolume,exec,pactl set-sink-volume @DEFAULT_SINK@ -2% binde = ,XF86AudioRaiseVolume,exec,pactl set-sink-volume @DEFAULT_SINK@ +2% ############################## ### 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 v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. windowrulev2 = float,class:(floating) bind = $mainMod, A, exec, kitty --class floating -e zsh -c 'clipse' ======Config-End======== ```
Hypridle Configuration ```sh general { lock_cmd = pidof hyprlock || hyprlock before_sleep_cmd = loginctl lock-session after_sleep_cmd = hyprctl dispatch dpms on } listener { timeout = 300 # 5min on-timeout = loginctl lock-session } listener { timeout = 330 # 5.5min on-timeout = hyprctl dispatch dpms off on-resume = hyprctl dispatch dpms on } listener { timeout = 1800 # 30min on-timeout = systemctl suspend } ```

Description

Hyprland crashes whenever I try to open up my laptop after going through all stages in the hypridle configuration. But the hyprlock screen shows on my main laptop display (eDP) briefly before it returns to TTY with nothing in the shell (?)

It seems to be related to this issue #3076 although I always enable both my external monitor and my laptop screen. (Edit: #804 too?, #1728)

I tried manually logout using loginctl, dpms off to turn the screen off, and systemctl suspend (all in one go) and still does not seems match/emulate this issue.

How to reproduce

On a laptop, try using the hypridle configuration up there and with an external monitor connected via an HDMI port (idk how improtant this is) and try to let the hypridle go through all the state and try waking up the laptop again and it should crash??

This seems to be a very common setup so I don't know why mines is not working. I tried looking through the logs and crash report and it does not give me anything useful (?), so I'm asking here if anyone can help me where should I look for (because I don't really have the time to pry up hyprland and hypridle right now for the sake of a complete bug report).

Crash reports, logs, images, videos

hyprlandCrashReport1752.txt

journalctl --since "2024-07-09 00:00:00" .journalctl_crash_for_hyprland_07092024.log

andrew-shc commented 2 months ago

This has been happening multiple times now since I added an external monitor (I had hypridle with just my laptop screen for a few days before which worked fine)