System hangs when launching gnome-tweaks while external display attached
When connected to an external display, launching Tweaks causes the system to hang. The only way to recover is to disconnect the external display, at which point Tweaks opens. The monitor can then be reconnected and Tweaks can be used, but closing Tweaks and reopening recreates the issue.
I noticed that changing "Workspaces on primary display only" to "Workspaces span displays" avoids the issue.
I also noticed that Super+Shift+PgDn while focused on Tweaks moves it down a workspace (expected) but from the primary to the secondary display (not expected) -- this is in "Workspaces span displays" mode.
The only extension I've installed is Gtile, and the issue persists even when it is disabled.
The laptop display is 14" 1440p, and the secondary display is 23" 1080p. I'm on Fedora 29 with all packages upgraded to latest versions.
Update: I've also found that while "Workspaces on primary display only" is set, Super+Shift+PgDn causes recreates the issue as well. It seems that the unexpected moving between displays issue is an important part of this issue -- possibly an unexpected side-effect of enabling/disabling "Workspaces span displays". I have not noticed this issue with any other applications besides Tweaks, but I'll update if I do.
Update 2: I've noticed that Tweaks edits org.gnome.mutter workspace-only-on-primary key, but that there is a (conflicting?) org.gnome.shell.overrides key called workspace-only-on-primary as well -- Tweaks doesn't touch that one. The mutter schema seems to contain a superset of the overrides schema. I tried setting both to "true", but the issue persists. I'm going to dump all of the gsettings values, reinstall fedora, see if the issue has gone away, and compare the settings.
Update 3: OK, after a completely fresh Fedora 29 install, I can confirm that this issue affects stock installs. The only change to gsettings that results from installing Tweaks (dnf install -y gnome-tweaks # installs gnome-tweaks-3.30.2-1.fc29.src.rpm
) is the addition of org.gnome.shell.extensions.user-theme name -> ''
. Now, I noticed the pre-installed gnome-shell was 3.30.1, so I upgraded that to 3.30.2 -- same results.
Update 4: Found a workaround. When I change my primary display to my external monitor, Tweaks will open without issue. Another workaround is to change my laptop monitor to 100% scaling instead of 200%, leaving it as primary. This might be the most significant finding yet. Tweaks must think it doesn't have enough pixel real estate on the primary monitor, and with the secondary monitor not configured to be part of the same workspace, it finds nowhere to open. This doesn't happen with other apps, be it Wayland-native or XWayland-shimmed, so there must be a fix possible in the Tweaks codebase.
Update 5: After playing with more scaling combinations, including both screens 200%, I found that virtually any combination except what I actually need pretty much works. There is still weirdness (e.g. tiling w/ Super+Left / Super+Right doesn't work), but Tweaks opens. Finally, I enabled experimental fractional scaling with gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"
, and without actually changing scaling settings, Tweaks opens (still with the tiling weirdness). I'm content with this workaround, but hopefully my troubleshooting proves useful to the project or other users who may experience this. FWIW, this was all experienced on an X1 Carbon 6th Gen with stock Fedora 29 installed.