Michael B Allen
2023-Nov-27 02:44 UTC
[CentOS] Apps moving to laptop display when switching KVM
So I installed CentOS Stream 9 on a new Lenovo T14 Gen 4 Intel. I have a 4x1 HDMI KVM with external monitor. When switching the KVM, apps move between displays / workspaces in erratic ways. More specifically, when switching out, apps on the external display usually move to the laptop display. This sorta makes sense for a laptop with an external display. When the external display is disconnected, you want to have access to the apps. But for a KVM, the desired behavior is that the apps do NOT move. When switching back, I want all apps (terminals) to be where they were when I switched out. After much searching, I have found NO discussion of this issue. Is this a scenario that is even supposed to work? The KVM worked perfectly with the Windows 11 install that come with the machine (apps on the external display did not move when switching the KVM). Questions: Is there a GNOME window manager configuration that does not move apps when it senses the HDMI connection has changed? I actually had this mostly working with a Dell laptop running a RHEL 9 clone and selecting Xorg on the GDM screen. Apps were not moved when switching out (although depending on particular circumstances they could when switching back). Where should I be asking about this? A freedesktop.org list? Where is the code that moves windows in reaction to a change in displays? Currently the only way to reliably switch the KVM without all of the apps loosing their positions is to just suspend the machine before and resume after.
Michael B Allen
2023-Nov-27 15:43 UTC
[CentOS] Apps moving to laptop display when switching KVM
UPDATE: Apparently this is a long-standing and pervasive issue in the mutter package: https://gitlab.gnome.org/GNOME/mutter/-/issues/1419 https://gitlab.gnome.org/GNOME/mutter/-/issues/230#note_1551972 https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2092 https://gitlab.gnome.org/GNOME/mutter/-/issues/1418 https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/1778983 https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/1574251 https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/1927948 The second link has an explanation that sounds plausible. The issue can occur under a wide range of circumstances from suspend-resume (which I have since witnessed) or just locking the screen and not just when KVM switching a KVM. Unfortunately there is zero activity on the issue. Mike On Sun, Nov 26, 2023 at 9:44?PM Michael B Allen <ioplex at gmail.com> wrote:> > So I installed CentOS Stream 9 on a new Lenovo T14 Gen 4 Intel. > > I have a 4x1 HDMI KVM with external monitor. > > When switching the KVM, apps move between displays / workspaces in erratic ways. > > More specifically, when switching out, apps on the external display > usually move to the laptop display. > > This sorta makes sense for a laptop with an external display. > When the external display is disconnected, you want to have access to the apps. > > But for a KVM, the desired behavior is that the apps do NOT move. > When switching back, I want all apps (terminals) to be where they were > when I switched out. > > After much searching, I have found NO discussion of this issue. > > Is this a scenario that is even supposed to work? > > The KVM worked perfectly with the Windows 11 install that come with > the machine (apps on the external display did not move when switching > the KVM). > > Questions: > > Is there a GNOME window manager configuration that does not move apps > when it senses the HDMI connection has changed? > > I actually had this mostly working with a Dell laptop running a RHEL 9 > clone and selecting Xorg on the GDM screen. > Apps were not moved when switching out (although depending on > particular circumstances they could when switching back). > > Where should I be asking about this? > A freedesktop.org list? > > Where is the code that moves windows in reaction to a change in displays? > > Currently the only way to reliably switch the KVM without all of the > apps loosing their positions is to just suspend the machine before and > resume after.