Bug 509463

Summary: Prior position of external screen forgotten when disabling+enabling it, or doing "Switch to laptop screen" and then "Extend to right"
Product: [Plasma] plasmashell Reporter: Holo <winter>
Component: Display Configuration widget and OSDAssignee: Plasma Bugs List <plasma-bugs-null>
Status: CONFIRMED ---    
Severity: normal CC: kde, kde, nate, plasma-bugs-null, xaver.hugl
Priority: NOR Keywords: multiscreen
Version First Reported In: 6.4.4   
Target Milestone: 1.0   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Two screenshots showing the behaviour

Description Holo 2025-09-13 16:27:09 UTC
Created attachment 184936 [details]
Two screenshots showing the behaviour

SUMMARY
It's not possible to save a negative Y-position for my second screen if I want to arrange it properly. Setting negative values in the kscreen config also don't get accepted. The initial arrangement set in the display settings is applied. But once I disable and re-enable the screen extension, the previously working setting is not reapplied. 

STEPS TO REPRODUCE
1. extend screen to right
2. move second screen in arrangement higher than the primary screen
3. apply arrangement
4. disable screen extension
5. re-enable screen extension

OBSERVED RESULT
The working arrangement set while the screen extension is active is not applied after disabeling and re-enabeling the screen extension. Y-position of screen only updates if the screen is moved lower than the primary screen, never when it's moved higher.

EXPECTED RESULT
The arrangement working during extending the screen is reapplied after changing the extension setting. Negative X and Y positioning is possible.


SOFTWARE/OS VERSIONS
Linux/KDE Plasma:  Fedora 42
KDE Plasma Version: 6.4.4
KDE Frameworks Version: 6.17.0
Qt Version: 6.9.1

ADDITIONAL INFORMATION
AMD CPU + GPU
Comment 1 David Edmundson 2025-09-13 17:43:03 UTC
>4. disable screen extension
5. re-enable screen extension

Can you clarify what you're doing in these steps to disable the screen.
Comment 2 Holo 2025-09-13 18:20:13 UTC
Hi,
I enable/disable the screen extension by pressing [Windows Key] + [P] on the keyboard to open the quick menu and selecting "Switch to laptop screen". 

If I enable/disable the screen in the display settings, while my prefered arrangement is active, I get a different behaviour were the second screen is moved upwards every time I disable and enable it.

(Somehow I can't attach a screenshot to show the behaviour.)
Comment 3 Holo 2025-09-13 18:59:36 UTC
Hello, I have just realized that I am expressing myself incorrectly. In step 4. and 5. I am actually referring to the activation or deactivation of the desktop extension to my second screen.
Comment 4 Nate Graham 2025-09-17 15:53:14 UTC
I think this is actually intentional, at least as currently implemented. Clicking "Extend to right" will set up the external screen when a new position, rather than remembering any prior positioning. The Meta+P overlay is really meant as a quick way to set up a new screen, not a way to switch between multiple customized screen setups.

The recommended way to do what you're wanting to do is to disable and re-enable the external screen as needed, either using the System Settings page or the `kscreen-doctor` command-line tool.
Comment 5 Holo 2025-09-17 18:31:05 UTC
Hi,

thanks for the explanation. To be honest, I find this behavior somewhat odd for a desktop PC. On a system with a fixed number of screens I would have expected [Meta]+[P] to reactivate the last activated state, or at least to read the config in '~/.local/share/kscreen/...'.

The system settings and kscreen-doctor would also work for my purpose, but they currently have other bugs on my setup.

System Settings: Deactivating and activating the second display pushes it further up each time the screen is activated and it previously had a negative y position.

kscreen-doctor: Specifying the position with ‘kscreen-doctor output.2.position.2048,-550’ initially positions the second display properly. However, as soon as I execute the command again, the second display moves relative to its previous y position, so in my case it moves upwards. With positive y values, it moves downwards. The y position in the command is therefore not absolute, but is always incremented by the specified value. Deactivating and activating the display with ‘kscreen-doctor output.2.disable’ and ‘kscreen-doctor output.2.enable’ has the same effect as [Meta]+[P], the previous position is not reactivated. 

Are those problems related to this problem or do I have to open new bug tickets?
Comment 6 Nate Graham 2025-09-18 19:21:53 UTC
> System Settings: Deactivating and activating the second display pushes it further up each time the screen is activated and it previously had a negative y position.

Ah, this sounds like the same bug. I guess both codepaths go to the same place. Let's re-open this and use it to track both.
Comment 7 Nate Graham 2025-09-19 13:46:54 UTC
I was able to sort of reproduce this by moving my secondary display higher than the primary, applying, disabling the secondary, applying, re-enabling it, and applying once more.

However in this case it moved higher, not lower. So high that there was a gap between screens!

The scale factors may be relevant here. My primary is 175% and my secondary is 100%; I notice that both of yours are 125%.
Comment 8 Holo 2025-09-19 15:12:38 UTC
Hi, thank you for checking. Maybe something got lost in translation, but for me it's the same behaviour. If the second screen is higher than the primary one it moves upwards and if it's lower it moves downwards on activation.

Mine are both scaled to 125% because they have the same resolution and size so I can keep the UI consistant.