hyprwm / hyprlock

Hyprland's GPU-accelerated screen locking utility
BSD 3-Clause "New" or "Revised" License
771 stars 59 forks source link

Incorrect lock screen positioning after waking up #255

Open paul-axe opened 6 months ago

paul-axe commented 6 months ago

Hi. Hyprlock positions lockscreen incorrectly after waking up from suspend with locked session. It usually placed lower than it should be, showing the topbar through the lockscreen, but sometimes everything is placed partially offscreen. When using hyprlock without suspend everything is OK

20240402_23h26m27s_grim

hyprlock logs:

[LOG] [core] dmabufFeedbackMainDevice
[LOG] output 61 make Chimei Innolux Corporation model 0x143F
[LOG] output 61 name eDP-1
[LOG] output 61 description Chimei Innolux Corporation 0x143F (eDP-1)
[LOG] output 61 done
[LOG] Running on Hyprland
[LOG] Locking session
[LOG] onLockLocked called
[LOG] got fractional 1
[LOG] got fractional 1.25
[LOG] configure with serial 6155
[LOG] Configuring surface for logical [Vector2D: x: 1536, y: 960] and pixel [Vector2D: x: 1920, y: 1200]
[ERR] Invalid key down event (stray release event?)
[LOG]   | got iface: wl_output v4
[LOG]    > Bound to wl_output v4
[LOG]   | removed iface 61
[LOG] output 62 make Unknown model Unknown
[LOG] output 62 name HEADLESS-1
[LOG] output 62 description Headless output 1
[LOG] output 62 done
[LOG] Creating a surface dynamically for output as we are already locked
[LOG] got fractional 2
[LOG] got fractional 2
[LOG] configure with serial 6168
[LOG] Configuring surface for logical [Vector2D: x: 960, y: 540] and pixel [Vector2D: x: 1920, y: 1080]
[LOG]   | got iface: wl_output v4
[LOG]    > Bound to wl_output v4
[LOG]   | removed iface 62
[LOG] output 63 make Chimei Innolux Corporation model 0x143F
[LOG] output 63 name eDP-1
[LOG] output 63 description Chimei Innolux Corporation 0x143F (eDP-1)
[LOG] output 63 done
[LOG] Creating a surface dynamically for output as we are already locked
[LOG] got fractional 2
[LOG] got fractional 1.25
[LOG] configure with serial 6182
[LOG] Configuring surface for logical [Vector2D: x: 1536, y: 960] and pixel [Vector2D: x: 1920, y: 1200]
[LOG] output 63 done
[LOG] output 63 done
[LOG] output 63 done
[LOG] Authenticating
vaxerski commented 6 months ago

I think that'd be a hyprland issue... tho can't see how.

paul-axe commented 6 months ago

Do you have any ideas how can I debug this issue in order to find the root cause?

vaxerski commented 6 months ago

no clue

tommilatti commented 6 months ago

I have similar issue that the lock screen covers only 60% of the monitor after dpms resume (image with trees is my lockscreen).

IMG_1316

Also if i was for example in workspace 2 and slack was open, after unlocking i am in workspace 5 or 6 and the background is what i had before in workspace 2, but there is no way to interact it with it. When i move back and forth workspaces it clears the image.

Also now there is usually 1 extra workspace created that i can see with hyprctl workspaces assigend to monitorID null (6 in this case):

hyprctl workspaces
workspace ID 1 (1) on monitor DP-3:
    monitorID: 0
    windows: 1
    hasfullscreen: 0
    lastwindow: 0x2a3c150
    lastwindowtitle: ~

workspace ID 2 (2) on monitor DP-3:
    monitorID: 0
    windows: 1
    hasfullscreen: 0
    lastwindow: 0x2ae9f10
    lastwindowtitle: hyprwm/hyprlock: Hyprland's GPU-accelerated screen locking utility - Chromium

workspace ID 3 (3) on monitor DP-3:
    monitorID: 0
    windows: 2
    hasfullscreen: 0
    lastwindow: 0x51e1500
    lastwindowtitle: ~

workspace ID 6 (6) on monitor ?:
    monitorID: null
    windows: 0
    hasfullscreen: 0
    lastwindow: 0x0
    lastwindowtitle: 

workspace ID 5 (5) on monitor DP-3:
    monitorID: 0
    windows: 1
    hasfullscreen: 0
    lastwindow: 0x51d6b30
    lastwindowtitle: hyprctl workspaces

If i move anything to that workspace hyprland will crash. Only way to remedy the situation is run:

hyprctl dispatch moveworkspacetomonitor 6 current

This happens reliably after every monitor suspend. I run the same versions on laptop where this problem never happens only with external monitor.

Monitor DP-3 (ID 0):
    5120x1440@99.99600 at 0x0
    description: Samsung Electric Company C49RG9x H1AK500000
    make: Samsung Electric Company
    model: C49RG9x
    serial: H1AK500000
    active workspace: 1 (1)
    special workspace: 0 ()
    reserved: 0 0 0 24
    scale: 1.00
    transform: 0
    focused: yes
    dpmsStatus: 1
    vrr: 0
    activelyTearing: false
    currentFormat: XRGB8888
    availableModes: 3840x1080@119.97Hz 5120x1440@100.00Hz 5120x1440@59.98Hz 3840x1080@99.96Hz 3840x1080@59.97Hz 2560x1440@59.95Hz 2560x1080@120.00Hz 2560x1080@119.88Hz 2560x1080@100.00Hz 2560x1080@60.00Hz 2560x1080@60.00Hz 2560x1080@59.94Hz 1920x1080@120.00Hz 1920x1080@119.88Hz 1920x1080@100.00Hz 1920x1080@60.00Hz 1920x1080@60.00Hz 1920x1080@59.94Hz 1680x1050@59.95Hz 1600x900@60.00Hz 1280x1024@75.03Hz 1280x1024@60.02Hz 1440x900@59.89Hz 1280x800@59.81Hz 1152x864@75.00Hz 1280x720@60.00Hz 1280x720@59.94Hz 1024x768@75.03Hz 1024x768@70.07Hz 1024x768@60.00Hz 832x624@74.55Hz 800x600@75.00Hz 800x600@72.19Hz 800x600@60.32Hz 800x600@56.25Hz 640x480@75.00Hz 640x480@72.81Hz 640x480@66.67Hz 640x480@60.00Hz 640x480@59.94Hz 720x400@70.08Hz
hyprctl version
Hyprland, built from branch  at commit b7d71bc0e1084bc1a296ae906503709a74fde4d9  ().
Date: 2024-04-04
Tag: 

flags: (if any)
tommilatti commented 6 months ago

null workspace issue seems to be the same as described here: https://github.com/hyprwm/Hyprland/issues/5443

i will try to update and see if it helps.

The random workspace after unlocking happened on older version too. Difference now is it now pulls the image on the workspace that was active before locking the screen on the new workspace after unlock.

Heyian commented 5 months ago

I have a similar issue, the lockscreen is positioned incorrectly after waking up and the labels are moving. Here's a gif to give you an idea. I had issues with swayidle so I jumped to hypridle/hyprlock 3-4 weeks ago. This has been going on since I started using it. It also created a new workspace each time I log back in after waking up. All of these issues do not happen if I simply lock the session with Hyprlock, the computer has to have been suspended and it sometimes happen when it resume from dpms.

I couldn't find much in Hyprland logs , here are the lines that are in the right timeframe.

Log

``` [LOG] ScreencopyProtocolManager bound successfully! [LOG] [SessionLock] New sessionLock with id 6 [LOG] Session got locked by 5d3cf069fce0 [LOG] Registered signal for owner 5d3cf06c6510: 5d3cf06c6828 -> 5d3cf0743050 (owner: FractionalScale) [LOG] [SessionLock] New sessionLockSurface with id 21 [LOG] Registered signal for owner 5d3cf06b8c60: 5d3cf06c67e8 -> 5d3cf06b8d18 (owner: SessionLockSurface) [LOG] Registered signal for owner 5d3cf06b8c60: 5d3cf06c6828 -> 5d3cf06b8d80 (owner: SessionLockSurface) [LOG] Set keyboard focus to surface 5d3cf06c6510 [LOG] Callback 5d3cf022d9f0 -> 5d3cf022d9e8, CRenderbuffer removed. [LOG] Callback 5d3cf002a800 -> 5d3cf002a7f8, CRenderbuffer removed. [LOG] Hyprctl: dispatcher dpms : off [LOG] Callback 5d3cf0551788 -> 5d3cf0551780, CMouse removed. [LOG] Callback 5d3cf05517f0 -> 5d3cf05517e8, CMouse removed. [LOG] Callback 5d3cf0551858 -> 5d3cf0551850, CMouse removed. [LOG] Callback 5d3cf05518c0 -> 5d3cf05518b8, CMouse removed. [LOG] Callback 5d3cf0551928 -> 5d3cf0551920, CMouse removed. [LOG] Callback 5d3cf0551990 -> 5d3cf0551988, CMouse removed. [LOG] Callback 5d3cf05519f8 -> 5d3cf05519f0, CMouse removed. [LOG] Callback 5d3cf0551a60 -> 5d3cf0551a58, CMouse removed. [LOG] Callback 5d3cf0551ac8 -> 5d3cf0551ac0, CMouse removed. [LOG] Callback 5d3cf0551b30 -> 5d3cf0551b28, CMouse removed. [LOG] Callback 5d3cf0551b98 -> 5d3cf0551b90, CMouse removed. [LOG] Callback 5d3cf0551c00 -> 5d3cf0551bf8, CMouse removed. [LOG] Callback 5d3cf0551c68 -> 5d3cf0551c60, CMouse removed. [LOG] Callback 5d3cf0551cd0 -> 5d3cf0551cc8, CMouse removed. [LOG] Hyprctl: dispatcher dpms : on [LOG] Hyprctl: dispatcher dpms : on [LOG] Registered signal for owner 5d3cf06e40c0: 5d3ceffa38d8 -> 5d3cf06e40c8 (owner: CRenderbuffer) [LOG] Registered signal for owner 5d3cf00cc140: 5d3cf002a7f8 -> 5d3cf00cc148 (owner: CRenderbuffer) [LOG] New LayerSurface has no preferred monitor. Assigning Monitor HDMI-A-3 [LOG] Registered signal for owner 5d3cf06bcc10: 5d3cf05901b8 -> 5d3cf06bd1f8 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf06bcc10: 5d3cf074b688 -> 5d3cf06bd0c0 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf06bcc10: 5d3cf05901c8 -> 5d3cf06bd128 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf06bcc10: 5d3cf05901d8 -> 5d3cf06bd190 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf06a8ae0: 5d3cf074b698 -> 5d3cf06a8c98 (owner: CPopup Head) [LOG] Registered signal for owner 5d3cf06bcea8: 5d3cf05901f8 -> 5d3cf06bcf28 (owner: CWLSurface) [LOG] Registered signal for owner 5d3cf06bcea8: 5d3cf05901b8 -> 5d3cf06bcf90 (owner: CWLSurface) [LOG] CWLSurface 5d3cf06bcea8 called init() [LOG] LayerSurface 5d3cf074b5c0 (namespace notifications layer 3) created on monitor HDMI-A-3 [LOG] Registered signal for owner 5d3cf058fee0: 5d3cf05901f8 -> 5d3cf06461b0 (owner: FractionalScale) [LOG] LayerSurface 5d3cf074b5c0 mapped [LOG] Destroy called for monitor HDMI-A-3 [LOG] onDisconnect called for HDMI-A-3 [LOG] Registered signal for owner 5d3cf06bac30: 5d3cf022d9e8 -> 5d3cf06bac38 (owner: CRenderbuffer) [LOG] Callback 5d3cf06bac60 -> 5d3cf06bac58, CRenderbuffer removed. [LOG] Callback 5d3cf0139d48 -> 5d3cf0139d40, removed. [LOG] Callback 5d3cf0139e80 -> 5d3cf0139e78, removed. [LOG] Callback 5d3cf0139ee8 -> 5d3cf0139ee0, removed. [LOG] Callback 5d3cf0139f50 -> 5d3cf0139f48, removed. [LOG] Callback 5d3cf0139fb8 -> 5d3cf0139fb0, removed. [LOG] LayerSurface 5d3cf058cc20 unmapped [LOG] Framebuffer created, status 36053 [LOG] Callback 5d3cf058d080 -> 5d3cf058d078, CWLSurface removed. [LOG] Callback 5d3cf058d0e8 -> 5d3cf058d0e0, CWLSurface removed. [LOG] CWLSurface 5d3cf058cfd8 called destroy() [LOG] LayerSurface 5d3cf058cc20 destroyed [LOG] Callback 5d3cf05c0190 -> 5d3cf05c0188, CPopup Head removed. [LOG] Callback 5d3cf058d350 -> 5d3cf058d348, layerSurface removed. [LOG] Callback 5d3cf058d218 -> 5d3cf058d210, layerSurface removed. [LOG] Callback 5d3cf058d280 -> 5d3cf058d278, layerSurface removed. [LOG] Callback 5d3cf058d2e8 -> 5d3cf058d2e0, layerSurface removed. [LOG] LayerSurface 5d3cf014b5e0 unmapped [LOG] Framebuffer created, status 36053 [LOG] Callback 5d3cf058bc40 -> 5d3cf058bc38, CWLSurface removed. [LOG] Callback 5d3cf058bca8 -> 5d3cf058bca0, CWLSurface removed. [LOG] CWLSurface 5d3cf058bb98 called destroy() [LOG] LayerSurface 5d3cf014b5e0 destroyed [LOG] Callback 5d3cf058c140 -> 5d3cf058c138, CPopup Head removed. [LOG] Callback 5d3cf058bf10 -> 5d3cf058bf08, layerSurface removed. [LOG] Callback 5d3cf058bdd8 -> 5d3cf058bdd0, layerSurface removed. [LOG] Callback 5d3cf058be40 -> 5d3cf058be38, layerSurface removed. [LOG] Callback 5d3cf058bea8 -> 5d3cf058bea0, layerSurface removed. [LOG] LayerSurface 5d3cf074b5c0 unmapped [LOG] Framebuffer created, status 36053 [LOG] Callback 5d3cf06bcf50 -> 5d3cf06bcf48, CWLSurface removed. [LOG] Callback 5d3cf06bcfb8 -> 5d3cf06bcfb0, CWLSurface removed. [LOG] CWLSurface 5d3cf06bcea8 called destroy() [LOG] LayerSurface 5d3cf074b5c0 destroyed [LOG] Callback 5d3cf06a8cc0 -> 5d3cf06a8cb8, CPopup Head removed. [LOG] Callback 5d3cf06bd220 -> 5d3cf06bd218, layerSurface removed. [LOG] Callback 5d3cf06bd0e8 -> 5d3cf06bd0e0, layerSurface removed. [LOG] Callback 5d3cf06bd150 -> 5d3cf06bd148, layerSurface removed. [LOG] Callback 5d3cf06bd1b8 -> 5d3cf06bd1b0, layerSurface removed. [LOG] Removed monitor HDMI-A-3! [WARN] Unplugged last monitor, entering an unsafe state. Good luck my friend. [LOG] Entering unsafe state [LOG] Registered signal for owner 5d3cf0384370: 5d3cf0318e58 -> 5d3cf0384880 (owner: ) [LOG] Registered signal for owner 5d3cf0384370: 5d3cf0318ee8 -> 5d3cf03848e8 (owner: ) [LOG] Registered signal for owner 5d3cf0384370: 5d3cf0318ed8 -> 5d3cf0384950 (owner: ) [LOG] Registered signal for owner 5d3cf0384370: 5d3cf0318e68 -> 5d3cf03849b8 (owner: ) [LOG] Registered signal for owner 5d3cf0384370: 5d3cf0318e78 -> 5d3cf0384a20 (owner: ) [LOG] Registered signal for owner 5d3cf0384370: 5d3cf0318e98 -> 5d3cf0384a88 (owner: ) [LOG] Registered signal for owner 5d3cf0384370: 5d3cf0318eb8 -> 5d3cf0384af0 (owner: ) [WARN] No rule found for HEADLESS-1, trying to use the first. [WARN] No rules configured. Using the default hardcoded one. [LOG] Applying monitor rule for HEADLESS-1 [ERR] Monitor HEADLESS-1 has NO PREFERRED MODE [LOG] output HEADLESS-1 succeeded basic test on format DRM_FORMAT_XRGB8888 [LOG] Monitor HEADLESS-1 -> destroyed all render data [LOG] arrangeMonitors: 2 to arrange [LOG] arrangeMonitors: HDMI-A-3 explicit [0, 0] [LOG] arrangeMonitors: HEADLESS-1 auto [-1, -1] [LOG] arrangeMonitors: HDMI-A-3 xwayland [0, 0] [LOG] arrangeMonitors: HEADLESS-1 xwayland [3840, 0] [LOG] Monitor HEADLESS-1 data dump: res 1920x1080@60.00Hz, scale 1.00, transform 0, pos 3840x0, 10b 0 [LOG] Registered signal for owner 5d3cf06bac30: 5d3cf022d9e8 -> 5d3cf06bac38 (owner: CRenderbuffer) [LOG] Callback 5d3cf06bac60 -> 5d3cf06bac58, CRenderbuffer removed. [LOG] Added new monitor with name HEADLESS-1 at [3840, 0] with size [1920, 1080], pointer 5d3cf0318db0 [LOG] New monitor: WORKSPACEID 2, exists: 0 [LOG] Callback 5d3cf06e40f0 -> 5d3cf06e40e8, CRenderbuffer removed. [LOG] Callback 5d3cf00cc170 -> 5d3cf00cc168, CRenderbuffer removed. [LOG] Removing monitor HDMI-A-3 from realMonitors [LOG] Callback 5d3cf0139db0 -> 5d3cf0139da8, removed. [LOG] Callback 5d3cf0139e18 -> 5d3cf0139e10, removed. [WARN] Attempted to render frame on inactive session! [LOG] Callback 5d3cf05447a8 -> 5d3cf05447a0, FractionalScale removed. [LOG] Callback 5d3cf06461d8 -> 5d3cf06461d0, FractionalScale removed. [LOG] New LayerSurface has no preferred monitor. Assigning Monitor HEADLESS-1 [LOG] Registered signal for owner 5d3cf0139810: 5d3cf05901b8 -> 5d3cf0139df8 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf0139810: 5d3cf06d9ca8 -> 5d3cf0139cc0 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf0139810: 5d3cf05901c8 -> 5d3cf0139d28 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf0139810: 5d3cf05901d8 -> 5d3cf0139d90 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf06a8ae0: 5d3cf06d9cb8 -> 5d3cf06a8c98 (owner: CPopup Head) [LOG] Registered signal for owner 5d3cf0139aa8: 5d3cf05901f8 -> 5d3cf0139b28 (owner: CWLSurface) [LOG] Registered signal for owner 5d3cf0139aa8: 5d3cf05901b8 -> 5d3cf0139b90 (owner: CWLSurface) [LOG] CWLSurface 5d3cf0139aa8 called init() [LOG] LayerSurface 5d3cf06d9be0 (namespace notifications layer 3) created on monitor HEADLESS-1 [LOG] Registered signal for owner 5d3cf058fee0: 5d3cf05901f8 -> 5d3cf013c160 (owner: FractionalScale) [LOG] Callback 5d3cf06b8d40 -> 5d3cf06b8d38, SessionLockSurface removed. [LOG] Callback 5d3cf06b8da8 -> 5d3cf06b8da0, SessionLockSurface removed. [LOG] Callback 5d3cf0743078 -> 5d3cf0743070, FractionalScale removed. [LOG] Registered signal for owner 5d3cf06b4ac0: 5d3cf06c67e8 -> 5d3cf06b50a8 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf06b4ac0: 5d3cefb48098 -> 5d3cf06b4f70 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf06b4ac0: 5d3cf06c67f8 -> 5d3cf06b4fd8 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf06b4ac0: 5d3cf06c6808 -> 5d3cf06b5040 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf058b3a0: 5d3cefb480a8 -> 5d3cf058b558 (owner: CPopup Head) [LOG] Registered signal for owner 5d3cf06b4d58: 5d3cf06c6828 -> 5d3cf06b4dd8 (owner: CWLSurface) [LOG] Registered signal for owner 5d3cf06b4d58: 5d3cf06c67e8 -> 5d3cf06b4e40 (owner: CWLSurface) [LOG] CWLSurface 5d3cf06b4d58 called init() [LOG] LayerSurface 5d3cefb47fd0 (namespace swww-daemon layer 0) created on monitor HEADLESS-1 [LOG] Registered signal for owner 5d3cf06c6510: 5d3cf06c6828 -> 5d3cf06461b0 (owner: FractionalScale) [LOG] LayerSurface 5d3cf06d9be0 mapped [LOG] Registered signal for owner 5d3cf0737d40: 5d3cf0738058 -> 5d3cf0743050 (owner: FractionalScale) [LOG] [SessionLock] New sessionLockSurface with id 20 [LOG] Registered signal for owner 5d3cf06b8c60: 5d3cf0738018 -> 5d3cf06b8d18 (owner: SessionLockSurface) [LOG] Registered signal for owner 5d3cf06b8c60: 5d3cf0738058 -> 5d3cf06b8d80 (owner: SessionLockSurface) [LOG] Set keyboard focus to surface 5d3cf0737d40 [LOG] Registered signal for owner 5d3ceffc1400: 5d3cf06c04b8 -> 5d3ceffc19e8 (owner: layerSurface) [LOG] Registered signal for owner 5d3ceffc1400: 5d3cf06e2388 -> 5d3ceffc18b0 (owner: layerSurface) [LOG] Registered signal for owner 5d3ceffc1400: 5d3cf06c04c8 -> 5d3ceffc1918 (owner: layerSurface) [LOG] Registered signal for owner 5d3ceffc1400: 5d3cf06c04d8 -> 5d3ceffc1980 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf00fcea0: 5d3cf06e2398 -> 5d3cf00fd058 (owner: CPopup Head) [LOG] Registered signal for owner 5d3ceffc1698: 5d3cf06c04f8 -> 5d3ceffc1718 (owner: CWLSurface) [LOG] Registered signal for owner 5d3ceffc1698: 5d3cf06c04b8 -> 5d3ceffc1780 (owner: CWLSurface) [LOG] CWLSurface 5d3ceffc1698 called init() [LOG] LayerSurface 5d3cf06e22c0 (namespace waybar layer 2) created on monitor HEADLESS-1 [LOG] Registered signal for owner 5d3cf06c01e0: 5d3cf06c04f8 -> 5d3cf06df260 (owner: FractionalScale) [LOG] LayerSurface 5d3cf06e22c0 mapped [LOG] Registered signal for owner 5d3cf06bd1e0: 5d3cf0138768 -> 5d3cf06bd6f0 (owner: ) [LOG] Registered signal for owner 5d3cf06bd1e0: 5d3cf01387f8 -> 5d3cf06bd758 (owner: ) [LOG] Registered signal for owner 5d3cf06bd1e0: 5d3cf01387e8 -> 5d3cf06bd7c0 (owner: ) [LOG] Registered signal for owner 5d3cf06bd1e0: 5d3cf0138778 -> 5d3cf06bd828 (owner: ) [LOG] Registered signal for owner 5d3cf06bd1e0: 5d3cf0138788 -> 5d3cf06bd890 (owner: ) [LOG] Registered signal for owner 5d3cf06bd1e0: 5d3cf01387a8 -> 5d3cf06bd8f8 (owner: ) [LOG] Registered signal for owner 5d3cf06bd1e0: 5d3cf01387c8 -> 5d3cf06bd960 (owner: ) [LOG] Applying monitor rule for HDMI-A-3 [LOG] Monitor HDMI-A-3: requested 3840x1200@120.000000, found available mode: 3840x1200@120000mHz, applying. [LOG] output HDMI-A-3 succeeded basic test on format DRM_FORMAT_XRGB8888 [LOG] Monitor HDMI-A-3 -> destroyed all render data [LOG] arrangeMonitors: 2 to arrange [LOG] arrangeMonitors: HDMI-A-3 explicit [0, 0] [LOG] arrangeMonitors: HEADLESS-1 auto [3840, 0] [LOG] arrangeMonitors: HEADLESS-1 xwayland [0, 0] [LOG] arrangeMonitors: HDMI-A-3 xwayland [1920, 0] [LOG] Monitor HDMI-A-3 data dump: res 3840x1200@120.00Hz, scale 1.00, transform 0, pos 0x0, 10b 0 [LOG] Callback 5d3ceec2acd8 -> 5d3ceec2acd0, CPointerManager removed. [LOG] Registered signal for owner 5d3ceec2aba0: 5d3cf054c288 -> 5d3ceec2acb0 (owner: CPointerManager) [LOG] Registered signal for owner 5d3cf06bac30: 5d3cf06adc48 -> 5d3cf06bac38 (owner: CRenderbuffer) [LOG] Shaders initialized successfully. [LOG] Callback 5d3cf06bac60 -> 5d3cf06bac58, CRenderbuffer removed. [LOG] Registered signal for owner 5d3cf06b4860: 5d3cf06adc48 -> 5d3cf06b4868 (owner: CRenderbuffer) [LOG] Callback 5d3cf06b4890 -> 5d3cf06b4888, CRenderbuffer removed. [LOG] Added new monitor with name HDMI-A-3 at [0, 0] with size [3840, 1200], pointer 5d3cf01386c0 [LOG] New monitor: WORKSPACEID 4, exists: 0 [WARN] Attempted to render frame on inactive session! [LOG] Leaving unsafe state [LOG] onDisconnect called for HEADLESS-1 [LOG] Registered signal for owner 5d3cf06b4860: 5d3cf0b78bb8 -> 5d3cf06b4868 (owner: CRenderbuffer) [LOG] Callback 5d3cf06b4890 -> 5d3cf06b4888, CRenderbuffer removed. [LOG] Callback 5d3cf03848a8 -> 5d3cf03848a0, removed. [LOG] Callback 5d3cf03849e0 -> 5d3cf03849d8, removed. [LOG] Callback 5d3cf0384a48 -> 5d3cf0384a40, removed. [LOG] Callback 5d3cf0384ab0 -> 5d3cf0384aa8, removed. [LOG] Callback 5d3cf0384b18 -> 5d3cf0384b10, removed. [LOG] LayerSurface 5d3cefb47fd0 destroyed [LOG] Callback 5d3cf058b580 -> 5d3cf058b578, CPopup Head removed. [LOG] Removing LayerSurface that wasn't mapped. [LOG] Callback 5d3cf06b50d0 -> 5d3cf06b50c8, layerSurface removed. [LOG] Callback 5d3cf06b4f98 -> 5d3cf06b4f90, layerSurface removed. [LOG] Callback 5d3cf06b5000 -> 5d3cf06b4ff8, layerSurface removed. [LOG] Callback 5d3cf06b5068 -> 5d3cf06b5060, layerSurface removed. [LOG] Callback 5d3cf06b4e00 -> 5d3cf06b4df8, CWLSurface removed. [LOG] Callback 5d3cf06b4e68 -> 5d3cf06b4e60, CWLSurface removed. [LOG] CWLSurface 5d3cf06b4d58 called destroy() [LOG] LayerSurface 5d3cf06e22c0 unmapped [LOG] Framebuffer created, status 36053 [LOG] Monitor HEADLESS-1 -> destroyed all render data [LOG] Shaders initialized successfully. [LOG] Framebuffer created, status 36053 [LOG] Framebuffer created, status 36053 [LOG] Framebuffer created, status 36053 [LOG] Framebuffer created, status 36053 [LOG] Callback 5d3ceffc1740 -> 5d3ceffc1738, CWLSurface removed. [LOG] Callback 5d3ceffc17a8 -> 5d3ceffc17a0, CWLSurface removed. [LOG] CWLSurface 5d3ceffc1698 called destroy() [LOG] LayerSurface 5d3cf06e22c0 destroyed [LOG] Callback 5d3cf00fd080 -> 5d3cf00fd078, CPopup Head removed. [LOG] Callback 5d3ceffc1a10 -> 5d3ceffc1a08, layerSurface removed. [LOG] Callback 5d3ceffc18d8 -> 5d3ceffc18d0, layerSurface removed. [LOG] Callback 5d3ceffc1940 -> 5d3ceffc1938, layerSurface removed. [LOG] Callback 5d3ceffc19a8 -> 5d3ceffc19a0, layerSurface removed. [LOG] LayerSurface 5d3cf06d9be0 unmapped [LOG] Framebuffer created, status 36053 [LOG] Callback 5d3cf0139b50 -> 5d3cf0139b48, CWLSurface removed. [LOG] Callback 5d3cf0139bb8 -> 5d3cf0139bb0, CWLSurface removed. [LOG] CWLSurface 5d3cf0139aa8 called destroy() [LOG] LayerSurface 5d3cf06d9be0 destroyed [LOG] Callback 5d3cf06a8cc0 -> 5d3cf06a8cb8, CPopup Head removed. [LOG] Callback 5d3cf0139e20 -> 5d3cf0139e18, layerSurface removed. [LOG] Callback 5d3cf0139ce8 -> 5d3cf0139ce0, layerSurface removed. [LOG] Callback 5d3cf0139d50 -> 5d3cf0139d48, layerSurface removed. [LOG] Callback 5d3cf0139db8 -> 5d3cf0139db0, layerSurface removed. [LOG] Removed monitor HEADLESS-1! [LOG] moveWorkspaceToMonitor: Moving 2 to monitor 0 [LOG] moveWorkspaceToMonitor: Plugging gap with new 5 [LOG] moveWorkspaceToMonitor: Plugging gap with existing 5 [LOG] [hookSystem] New hook event registered: moveWorkspace [LOG] Destroying workspace ID 2 [LOG] Destroying workspace ID 5 [LOG] Applying monitor rule for HDMI-A-3 [LOG] Not applying a new rule to HDMI-A-3 because it's already applied! [LOG] Callback 5d3ceec2acd8 -> 5d3ceec2acd0, CPointerManager removed. [LOG] Registered signal for owner 5d3ceec2aba0: 5d3cf0a9edd8 -> 5d3ceec2acb0 (owner: CPointerManager) [LOG] Registered signal for owner 5d3cf0b64660: 5d3cf0b78bb8 -> 5d3cf0b64668 (owner: CRenderbuffer) [LOG] Callback 5d3cf0b64690 -> 5d3cf0b64688, CRenderbuffer removed. [LOG] Registered signal for owner 5d3cf0b64660: 5d3cf00fd018 -> 5d3cf0b64668 (owner: CRenderbuffer) [LOG] Monitor HDMI-A-3 -> destroyed all render data [LOG] Shaders initialized successfully. [LOG] Framebuffer created, status 36053 [LOG] Framebuffer created, status 36053 [LOG] Framebuffer created, status 36053 [LOG] Framebuffer created, status 36053 [LOG] Callback 5d3cf06df288 -> 5d3cf06df280, FractionalScale removed. [LOG] Registered signal for owner 5d3cf06e8ee0: 5d3cf01ba018 -> 5d3cf06e94c8 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf06e8ee0: 5d3cf06e8c48 -> 5d3cf06e9390 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf06e8ee0: 5d3cf01ba028 -> 5d3cf06e93f8 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf06e8ee0: 5d3cf01ba038 -> 5d3cf06e9460 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf06b7140: 5d3cf06e8c58 -> 5d3cf06b72f8 (owner: CPopup Head) [LOG] Registered signal for owner 5d3cf06e9178: 5d3cf01ba058 -> 5d3cf06e91f8 (owner: CWLSurface) [LOG] Registered signal for owner 5d3cf06e9178: 5d3cf01ba018 -> 5d3cf06e9260 (owner: CWLSurface) [LOG] CWLSurface 5d3cf06e9178 called init() [LOG] LayerSurface 5d3cf06e8b80 (namespace swww-daemon layer 0) created on monitor HDMI-A-3 [LOG] Registered signal for owner 5d3cf01b9d40: 5d3cf01ba058 -> 5d3cf06ba020 (owner: FractionalScale) [LOG] Callback 5d3cf06b8d40 -> 5d3cf06b8d38, SessionLockSurface removed. [LOG] Callback 5d3cf06b8da8 -> 5d3cf06b8da0, SessionLockSurface removed. [LOG] Callback 5d3cf0743078 -> 5d3cf0743070, FractionalScale removed. [LOG] Callback 5d3cf013c188 -> 5d3cf013c180, FractionalScale removed. [LOG] New LayerSurface has no preferred monitor. Assigning Monitor HDMI-A-3 [LOG] Registered signal for owner 5d3cf07c53a0: 5d3cf05901b8 -> 5d3cf07c5988 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf07c53a0: 5d3cf0aa7948 -> 5d3cf07c5850 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf07c53a0: 5d3cf05901c8 -> 5d3cf07c58b8 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf07c53a0: 5d3cf05901d8 -> 5d3cf07c5920 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf01389c0: 5d3cf0aa7958 -> 5d3cf0138b78 (owner: CPopup Head) [LOG] Registered signal for owner 5d3cf07c5638: 5d3cf05901f8 -> 5d3cf07c56b8 (owner: CWLSurface) [LOG] Registered signal for owner 5d3cf07c5638: 5d3cf05901b8 -> 5d3cf07c5720 (owner: CWLSurface) [LOG] CWLSurface 5d3cf07c5638 called init() [LOG] LayerSurface 5d3cf0aa7880 (namespace notifications layer 3) created on monitor HDMI-A-3 [LOG] Registered signal for owner 5d3cf058fee0: 5d3cf05901f8 -> 5d3cf05553f0 (owner: FractionalScale) [LOG] Registered signal for owner 5d3cf06b9940: 5d3cf06b9c58 -> 5d3cf0544780 (owner: FractionalScale) [LOG] [SessionLock] New sessionLockSurface with id 21 [LOG] Registered signal for owner 5d3cf06b8c60: 5d3cf06b9c18 -> 5d3cf06b8d18 (owner: SessionLockSurface) [LOG] Registered signal for owner 5d3cf06b8c60: 5d3cf06b9c58 -> 5d3cf06b8d80 (owner: SessionLockSurface) [LOG] LayerSurface 5d3cf0aa7880 mapped [LOG] Registered signal for owner 5d3cf06e88a0: 5d3cf0511d28 -> 5d3cf06e88a8 (owner: CRenderbuffer) [LOG] Registered signal for owner 5d3cf0b92cc0: 5d3cf0b92888 -> 5d3cf0b932a8 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf0b92cc0: 5d3cf0b92bd8 -> 5d3cf0b93170 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf0b92cc0: 5d3cf0b92898 -> 5d3cf0b931d8 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf0b92cc0: 5d3cf0b928a8 -> 5d3cf0b93240 (owner: layerSurface) [LOG] Registered signal for owner 5d3cf0b93320: 5d3cf0b92be8 -> 5d3cf0b934d8 (owner: CPopup Head) [LOG] Registered signal for owner 5d3cf0b92f58: 5d3cf0b928c8 -> 5d3cf0b92fd8 (owner: CWLSurface) [LOG] Registered signal for owner 5d3cf0b92f58: 5d3cf0b92888 -> 5d3cf0b93040 (owner: CWLSurface) [LOG] CWLSurface 5d3cf0b92f58 called init() [LOG] LayerSurface 5d3cf0b92b10 (namespace waybar layer 2) created on monitor HDMI-A-3 [LOG] Registered signal for owner 5d3cf0b925b0: 5d3cf0b928c8 -> 5d3cefeea950 (owner: FractionalScale) [LOG] Set keyboard focus to surface 5d3cf06b9940 [LOG] LayerSurface 5d3cf06e8b80 mapped [LOG] LayerSurface 5d3cf0b92b10 mapped [LOG] LayerSurface 5d3cf0aa7880 unmapped [LOG] Framebuffer created, status 36053 [LOG] Callback 5d3cf07c56e0 -> 5d3cf07c56d8, CWLSurface removed. [LOG] Callback 5d3cf07c5748 -> 5d3cf07c5740, CWLSurface removed. [LOG] CWLSurface 5d3cf07c5638 called destroy() [LOG] LayerSurface 5d3cf0aa7880 destroyed [LOG] Callback 5d3cf0138ba0 -> 5d3cf0138b98, CPopup Head removed. [LOG] Callback 5d3cf07c59b0 -> 5d3cf07c59a8, layerSurface removed. [LOG] Callback 5d3cf07c5878 -> 5d3cf07c5870, layerSurface removed. [LOG] Callback 5d3cf07c58e0 -> 5d3cf07c58d8, layerSurface removed. [LOG] Callback 5d3cf07c5948 -> 5d3cf07c5940, layerSurface removed. [LOG] Callback 5d3cf0555418 -> 5d3cf0555410, FractionalScale removed. [LOG] Cleanup: destroyed a layersurface [LOG] Callback 5d3cf05447a8 -> 5d3cf05447a0, FractionalScale removed. [WARN] [SessionLock] SessionLockSurface object remains but surface is being destroyed??? [LOG] Callback 5d3cf06b8d40 -> 5d3cf06b8d38, SessionLockSurface removed. [LOG] Callback 5d3cf06b8da8 -> 5d3cf06b8da0, SessionLockSurface removed. [LOG] Keybind triggered, calling dispatcher (64, , 49) [LOG] Set keyboard focus to surface 5d3cf054ddf0, with [Window 5d3cf04025c0: title: "git tag - Delete all tags from a Git repository - Stack Overflow — FireDragon"] [LOG] Searching for matching rules for firedragon (title: git tag - Delete all tags from a Git repository - Stack Overflow — FireDragon) [LOG] Window rule suppressevent maximize -> class:.* matched [Window 5d3cf04025c0: title: "git tag - Delete all tags from a Git repository - Stack Overflow — FireDragon"] [LOG] Destroying workspace ID 4 [LOG] Framebuffer created, status 36053 [LOG] cursorImage request: surface 5d3cf058d510 [LOG] Registered signal for owner 5d3cef9ce0b0: 5d3cf058d828 -> 5d3cef9ce130 (owner: CWLSurface) [LOG] Registered signal for owner 5d3cef9ce0b0: 5d3cf058d7e8 -> 5d3cef9ce198 (owner: CWLSurface) [LOG] CWLSurface 5d3cef9ce0b0 called init() [LOG] Callback 5d3ceec2acd8 -> 5d3ceec2acd0, CPointerManager removed. [LOG] Registered signal for owner 0: 5d3cf058d7e8 -> 5d3ceec2ac48 (owner: CPointerManager) [LOG] Registered signal for owner 5d3cf0b93970: 5d3cf06adc48 -> 5d3cf0b93978 (owner: CRenderbuffer) [LOG] Callback 5d3cf0b939a0 -> 5d3cf0b93998, CRenderbuffer removed. [LOG] Registered signal for owner 5d3cf0b93970: 5d3cf06adc48 -> 5d3cf0b93978 (owner: CRenderbuffer) [LOG] Callback 5d3cf0b939a0 -> 5d3cf0b93998, CRenderbuffer removed. [LOG] Attached a mouse with name MX Vertical Mouse ```

24-05-06 08-04-30 2482

myned commented 3 months ago

I can no longer reproduce on my system, but in case it helps someone, I originally had a similar issue even without suspend and fixed it by reversing the order of execution for my lockscreen bind:

Misaligned lockscreen:

Super, L, exec, sleep 1 && hyprctl dispatch dpms off && hyprlock --immediate

Fixed:

Super, L, exec, hyprlock --immediate & sleep 1 && hyprctl dispatch dpms off
myned commented 3 months ago

After investing some more time into reproducing, I am now able to by:

  1. Execute sleep 1 && hyprctl dispatch dpms off && hyprlock --immediate
  2. Wait until monitor goes completely to sleep (or unplug display cable)
  3. Wake via Hyprland's key_press_enables_dpms (or plug in display cable)
  4. Observe hyprlock misaligned (and incorrect workspace)

It only occurs when the monitor is completely disconnected whether physically or by its internal sleep mechanism, and seems to be directly related to the workspace and crash issues with dpms/suspend in the Hyprland repo.

Hyprland log trimmed to dpms dispatcher ``` [LOG] Hyprctl: dispatcher dpms : off [LOG] [GammaControl] setGamma for DP-2 [LOG] [GammaControl] setting to monitor DP-2 [LOG] [GammaControl] setting to monitor DP-2 failed [LOG] [GammaControl] setGamma for DP-2 [LOG] [GammaControl] setting to monitor DP-2 [LOG] [GammaControl] setting to monitor DP-2 failed [LOG] Registered signal for owner 38334900: 36ac8298 -> 38334910 (owner: CRenderbuffer) [LOG] Registered signal for owner 36bcad00: 36b065a8 -> 36bcad10 (owner: CRenderbuffer) [LOG] [GammaControl] setGamma for DP-2 [LOG] [GammaControl] setting to monitor DP-2 [LOG] Destroy called for monitor DP-2 [LOG] onDisconnect called for DP-2 [LOG] Callback 36ec6830 -> 36ec6828, CMonitor removed. [LOG] Callback 36ec6b08 -> 36ec6b00, CMonitor removed. [LOG] Callback 36ec6968 -> 36ec6960, CMonitor removed. [LOG] Callback 36ec69d0 -> 36ec69c8, CMonitor removed. [LOG] Callback 36ec6a38 -> 36ec6a30, CMonitor removed. [LOG] Callback 36ec6aa0 -> 36ec6a98, CMonitor removed. [LOG] Removed monitor DP-2! [WARN] Unplugged last monitor, entering an unsafe state. Good luck my friend. [LOG] Entering unsafe state [LOG] Callback 36cfd808 -> 36cfd800, CMonitor removed. [LOG] Callback 36cfd870 -> 36cfd868, CMonitor removed. [LOG] Registered signal for owner 36cfd270: 36d587a8 -> 36cfd778 (owner: CMonitor) [LOG] Registered signal for owner 36cfd270: 36d58838 -> 36cfd7e0 (owner: CMonitor) [LOG] Registered signal for owner 36cfd270: 36d58828 -> 36cfd848 (owner: CMonitor) [LOG] Registered signal for owner 36cfd270: 36d587b8 -> 36cfd8b0 (owner: CMonitor) [LOG] Registered signal for owner 36cfd270: 36d587c8 -> 36cfd918 (owner: CMonitor) [LOG] Registered signal for owner 36cfd270: 36d587e8 -> 36cfd980 (owner: CMonitor) [LOG] Registered signal for owner 36cfd270: 36d58808 -> 36cfd9e8 (owner: CMonitor) [LOG] Registered signal for owner 36cfd270: 36d587f8 -> 36cfda50 (owner: CMonitor) [WARN] No rule found for HEADLESS-1, trying to use the first. [LOG] Applying monitor rule for HEADLESS-1 [LOG] output HEADLESS-1 succeeded basic test on format DRM_FORMAT_XRGB8888 [LOG] arrangeMonitors: 2 to arrange [LOG] arrangeMonitors: DP-2 auto [0, 0] [LOG] arrangeMonitors: HEADLESS-1 auto [0, 0] [LOG] arrangeMonitors: DP-2 xwayland [0, 0] [LOG] arrangeMonitors: HEADLESS-1 xwayland [3440, 0] [LOG] Monitor HEADLESS-1 data dump: res 1920x1080@60.00Hz, scale 1.00, transform 0, pos 3440x0, 10b 0 [LOG] Registered signal for owner 35869410: 36bef0e8 -> 358694c8 (owner: CPointerManager) [LOG] Added new monitor with name HEADLESS-1 at [3440, 0] with size [1920, 1080], pointer 36d58700 [LOG] New monitor: WORKSPACEID 2, exists: 0 [LOG] [WLOutput (HEADLESS-1)] Registered global [LOG] [GammaControl] setting to monitor HEADLESS-1 [LOG] Callback 38334938 -> 38334930, CRenderbuffer removed. [LOG] Callback 36bcad38 -> 36bcad30, CRenderbuffer removed. [LOG] Removing monitor DP-2 from realMonitors [LOG] Callback 36ec6898 -> 36ec6890, CMonitor removed. [LOG] Callback 36ec6900 -> 36ec68f8, CMonitor removed. [WARN] Attempted to render frame on inactive session! [LOG] LayerSurface 1 destroyed [WARN] Layersurface destroyed on an invalid monitor (removed?) [LOG] Forcing an unmap of a LS that did a straight destroy! [LOG] LayerSurface 1 unmapped [WARN] Layersurface unmapping on invalid monitor (removed?) ignoring. [LOG] CWLSurface 382b6fa0 called destroy() [LOG] LayerSurface 0 destroyed [WARN] Layersurface destroyed on an invalid monitor (removed?) [LOG] LayerSurface 1 destroyed [WARN] Layersurface destroyed on an invalid monitor (removed?) [LOG] Forcing an unmap of a LS that did a straight destroy! [LOG] LayerSurface 1 unmapped [WARN] Layersurface unmapping on invalid monitor (removed?) ignoring. [LOG] CWLSurface 36ecdde0 called destroy() [LOG] LayerSurface 0 destroyed [WARN] Layersurface destroyed on an invalid monitor (removed?) [LOG] [WLCompositor] New wl_surface with id 39 at 3827d4c0 [LOG] [WLCompositor] New wl_surface with id 11 at 36eabc90 [LOG] [WLCompositor] New wl_region with id 27 at 36a8fe70 [LOG] CWLSurface 36b25f10 called init() [LOG] LayerSurface 36ccff40 (namespace hyprpaper layer 0) created on monitor HEADLESS-1 [LOG] [LayerShell] New wlr_layer_surface 36ccff40 [LOG] [WLCompositor] New wl_surface with id 42 at 36ed61a0 [LOG] CWLSurface 36bb5530 called init() [LOG] LayerSurface 38246310 (namespace waybar layer 2) created on monitor HEADLESS-1 [LOG] [LayerShell] New wlr_layer_surface 38246310 [LOG] LayerSurface 1 mapped [LOG] [WLSHM] Resizing a SHM pool from 2304 to 6912 [LOG] [WLSHM] Resizing a SHM pool from 6912 to 16128 [LOG] [WLSHM] Resizing a SHM pool from 16128 to 34560 [LOG] [WLSHM] Resizing a SHM pool from 34560 to 71424 [LOG] [WLSHM] Resizing a SHM pool from 71424 to 145152 [LOG] [WLSHM] Resizing a SHM pool from 145152 to 292608 [LOG] [WLSHM] Resizing a SHM pool from 292608 to 587520 [LOG] [WLSHM] Resizing a SHM pool from 587520 to 1177344 [LOG] [WLSHM] Resizing a SHM pool from 1177344 to 2356992 [LOG] [WLCompositor] New wl_region with id 23 at 36a26270 [LOG] LayerSurface 1 mapped [LOG] Registered signal for owner 36ec6300: 36c7bc48 -> 36ec6808 (owner: CMonitor) [LOG] Registered signal for owner 36ec6300: 36c7bcd8 -> 36ec6870 (owner: CMonitor) [LOG] Registered signal for owner 36ec6300: 36c7bcc8 -> 36ec68d8 (owner: CMonitor) [LOG] Registered signal for owner 36ec6300: 36c7bc58 -> 36ec6940 (owner: CMonitor) [LOG] Registered signal for owner 36ec6300: 36c7bc68 -> 36ec69a8 (owner: CMonitor) [LOG] Registered signal for owner 36ec6300: 36c7bc88 -> 36ec6a10 (owner: CMonitor) [LOG] Registered signal for owner 36ec6300: 36c7bca8 -> 36ec6a78 (owner: CMonitor) [LOG] Registered signal for owner 36ec6300: 36c7bc98 -> 36ec6ae0 (owner: CMonitor) [WARN] No rule found for DP-2, trying to use the first. [LOG] Applying monitor rule for DP-2 [LOG] Monitor DP-2: Applying highest mode 3440x1440@100.000000. [LOG] output DP-2 succeeded basic test on format DRM_FORMAT_XRGB8888 [LOG] Monitor DP-2 -> destroyed all render data [LOG] arrangeMonitors: 2 to arrange [LOG] arrangeMonitors: HEADLESS-1 auto [3440, 0] [LOG] arrangeMonitors: DP-2 auto [-1, -1] [LOG] arrangeMonitors: HEADLESS-1 xwayland [0, 0] [LOG] arrangeMonitors: DP-2 xwayland [1920, 0] [LOG] Monitor DP-2 data dump: res 3440x1440@100.00Hz, scale 1.00, transform 0, pos 1920x0, 10b 0 [LOG] Callback 358694f0 -> 358694e8, CPointerManager removed. [LOG] Registered signal for owner 35869410: 36bbbe68 -> 358694c8 (owner: CPointerManager) [LOG] Added new monitor with name DP-2 at [1920, 0] with size [3440, 1440], pointer 36c7bba0 [LOG] New monitor: WORKSPACEID 3, exists: 0 [LOG] [WLOutput (DP-2)] Registered global [WARN] Attempted to render frame on inactive session! [LOG] Leaving unsafe state [LOG] onDisconnect called for HEADLESS-1 [LOG] Callback 36cfd7a0 -> 36cfd798, CMonitor removed. [LOG] Callback 36cfda78 -> 36cfda70, CMonitor removed. [LOG] Callback 36cfd8d8 -> 36cfd8d0, CMonitor removed. [LOG] Callback 36cfd940 -> 36cfd938, CMonitor removed. [LOG] Callback 36cfd9a8 -> 36cfd9a0, CMonitor removed. [LOG] Callback 36cfda10 -> 36cfda08, CMonitor removed. [LOG] Removed monitor HEADLESS-1! [LOG] moveWorkspaceToMonitor: Moving 2 to monitor 0 [LOG] moveWorkspaceToMonitor: Plugging gap with new 4 [LOG] moveWorkspaceToMonitor: Plugging gap with existing 4 [wlr] [types/output/output.c:721] Basic output test failed for HEADLESS-1 [WARN] wlr_output_commit_state failed in CMonitor::onDisconnect [LOG] Destroying workspace ID 2 [LOG] Destroying workspace ID 4 [WARN] No rule found for DP-2, trying to use the first. [LOG] Applying monitor rule for DP-2 [LOG] Monitor DP-2: Applying highest mode 3440x1440@100.000000. [LOG] output DP-2 succeeded basic test on format DRM_FORMAT_XRGB8888 [LOG] arrangeMonitors: 1 to arrange [LOG] arrangeMonitors: DP-2 auto [1920, 0] [LOG] arrangeMonitors: DP-2 xwayland [0, 0] [ERR] [WLCompositor] Cannot enter surface 382c0de0 to DP-2, client hasn't bound the output [ERR] [WLCompositor] Cannot enter surface 38248c80 to DP-2, client hasn't bound the output [LOG] Monitor DP-2 data dump: res 3440x1440@100.00Hz, scale 1.00, transform 0, pos 0x0, 10b 0 [LOG] Callback 358694f0 -> 358694e8, CPointerManager removed. [LOG] Registered signal for owner 35869410: 36bef0e8 -> 358694c8 (owner: CPointerManager) [LOG] Callback 358694f0 -> 358694e8, CPointerManager removed. [LOG] Registered signal for owner 35869410: 36bbbe68 -> 358694c8 (owner: CPointerManager) [LOG] Cleanup: destroyed a layersurface [LOG] Registered signal for owner 36f41f80: 36abe458 -> 36f41f90 (owner: CRenderbuffer) [LOG] Monitor DP-2 -> destroyed all render data [LOG] Shaders initialized successfully. [LOG] Framebuffer created, status 36053 [LOG] Framebuffer created, status 36053 [LOG] Framebuffer created, status 36053 [LOG] Framebuffer created, status 36053 [wlr] [backend/drm/drm.c:875] connector DP-2: Failed to page-flip output: a page-flip is already pending [LOG] LayerSurface 1 destroyed [WARN] Layersurface destroyed on an invalid monitor (removed?) [LOG] Forcing an unmap of a LS that did a straight destroy! [LOG] LayerSurface 1 unmapped [WARN] Layersurface unmapping on invalid monitor (removed?) ignoring. [LOG] CWLSurface 36bb5530 called destroy() [LOG] LayerSurface 0 destroyed [WARN] Layersurface destroyed on an invalid monitor (removed?) [LOG] LayerSurface 1 destroyed [WARN] Layersurface destroyed on an invalid monitor (removed?) [LOG] Forcing an unmap of a LS that did a straight destroy! [LOG] LayerSurface 1 unmapped [WARN] Layersurface unmapping on invalid monitor (removed?) ignoring. [LOG] CWLSurface 36b25f10 called destroy() [LOG] LayerSurface 0 destroyed [WARN] Layersurface destroyed on an invalid monitor (removed?) [LOG] Cleanup: destroyed a layersurface [LOG] [WLCompositor] New wl_surface with id 39 at 3827d4c0 [LOG] [WLCompositor] New wl_surface with id 36 at 36ed61a0 [LOG] [WLCompositor] New wl_region with id 32 at 36f4abf0 [LOG] CWLSurface 36ecdde0 called init() [LOG] LayerSurface 36ccff40 (namespace hyprpaper layer 0) created on monitor DP-2 [LOG] [LayerShell] New wlr_layer_surface 36ccff40 [LOG] Registered signal for owner 3832c120: 36ecc288 -> 3832c130 (owner: CRenderbuffer) [LOG] [WLCompositor] New wl_surface with id 44 at 36f49db0 [LOG] CWLSurface 3829b280 called init() [LOG] LayerSurface 38246310 (namespace waybar layer 2) created on monitor DP-2 [LOG] [LayerShell] New wlr_layer_surface 38246310 [LOG] LayerSurface 1 mapped [LOG] [WLSHM] Resizing a SHM pool from 2304 to 6912 [LOG] [WLSHM] Resizing a SHM pool from 6912 to 16128 [LOG] [WLSHM] Resizing a SHM pool from 16128 to 34560 [LOG] [WLSHM] Resizing a SHM pool from 34560 to 71424 [LOG] [WLSHM] Resizing a SHM pool from 71424 to 145152 [LOG] [WLSHM] Resizing a SHM pool from 145152 to 292608 [LOG] [WLSHM] Resizing a SHM pool from 292608 to 587520 [LOG] [WLSHM] Resizing a SHM pool from 587520 to 1177344 [LOG] [WLSHM] Resizing a SHM pool from 1177344 to 2356992 [LOG] [WLCompositor] New wl_region with id 41 at 38303f50 [LOG] LayerSurface 1 mapped [WARN] [wl_output] Binding a wl_output that's inert?? Possible client bug. [LOG] [GammaControl] setGamma for DP-2 [LOG] [GammaControl] setting to monitor DP-2 ```
PaideiaDilemma commented 3 months ago

Are you running hyprlock latest git?

myned commented 3 months ago

The above tests were with v0.3.0 via NixOS unstable, but I retested with commit https://github.com/hyprwm/hyprlock/commit/9737bf64849bb490198a959fc98565041e290ac2 using nix-shell via the flake in this repo.

Instead of misalignment, with the git version at step 4 there is simply a red screen that is unrecoverable without killing Hyprland. Unable to easily verify whether the workspace issue is still present due to that fact.

PaideiaDilemma commented 3 months ago

This sound familiar. But not related to step 4 of your description and happens generally when launching it right?

In nix you have to make sure that mesa versions match with your system. If you use the flake in this repo as an input for your own flake, inputs.nixpkgs.follows = "nixpkgs" would take care of that. Outside of you own flake you could download the repo and do nix flake lock --override-input nixpkgs github:NixOs/nixpkgs/e8057b67ebf307f01bdcc8fba94d94f75039d1f6 where the hash matches the nixpkgs commit of your systems nixpkgs.

myned commented 3 months ago

This sound familiar. But not related to step 4 of your description and happens generally when launching it right?

It runs fine with just hyprlock in terminal, the red screen occurs only when waking after the monitor goes to sleep with dpms off.

I rebuilt hyprlock by overriding the home-manager package and rebooted, with the same red screen result as nix-shell:

# flake.nix
hyprlock = {
  inputs.nixpkgs.follows = "nixpkgs";
  url = "github:hyprwm/hyprlock";
};
programs.hyprlock.package = inputs.hyprlock.packages.${pkgs.system}.default;
myned commented 3 months ago

Although waking the display regularly results in a red screen, sometimes the lockscreen does appear properly with no reason that I was able to narrow down. When it does work, the lockscreen is aligned correctly, so I believe that specific issue is fixed in git.

Assuming that is the case, the remaining issue seems to reside with Hyprland's output handling. Below are some logs for both good (only the workspace issue is present) and bad (red screen) outcomes after step 3.

hyprland.good.log hyprlock.good.log

hyprland.bad.log hyprlock.bad.log

PaideiaDilemma commented 3 months ago

Ok i though it might be a different issue.

Can you update hyprland as well and see if that also happens on current main?

myned commented 3 months ago

It does seem to be fixed on Hyprland built at https://github.com/hyprwm/Hyprland/commit/0a6e83005f1910b5c1ec78476fcffc05af47833a with hyprlock at https://github.com/hyprwm/hyprlock/commit/9737bf64849bb490198a959fc98565041e290ac2 as I am unable to reproduce any hyprlock misalignment nor crashing/red screens after a day of usage. The workspace switching is still present, but that's tracked in Hyprland's issue.

Thanks for the reminder to test git before reporting. I figured the issue would be closed if it was known to be fixed in a commit.