mzur / gnome-shell-wsmatrix

GNOME shell extension to arrange workspaces in a two-dimensional grid with workspace thumbnails
GNU General Public License v3.0
469 stars 60 forks source link

Can't set the number of workspaces #252

Closed naddeoa closed 1 year ago

naddeoa commented 1 year ago

I installed the addon via Chrome on the extension website. The default number of workspaces (4) seem to work fine, but when I attempt to update the number to 9, because I want a 3x3 grid, the built in workspace overview shows a bugged two column, very tall grid and when I attempt to go to any of the extra columns gnome just crashes. After the crash, the value in dconf editor is reset to 4 again.

image image

naddeoa commented 1 year ago

I also tried this with various combinations of fixed/manual workspaces in the built in Settings -> Multitasking menu.

mzur commented 1 year ago

Which GNOME version do you use? Do you see any errors in journalctl /usr/bin/gnome-shell?

naddeoa commented 1 year ago

Gnome version 42.5. I installed it via apt install gnome-session gdm3 from a Kubuntu 22.04 installation. Plasma was unstable for me so I switched to gnome. I only use Plasma because it has a desktop grid though (and it was stable).

There are some errors in the log after I trigger a crash

Apr 17 10:29:31 whyanthony gnome-shell[19805]: Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x3a0000c
Apr 17 10:29:35 whyanthony gnome-shell[19805]: JS ERROR: TypeError: list is undefined
                                               addItem@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePopup/workspaceSwitche>
                                               _init@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePopup/workspaceSwitcherP>
                                               WorkspaceSwitcherPopupList@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePop>
                                               _init@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePopup/workspaceSwitcherP>
                                               SwitcherPopup@resource:///org/gnome/shell/ui/switcherPopup.js:34:4
                                               WorkspaceSwitcherPopup@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePopup/w>
                                               _createNewPopup@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePopup/workspac>
                                               _showWorkspaceSwitcherPopup/<@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspace>
                                               _showWorkspaceSwitcherPopup@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePo>
                                               _showWorkspaceSwitcher@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePopup/w>
Apr 17 10:29:35 whyanthony gnome-shell[19805]: JS ERROR: TypeError: list is undefined
                                               addItem@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePopup/workspaceSwitche>
                                               _init@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePopup/workspaceSwitcherP>
                                               WorkspaceSwitcherPopupList@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePop>
                                               _init@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePopup/workspaceSwitcherP>
                                               SwitcherPopup@resource:///org/gnome/shell/ui/switcherPopup.js:34:4
                                               WorkspaceSwitcherPopup@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePopup/w>
                                               _createNewPopup@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePopup/workspac>
                                               _showWorkspaceSwitcherPopup/<@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspace>
                                               _showWorkspaceSwitcherPopup@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePo>
                                               _showWorkspaceSwitcher@/home/anthony/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de/workspacePopup/w>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clu>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: == Stack trace for context 0x55c55c40c180 ==
Apr 17 10:29:40 whyanthony gnome-shell[19805]: == Stack trace for context 0x55c55c40c180 ==
Apr 17 10:29:40 whyanthony gnome-shell[19805]: == Stack trace for context 0x55c55c40c180 ==
Apr 17 10:29:40 whyanthony gnome-shell[19805]: The offending signal was destroy on Gjs_workspacePopup_workspaceThumbnail_WorkspaceThumbnail 0x55c55dd460c0.
Apr 17 10:29:40 whyanthony gnome-shell[19805]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clu>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: The offending signal was destroy on Gjs_workspacePopup_workspaceThumbnail_WorkspaceThumbnail 0x55c55dd460c0.
Apr 17 10:29:40 whyanthony gnome-shell[19805]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clu>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: The offending signal was destroy on Gjs_workspacePopup_workspaceThumbnail_WorkspaceThumbnail 0x55c55dd460c0.
Apr 17 10:29:40 whyanthony gnome-shell[19805]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clu>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: The offending signal was destroy on Gjs_workspacePopup_workspaceThumbnail_WorkspaceThumbnail 0x55c55dd460c0.
Apr 17 10:29:40 whyanthony gnome-shell[19805]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clu>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: The offending signal was destroy on Gjs_workspacePopup_workspaceThumbnail_WorkspaceThumbnail 0x55c55dd460c0.
Apr 17 10:29:40 whyanthony gnome-shell[19805]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clu>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: The offending signal was destroy on MetaBackgroundActor 0x55c55ce51120.
Apr 17 10:29:40 whyanthony gnome-shell[19805]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clu>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: The offending signal was destroy on Gjs_workspacePopup_workspaceThumbnail_WorkspaceThumbnail 0x55c560964970.
Apr 17 10:29:40 whyanthony gnome-shell[19805]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clu>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: The offending signal was destroy on Gjs_workspacePopup_workspaceThumbnail_WorkspaceThumbnail 0x55c560964970.
Apr 17 10:29:40 whyanthony gnome-shell[19805]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clu>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: The offending signal was destroy on Gjs_workspacePopup_workspaceThumbnail_WorkspaceThumbnail 0x55c560964970.
Apr 17 10:29:40 whyanthony gnome-shell[19805]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clu>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: The offending signal was destroy on Gjs_workspacePopup_workspaceThumbnail_WorkspaceThumbnail 0x55c560964970.
Apr 17 10:29:40 whyanthony gnome-shell[19805]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clu>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: The offending signal was destroy on Gjs_workspacePopup_workspaceThumbnail_WorkspaceThumbnail 0x55c560964970.
Apr 17 10:29:40 whyanthony gnome-shell[19805]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clu>
Apr 17 10:29:40 whyanthony gnome-shell[19805]: The offending signal was destroy on MetaBackgroundActor 0x55c55eaea630.
Apr 17 10:29:41 whyanthony gnome-shell[19805]: Bug in window manager: Failed to find destination workspace in layout
Apr 17 10:29:42 whyanthony gnome-shell[250366]: Running GNOME Shell (using mutter 42.5) as a X11 window and compositing manager
Apr 17 10:29:43 whyanthony gnome-shell[250366]: ATK Bridge is disabled but a11y has already been enabled.
Apr 17 10:29:43 whyanthony gnome-shell[250366]: Unset XDG_SESSION_ID, getCurrentSessionProxy() called outside a user session. Asking logind directly.
Apr 17 10:29:43 whyanthony gnome-shell[250366]: Will monitor session 9
Apr 17 10:29:43 whyanthony gnome-shell[250366]: Telepathy is not available, chat integration will be disabled.
Apr 17 10:29:43 whyanthony gnome-shell[250366]: meta_sound_player_play_from_theme: assertion 'META_IS_SOUND_PLAYER (player)' failed
Apr 17 10:29:44 whyanthony gnome-shell[250366]: Error looking up permission: GDBus.Error:org.freedesktop.portal.Error.NotFound: No entry for geolocation
Apr 17 10:29:47 whyanthony gnome-shell[250366]: GNOME Shell started at Mon Apr 17 2023 10:29:43 GMT-0700 (PDT)
Apr 17 10:29:47 whyanthony gnome-shell[250366]: Registering session with GDM
Apr 17 10:29:49 whyanthony gnome-shell[250366]: Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x3a05772

There are no errors before that though. I use dconf-editor to set the workspaces to 9, trigger the activities overview with the windows key, can see the weird desktop grid with two columns and too many rows, and then I trigger a crash by attempting to go to the 5th desktop horizontally using the built in gnome switcher on that same overview window.

mzur commented 1 year ago

Thanks! Which version of this extension do you use?

naddeoa commented 1 year ago

Oh man, finding the version was pretty hard, but I found a work around in the process. Hopefully this helps other people. First off, I didn't specify a gnome version in the subtle drop down on the gnome extension website before installing the plugin and it didn't complain at all.

image

The easiest way to see the version after googling was to install the desktop client for managing gnome extensions called Extension Manager, which also required that I install the flatpak backend, which I begrudgingly did.

After I did that, I saw that I had version 38 of Workspace Matrix installed. Just to be sure, I reinstalled workspace matrix on the extension website after specifying my gnome version in the dropdown. Apparently version 38 of workspace matrix was right anyway for my gnome version. Also confusing: they have several gnome versions with minor versions but they don't specify minor versions for >40 gnome shell, so I just assumed the right gnome shell version to use is 42 since I'm on Gnome 42.5.

Then the magic fix. Using extension manager desktop app I just installed, I launched the "settings" menu for workspace matrix.

image

This settings menu is totally different than what I was able to see using dconf-editor (under /org/gnome/desktop/wm/preferences/), which is very confusing. I assumed there was only a single interface for settings. I used this new mystery settings menu to specify the columns and rows, instead of using dconf-editor to specify the total number of workspaces, and now it works. No idea why there are multiple settings, and the gnome experience is pretty confusing as someone who hasn't used gnome in a long time, but it is working now so I guess I'm happy :shrug:.

I would like to know what's up with the multiple settings menus though. What decides the dconf options vs the plugin options from the extension manager? I only used dconf-editor because it was mentioned in the wiki on this project. I had no idea this other thing even existed.

mzur commented 1 year ago

You can find the settings of this extension under /org/gnome/shell/extensions/wsmatrix/ in dconf-editor. However, I tried this and I somehow didn't see all the available keys. Maybe it's because of my dev setup.

I don't recommend using dconf-editor over the extension settings window but it should work if you want to avoid all the dependencies.

naddeoa commented 1 year ago

I guess my issue is solved then. Thx for the help.