Closed squeaktoy closed 1 month ago
you can use hyprlock --immediate & sleep 1; hyprctl dispatch dpms off
to mitigate
but thats not a fix
I have a HDMI monitor, and I met this bug several times(random occurred, not always) on hyprland 0.41.2.
same issue on lenovo laptop with built-in monitor
For me on 0.41.x I never encountered this bug but when I upgraded to 0.42.0 with Aquamarine 0.3.1 I got this bug and it's 100% reproducible on my end. And it's not just the lock screen that crashes. Waybar crashes too after a monitor power cycle.
Does the hyprlock process still exist, after turning the monitor on and off? -> I had a red screen of death in the past when swaylock crashed, while still locked.
When I examined the situation via SSH it seemed that the lock program had crashed, yes.
The error message from swaylock, after turning the monitor on and off, which leads to a crash:
ext_session_lock_surface_v1@23: error 1: Null buffer attached
(using DisplayPort)
I could be mistaken, but perhaps a fix has already landed: https://github.com/hyprwm/aquamarine/commit/4f6642808b18827a574b5225f0436c597cbcdcc5
I have this issue on hdmi. It was broken in 0.41.1, fixed(for me at least) in 0.41.2 and broken again in 0.42
I could be mistaken, but perhaps a fix has already landed: hyprwm/aquamarine@4f66428
I tried the latest git checkout of aquamarine with Hyprland 0.42.0 but it's still not fixed.
Getting this about 50% of the time when locking from hypridle. I've set hyprlock to run before suspend, and after waking some time later I get the rsod. Logging into another tty I can see hyprlock is still running apparently, but no matter what I do I can't recover that hyprland session (Killing / Restarting / using loginctl doesn't get me back to hyprland instance). End up rebooting.
I have this issue on hdmi. It was broken in 0.41.1, fixed(for me at least) in 0.41.2 and broken again in 0.42
Same experience I've had version wise but I'm on DP
EDIT: Tried on hyprland-git and aquamarine-git and get no display output instead of a red screen. Still unrecoverable
I have a HDMI monitor, and I met this bug several times(random occurred, not always) on hyprland 0.41.2.
I meet this bug on 0.42 again, using hyprlock and swayidle(I use hypridle before, and it also meets this bug). According to the situations in this post, it seems that the bug randomly happened no matter what kind of display(DP/HDMI), lock app(swaylock/hyprlock) and idle app(swayidle/hypridle) is used.
I am found this bug in commit 7486576
which aquamarine adds. Also it maybe reproduction if installed hyprland (previous version) with hyprlock. I think the bug is definitely in aquamarine or hyprlock.
Reliably occurs after https://github.com/hyprwm/aquamarine/commit/2bff4a45215514e89e045e07878537105fde021d was merged. So long as at least one monitor has received dpms off, running a screen locker will cause it to either coredump or hang.
on nixos unstable both swaylock and hyprlock, sending the locking command then powerinf off and on the display result in unrecoverable red screen. amd gpu.
lock_cmd = "pidof swaylock || swaylock -c 000000 --daemonize --show-failed-attempts & sleep 3 && hyprctl dispatch dpms off";
Not present in 0.41.2 nixpkgs-old-hyprland.url = "github:nixos/nixpkgs/0e5c272e42d223ff7a82ace92a11b17fd92aace9";
pkgs-old-hyprland = import nixpkgs-old-hyprland {
inherit system;
config.allowUnfree = true;
};
programs.hyprland = {
enable = true;
package = pkgs-old-hyprland.hyprland;
};
hardware.graphics = {
package = pkgs-old-hyprland.mesa.drivers;
package32 = pkgs-old-hyprland.pkgsi686Linux.mesa.drivers;
};
hardware.graphics.enable32Bit = true;
wayland.windowManager.hyprland = {
package = pkgs-old-hyprland.hyprland;
I've been encountering the Red Screen of Death (RSOD) intermittently and seemingly at random. For context, I'm running an all-AMD system connected via DisplayPort. I've also switched to the Git versions of all Hypr-family components, but the issue persists with the same random RSOD occurrences.
Seems to be a duplicate of #7276
ya
Regression?
Yes
System Info and Version
System/Version info
```sh Hyprland, built from branch at commit 9a09eac79b85c846e3a865a9078a3f8ff65a9259 (props: bump version to 0.42.0). Date: Wed Aug 7 19:17:10 2024 Tag: v0.42.0, commits: 5069 flags: (if any) System Information: System name: Linux Node name: weerwolf Release: 6.6.41-gentoo-dist Version: #1 SMP PREEMPT_DYNAMIC Sat Aug 10 13:31:41 CEST 2024 GPU information: 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] [10de:1c82] (rev a1) (prog-if 00 [VGA controller]) NVRM version: NVIDIA UNIX x86_64 Kernel Module 550.107.02 Wed Jul 24 23:53:00 UTC 2024 os-release: NAME=Gentoo ID=gentoo PRETTY_NAME="Gentoo Linux" ANSI_COLOR="1;32" HOME_URL="https://www.gentoo.org/" SUPPORT_URL="https://www.gentoo.org/support/" BUG_REPORT_URL="https://bugs.gentoo.org/" VERSION_ID="2.15" plugins: ======Config-Start====== Config File: /home/user/.config/hypr/hyprland.conf: Read Succeeded # ####################################################################################### # 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. # ####################################################################################### # 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 debug { disable_logs = false } ################ ### MONITORS ### ################ # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=DP-1,1920x1080@165,0x0,1 ################### ### MY PROGRAMS ### ################### # See https://wiki.hyprland.org/Configuring/Keywords/ # Set programs that you use $terminal = foot $menu = dmenu_path | fuzzel -d | /bin/sh ################# ### AUTOSTART ### ################# # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: exec-once = hyprpm reload -n exec-once = hyprpaper exec-once = ckb-next --background exec-once = gammastep exec-once = dinitctl setenv DISPLAY=$DISPLAY exec-once = dinitctl start dunst exec-once = dinitctl start kwalletd exec-once = dbus-update-activation-environment --all ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = XCURSOR_SIZE,24 env = HYPRCURSOR_THEME,rose-pine-hyprcursor env = HYPRCURSOR_SIZE,32 env = SDL_VIDEODRIVER,wayland # NVIDIA env = LIBVA_DRIVER_NAME,nvidia env = XDG_SESSION_TYPE,wayland env = GBM_BACKEND,nvidia-drm env = __GLX_VENDOR_LIBRARY_NAME,nvidia ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hyprland.org/Configuring/Variables/ # https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 5 gaps_out = 20 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 = true 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 = false # 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 = true # You probably want this } # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more master { new_status = master } cursor { zoom_rigid = 1 } # 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 = true # If true disables the random hyprland logo / anime girl background. :( allow_session_lock_restore = true } group { col.border_active = rgba(33ccffee) rgba(00ff99ee) 45deg col.border_inactive = rgba(595959aa) groupbar { height = 15 font_size = 16 col.active = rgba(1188cc88) col.inactive = rgba(595959aa) } } plugin { overview { dragAlpha = 0.66 panelHeight = 150 centerAligned = true hideTopLayers = true showEmptyWorkspace = false drawActiveWorkspace = false overrideGaps = false } } ############# ### INPUT ### ############# # https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = us kb_variant = kb_model = kb_options = compose:ralt kb_rules = repeat_delay = 300 repeat_rate = 40 follow_mouse = 1 sensitivity = -0.5 # -1.0 - 1.0, 0 means no modification. touchpad { natural_scroll = false } } # https://wiki.hyprland.org/Configuring/Variables/#gestures gestures { workspace_swipe = false } binds { allow_workspace_cycles = 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/ $mainMod = SUPER # Sets "Windows" key as main modifier bind = $mainMod, Return, exec, $terminal bind = $mainMod & SHIFT, Q, killactive, bind = $mainMod & SHIFT, E, exit, bind = $mainMod, Space, togglefloating, bind = $mainMod, D, exec, $menu bind = $mainMod, F, fullscreen bind = $mainMod, M, fullscreen, 1 bind = $mainMod, Z, pin bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, V, togglesplit, # dwindle bind = $mainMod CTRL, Q, exec, hyprctl kill bind = $mainMod ALT, L, exec, swaylock -c 000000 # 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 focus with mainMod + hjkl bind = $mainMod, H, movefocus, l bind = $mainMod, L, movefocus, r bind = $mainMod, K, movefocus, u bind = $mainMod, J, movefocus, d # Move focus with mainMod + arrow keys bind = $mainMod SHIFT, left, movewindoworgroup, l bind = $mainMod SHIFT, right, movewindoworgroup, r bind = $mainMod SHIFT, up, movewindoworgroup, u bind = $mainMod SHIFT, down, movewindoworgroup, d # Move focus with mainMod + hjkl bind = $mainMod SHIFT, H, movewindoworgroup, l bind = $mainMod SHIFT, L, movewindoworgroup, r bind = $mainMod SHIFT, K, movewindoworgroup, u bind = $mainMod SHIFT, J, movewindoworgroup, d # Window cycle bind = $mainMod, Period, cyclenext bind = $mainMod, Comma, cyclenext, prev # Window swap bind = $mainMod SHIFT, Period, swapnext bind = $mainMod SHIFT, Comma, swapnext, prev # Group cycle bind = $mainMod CTRL, H, changegroupactive, b bind = $mainMod CTRL, J, changegroupactive, bind = $mainMod CTRL, K, changegroupactive, b bind = $mainMod CTRL, L, changegroupactive bind = $mainMod CTRL, left, changegroupactive, b bind = $mainMod CTRL, down, changegroupactive, bind = $mainMod CTRL, up, changegroupactive, b bind = $mainMod CTRL, right, changegroupactive # Group swap bind = $mainMod CTRL SHIFT, H, movegroupwindow, b bind = $mainMod CTRL SHIFT, J, movegroupwindow, bind = $mainMod CTRL SHIFT, K, movegroupwindow, b bind = $mainMod CTRL SHIFT, L, movegroupwindow bind = $mainMod CTRL SHIFT, left, movegroupwindow, b bind = $mainMod CTRL SHIFT, down, movegroupwindow, bind = $mainMod CTRL SHIFT, up, movegroupwindow, b bind = $mainMod CTRL SHIFT, right, movegroupwindow # Switch to previous workspace bind = $mainMod, B, workspace, previous bind = $mainMod SHIFT, B, movetoworkspace, previous # 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 # Switch workspaces with mainMod + [F1-F10] bind = $mainMod, F1, workspace, 11 bind = $mainMod, F2, workspace, 12 bind = $mainMod, F3, workspace, 13 bind = $mainMod, F4, workspace, 14 bind = $mainMod, F5, workspace, 15 bind = $mainMod, F6, workspace, 16 bind = $mainMod, F7, workspace, 17 bind = $mainMod, F8, workspace, 18 bind = $mainMod, F9, workspace, 19 bind = $mainMod, F10, workspace, 20 # 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 # Move active window to a workspace with mainMod + SHIFT + [F1-F10] bind = $mainMod SHIFT, F1, movetoworkspace, 11 bind = $mainMod SHIFT, F2, movetoworkspace, 12 bind = $mainMod SHIFT, F3, movetoworkspace, 13 bind = $mainMod SHIFT, F4, movetoworkspace, 14 bind = $mainMod SHIFT, F5, movetoworkspace, 15 bind = $mainMod SHIFT, F6, movetoworkspace, 16 bind = $mainMod SHIFT, F7, movetoworkspace, 17 bind = $mainMod SHIFT, F8, movetoworkspace, 18 bind = $mainMod SHIFT, F9, movetoworkspace, 19 bind = $mainMod SHIFT, F10, movetoworkspace, 20 # Example special workspace (scratchpad) bind = $mainMod, S, togglespecialworkspace, magic bind = $mainMod SHIFT, S, movetoworkspace, special:magic # Groups bind = $mainMod, G, togglegroup # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e-1 bind = $mainMod, mouse_up, workspace, e+1 # Scroll through existing workspaces with keyboard bind = $mainMod, N, workspace, e+1 bind = $mainMod SHIFT, N, workspace, e-1 bind = $mainMod, Period, workspace, e+1 bind = $mainMod, Comma, workspace, e-1 # Scroll through existing grouped windows with mainMod + scroll bind = $mainMod CTRL, mouse_down, changegroupactive, b bind = $mainMod CTRL, mouse_up, changegroupactive # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Audio bindings bind =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bind = CTRL, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle # MPD media bindings bind =, Pause, exec, mpc toggle bind =, XF86AudioPlay, exec, mpc toggle binde =, XF86AudioNext, exec, mpc next binde =, XF86AudioPrev, exec, mpc prev binde = SHIFT, XF86AudioNext, exec, mpc seek +10 binde = SHIFT, XF86AudioPrev, exec, mpc seek -10 bind = SHIFT, XF86AudioRaiseVolume, exec, mpc seek +10 bind = SHIFT, XF86AudioLowerVolume, exec, mpc seek -10 bind = CTRL, XF86AudioRaiseVolume, exec, mpc volume +2 bind = CTRL, XF86AudioLowerVolume, exec, mpc volume -2 # Notifications bind = $mainMod, Grave, exec, dunstctl close bind = $mainMod SHIFT, Grave, exec, dunstctl close-all bind = $mainMod CTRL, Grave, exec, dunstctl history-pop # Screenshot bind = CTRL, Print, exec, grimblast --freeze copysave area ~/Screenshots/$(date +%Y-%m-%dT%H-%M-%S).png bind =, Print, exec, grimblast --freeze copysave output ~/Screenshots/$(date +%Y-%m-%dT%H-%M-%S).png bind = $mainMod, Print, exec, grimblast --freeze copysave active ~/Screenshots/$(date +%Y-%m-%dT%H-%M-%S).png # Zoom bind = $mainMod, Equal, exec, hyprctl keyword cursor:zoom_factor 2 bind = $mainMod, Minus, exec, hyprctl keyword cursor:zoom_factor 1 # Overview #bind = $mainMod, Tab, overview:toggle ############### ### SUBMAPS ### ############### bind = $mainMod, R, submap, resize # will start a submap called "resize" submap = resize # sets repeatable binds for resizing the active window binde =, right, resizeactive, 10 0 binde =, left, resizeactive, -10 0 binde =, up, resizeactive, 0 -10 binde =, down, resizeactive, 0 10 # sets repeatable binds for resizing the active window binde =, L, resizeactive, 10 0 binde =, H, resizeactive, -10 0 binde =, K, resizeactive, 0 -10 binde =, J, resizeactive, 0 10 # use reset to go back to the global submap bind =, escape, submap, reset # will reset the submap, which will return to the global submap 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 v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. exec-once = waybar ======Config-End======== ```Description
When I lock Hyprland using either swaylock or hyprlock, and then turn my monitor off, when I turn my monitor back on, the red screen of death shows meaning that the locking program has died.
I have a DisplayPort LCD monitor from Acer.
How to reproduce
Crash reports, logs, images, videos
No response