https://bugs.kde.org/show_bug.cgi?id=477480
Bug ID: 477480 Summary: Prevent monitors, widgets, and windows from re-arranging themselves when adding/removing a monitor. Classification: Plasma Product: kwin Version: 5.27.9 Platform: Arch Linux OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: multi-screen Assignee: kwin-bugs-n...@kde.org Reporter: atmaho...@gmail.com Target Milestone: --- SUMMARY In the Display Configuration, we drag monitors to re-arrange them in a specific config. This should be "glued together" so that when a new monitor is added, the existing monitors and their relative positions do not change. Currently when a new monitor is added, these get reset to some default arrangement which is completely different. The overlay with options for how to add the new monitor appears after everything is already re-arranged, and I haven't had luck with it having any effect. I am using 4 monitors. Similarly, we put widgets on specific monitors. I like to have a specific monitor with some clock widgets on it. I like a specific monitor to have the task manager oriented a specific way. These widgets should stay glued to the monitor they are assigned. However, when adding a new monitor, these widgets may re-arrange and appear on a different monitor. This is frustrating and sometimes challenging to enter edit mode and move things back. (Challenging example: Connecting an 800x600 projector and task manager and clock widgets moving to it, and they are crammed into the tiny screen resolution, and I can't see any of them yet because I didn't turn on the projector. Additional challenges: sometimes widgets get stuck when dragging between montiors, or change size, or get dropped onto another widget). Many times per week I have to enter edit mode to drag my task manager back to the right monitor and also re-size/re-orient it, drag my desktop widgets back to the right screen and also re-size/orient them. I try not to disconnect screens, especially displayport, but it's inevitable. Ideally, we should only ever move windows or widgets if a screen is removed. If a screen is removed, the windows and widgets should just move to the primary monitor. The remaining screens should still be "glued together". If a screen is removed and there is now a gap in the screen arrangement, move the two (or more) "islands" so that they touch again. The algorithm for this can be simple, like finding the nearest point between the islands and closing that distance. As a partial workaround I used to disable KScreen to prevent monitors from re-arranging themselves, but this isn't an option anymore (at least on Wayland). STEPS TO REPRODUCE Example for adding a new monitor: - Have 4 monitors arranged a specific way - use xdp screencast portal to create a new virtual output - observe whether widgets like task manager move to a different screen - observe whether the 4 existing monitors become rearranged differently - make any corrections by going to display settings and re-arranging monitors back to preferred way, and arrange the new virtual output as desired - make any corrections to widget locations by entering edit mode and moving/resizing widgets - stop screencast - observe monitor arrangement and widget locations after the virtual output is removed OBSERVED RESULT - the monitors become re-arranged when adding the new output - the task manager moves to a different monitor when adding the new output - the task manager moves to a different monitor again (not the original) when removing the new output EXPECTED RESULT - The layout of monitors set in display settings should be "glued together", and adding a new monitor should not unglue and move the other monitors around - Same for widgets - they should be glued to the monitor they are placed on. If a screen is added/removed, the widgets should not move unless that specific screen was removed. SOFTWARE/OS VERSIONS Linux/KDE Plasma: Arch Linux KDE Plasma Version: 5.27.9 KDE Frameworks Version: 5.112.0 Qt Version: 5.15.11 ADDITIONAL INFORMATION -- You are receiving this mail because: You are watching all bug changes.