https://bugs.kde.org/show_bug.cgi?id=520032

--- Comment #11 from Matt <[email protected]> ---
Follow-up to comment 10: found the trigger, steps to reproduce, and a
workaround.

SETUP
Laptop panel (eDP-1, 3072x1920 @ 1.65 scale) mirrored to an external monitor
(DP-1, 1920x1080 @ 1.0) while the lid is open. Then close the lid.

LID-CLOSED STATE (kscreen-doctor -o)
  eDP-1: disabled, replication source:0, Geometry 0,0 1862x1164
  DP-1:  enabled,  replication source:1, Geometry 1862,0 1920x1080

So the only enabled output is still marked as a replica of the disabled panel,
and it sits at x=1862 (the panel's logical width), leaving nothing at 0,0.
This matches the analysis in comment 9.

RESULT
  spectacle -b -n -r -o /tmp/region.png
The selection overlay appears and I drag a rectangle, but it prints:
  AnnotationDocumentPrivate::setCanvas(...): `rect` is empty. This should not
happen.
and saves the full 1920x1080 screen. No crash in my case. A full-screen capture
(-f) is correct and matches the screen.

ATTEMPTED FIX 1: moving the output is rejected
  kscreen-doctor output.DP-1.position.0,0
  -> applying config failed! Position of enabled output DP-1 is negative
     (-2147483647, -2147483647)

WORKAROUND THAT WORKS: clearing the replica
  kscreen-doctor output.DP-1.mirror.none
DP-1 changes to replication source:0 and moves to 0,0 automatically.
The same region capture then works correctly (628x461, no warning).

PERSISTENCE
After opening the lid (mirroring still works as before) and closing it again,
DP-1 stays at replication source:0 / 0,0, and region captures keep working
(519x368). The fixed lid-closed layout appears to be saved.

DISPLAY SETTINGS SYMPTOM
With the lid closed, before the workaround, the "Edit Arrangement" area in
System Settings → Display & Monitor was completely blank. After
`mirror.none`, it shows the external monitor centred at 0,0. This may be the
KCM receiving the same invalid position (-2147483647) that kscreen-doctor
reported.

SUMMARY
The trigger seems to be a lid-closed layout where the only enabled output is
still a replica of the disabled internal panel, so it keeps a non-zero offset.
Spectacle could probably handle an output layout that doesn't start at 0,0;
separately, KWin/KScreen arguably shouldn't leave an enabled output replicating
a disabled one.

Spectacle 6.6.6, Plasma 6.6.6, Ubuntu 26.04, Wayland, Lenovo P14s.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to