swaylock icon indicating copy to clipboard operation
swaylock copied to clipboard

swaylock either migrated to another output or failed to catch hotplug on labwc

Open kode54 opened this issue 9 months ago • 2 comments

Running the following packages on Arch:

wlroots-hidpi-xprop-git 0.17.0.20230821.165609-1 labwc-wlroots-017-git 0.6.4.r57.gbd6efe4-1 swaylock 1.7.2-1 swayidle 1.8.0-1

The labwc package is basically Git version with labwc PR 626 applied to it.

The issue I'm having is that, if I boot up labwc with one display, lock the screen with swaylock, then plug in my second monitor, swaylock doesn't lock the newly attached monitor.

I also have a problem if I set up swayidle to invoke kanshi sighup to reset the scaling of my primary monitor, which defaults to 100% scaling when I want 200%. This results in swaylock migrating off it or failing to lock it, too.

No crashes logged.

kode54 avatar Sep 13 '23 22:09 kode54

Please retest with swaylock master, which would guarantee that ext-session-lock-v1 is used.

Locking with ext-session-lock is session-wide, not per monitor. Quoting the spec:

The locked event indicates that the session is locked. This means that the compositor must stop rendering and providing input to normal clients. Instead the compositor must blank all outputs with an opaque color such that their normal content is fully hidden.

If any regular content ever appears during lock, it is a bug in labwc. If the issue is just that the lock UI does not appear, this could be a bug in swaylock (or labwc). For the latter, collect a WAYLAND_DISPLAY=1 log - but please avoid typing your password as this would be included in the log.

kennylevinsen avatar Sep 14 '23 08:09 kennylevinsen

I tested 1.7.2 and 1.7.2.r8 from Git master, and both work with hotplugging the display. The problem comes when using an SSH session to rescale the output, which is similar to if I were to have my swayidle commandline for display power on so that it sends SIGHUP to Kanshi and restores my display scaling mode.

The log does seem to indicate that swaylock is doing the correct thing, and that labwc is at fault.

Here is the log anyway, it doesn't include any password. I wasn't able to type anything to the accessible desktop, because the session lock was still capturing the keyboard. I was, however, able to use the mouse to control my waybar, and also to command the desktop menu to terminate the labwc session.

https://gist.github.com/kode54/0af4fc82ff1957cd08604aab5bef5684

kode54 avatar Sep 14 '23 09:09 kode54