PaperWM icon indicating copy to clipboard operation
PaperWM copied to clipboard

Support GNOME 40

Open gavr123456789 opened this issue 3 years ago • 89 comments

gavr123456789 avatar Mar 18 '21 11:03 gavr123456789

GNOME put out this info for extension developers https://blogs.gnome.org/shell-dev/2021/03/20/extensions-rebooted-porting-your-existing-extensions-to-gnome-40/

mrspikeroot avatar Mar 23 '21 03:03 mrspikeroot

Have` started working on support for gnome shell 40 here: https://github.com/paperwm/PaperWM/tree/next-release

Things should start and launching windows should work, but there's quite a few bugs (eg. scrolling the workspaces seems to crash the process, and dragging windows are broken).

hedning avatar Apr 05 '21 10:04 hedning

Have` started working on support for gnome shell 40 here: https://github.com/paperwm/PaperWM/tree/next-release

Things should start and launching windows should work, but there's quite a few bugs (eg. scrolling the workspaces seems to crash the process, and dragging windows are broken).

The configuration panel doesn't works now. How can I modify the configuration manually?

qwIvan avatar Apr 07 '21 22:04 qwIvan

using dconf-editor, orn using the gsettings command line tool. you can check my wbolster/dotfiles repo (gnome subdirectory) for some examples

wbolster avatar Apr 08 '21 06:04 wbolster

using dconf-editor, orn using the gsettings command line tool. you can check my wbolster/dotfiles repo (gnome subdirectory) for some examples

Animation of switch focus between two monitor is incorrect. How to disable animation?

qwIvan avatar Apr 08 '21 07:04 qwIvan

using dconf-editor, orn using the gsettings command line tool. you can check my wbolster/dotfiles repo (gnome subdirectory) for some examples

image The above command is refer from your dotfile, but it doesn't work.

qwIvan avatar Apr 08 '21 07:04 qwIvan

ah yes, this extension's name is problematic because it contains a : (colon), which the gsettings tool treats as a path separator (GSETTINGS_SCHEMA_DIR). i reported this before in #322.

i use an ugly symlink based hack to work around it:

    # HACK: The colon in the name confuses the GSETTINGS_SCHEMA_DIR
    # environment variable used by the ‘gsettings’ tool, so trick
    # it into picking up the right directory anyway.
    ln -s 'paperwm@hedning:matrix.org/schemas' 'paperwm@hedning'

see https://github.com/wbolster/dotfiles/blob/main/gnome/install-extensions#L39-L42

wbolster avatar Apr 08 '21 08:04 wbolster

I found a solution to disable the incorrect animation. Just open gnome-teaks and disable the animation option.

qwIvan avatar Apr 08 '21 17:04 qwIvan

Cant enable now
image UPD after alt + f2 -> r It started working
image

gavr123456789 avatar Apr 21 '21 08:04 gavr123456789

after alt + f2 -> r It started working

this gives me: restart is not available on Wayland 😅 reboots have not fixed tho...

KiaraGrouwstra avatar Apr 21 '21 13:04 KiaraGrouwstra

Btw. the Gnome Foundation put up a migration guide from GTK3->GTK4, if you haven't come across this one, this may be useful: https://developer.gnome.org/gtk4/4.0/gtk-migrating-3-to-4.html

nylki avatar Apr 23 '21 07:04 nylki

Just a heads up, currently this extension breaks the overview, no windows will be shown. It's probably already known I'm guessing, but might as well mention it.

ludvigng avatar Apr 28 '21 10:04 ludvigng

Just a heads up, currently this extension breaks the overview, no windows will be shown. It's probably already known I'm guessing, but might as well mention it.

To me it looks more like the "show only scratch windows in overview" setting ~~working as intended~~ but without the scratch windows :thinking:

Thesola10 avatar Apr 29 '21 06:04 Thesola10

Just a heads up, currently this extension breaks the overview, no windows will be shown. It's probably already known I'm guessing, but might as well mention it.

To me it looks more like the "show only scratch windows in overview" setting working as intended

Except I don't have that set. And scratch windows aren't shown either. I've attached an excerpt from the journal: overview-blank.txt

https://user-images.githubusercontent.com/50339757/116528427-1d227100-a8dc-11eb-98f4-7d245e4b1fc2.mp4

I did notice something else strange too. Moving the cursor between monitors makes for a really jarring animation (I set OBS to record half of each screen, the seam is in the middle between them):

https://user-images.githubusercontent.com/50339757/116528549-404d2080-a8dc-11eb-9bb0-4815951b2ad5.mp4

This is with "Workspaces span displays" set in gnome tweaks. This is the journal output from moving the mouse between a monitor and then back again:

apr 29 11:26:27 harman gnome-shell[1681]: LAYOUT apr 29 11:26:31 harman gnome-shell[1681]: switchWorkspace 0 1 apr 29 11:26:31 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:31 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:31 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:31 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:31 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:31 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:31 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:31 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:36 harman gnome-shell[1681]: switchWorkspace 1 0 apr 29 11:26:36 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:36 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:36 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:36 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:36 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:36 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:36 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed apr 29 11:26:36 harman gnome-shell[1681]: setup_framebuffers: assertion 'width > 0' failed

E: I've attached log output for these two things. I managed to catch the third bug that was here originally, but it seems to be related to another extension. My bad!

ludvigng avatar Apr 29 '21 09:04 ludvigng

Just a heads up, currently this extension breaks the overview, no windows will be shown. It's probably already known I'm guessing, but might as well mention it.

for me, it magically got fixed with "Cleaner Overview" extension by gonza_11

gcoda avatar May 14 '21 05:05 gcoda

Just a heads up, currently this extension breaks the overview, no windows will be shown. It's probably already known I'm guessing, but might as well mention it.

for me, it magically got fixed with "Cleaner Overview" extension by gonza_11

Oh wow, it does fix the problem. Thank you!

ludvigng avatar May 14 '21 09:05 ludvigng

I was just testing the next-release branch of PaperWM with Gnome40 in Fedora 34.

I can confirm that using the mentioned Cleaner Overview does indeed fix the empty overview. Maybe some of that extensions logic can be adapted for PaperWM.

After that, there are still some gesture-related issue when using multi-finger gestures with a trackpad to control PaperWM: When switching windows with the 3-finger gesture as before with PaperWM now clashes with Gnome40's 3-finger workspace switching gesture. Both gestures are now fighting, resulting in a broken animation and UX in the current state. Using the Meta-left/right key-combo does work fine though.

nylki avatar May 22 '21 13:05 nylki

I'm testing the next-release branch right now with Gnome40 on Arch.

I do have the Cleaner Overview plugin, but I still have an empty overview. Maybe there's some other extension I have that impacts my setup negatively.

The plugin ddterm still doesn't show its window, but it does take focus!

magthe avatar May 24 '21 06:05 magthe

How have folk got around

Expected type string for argument 'property_name' but got type GObject_Object

randomvariable avatar May 25 '21 15:05 randomvariable

Also enabling the built-in extension "Native Window Placement" fixes the empty overview.

Expected type string for argument 'property_name' but got type GObject_Object

I'm occasionally getting this too

I kind of like the diagonal animation for switching workspaces, it is wrong spatially but a very cool animation to see.

Pacman99 avatar May 27 '21 03:05 Pacman99

Overall release-next works pretty well thank you for all the work with that. The animations are definitely a bit odd with the switch to horizontal workspaces.

Also the paperwm settings gui doesn't open at all and changing some top-level settings in dconf seems to just crash gnome. But logging out and logging in seems to fix the crash. So applying paperwm settings requires a restart of gnome. Changing keybindings works fine.

Pacman99 avatar May 27 '21 04:05 Pacman99

Some of my observations after trying next-release branch on GNOME 40 (openSUSE Tumbleweed, Wayland on a laptop)

  1. Extension installs and loads fine, although settings can't the changed through GUI
  2. Extension is fighting with the new, built in gestures. This makes it unusable on laptop unless the gestures are changed to 4-finger swipes. See https://github.com/icedman/gnome-shell-hammer
  3. Resizing the windows works with keyboard shortcuts and with mouse, however windows can't be dragged at all.
  4. Overview shows no windows unless Cleaner Overview is installed. https://extensions.gnome.org/extension/3759/cleaner-overview/
  5. Animations when switching from overview are kind of broken, but then again, they are kind of broken on 3.38 as well. See https://github.com/paperwm/PaperWM/issues/347

This is actually workable on a laptop, but still unusable for me on a desktop due to broken window movement. I really hope development of this extension isn't abandoned, I'd hate to switch to something else.

paradajz avatar May 27 '21 11:05 paradajz

I have two machines running Fedora 34, I've installed the "Native Window Placement", and "Cleaner Overview" extensions on both. Yet when I go to install next-release paperwm on both, one works fine, but the other always gives me the Expected type string for argument 'property_name' but got type GObject_Object error.

tomkdale avatar May 28 '21 16:05 tomkdale

I tried to use next-release on GNOME 40 but I had a lot of issue with my dual monitor setup. I wasn't able to get PaperWM to "snap" windows in the second display, I could only move and resize them the regular GNOME way, moving between windows on my first monitor using Super+arrow keys works fine but using Super+1,2,3,4 shortcuts made them overlap on the second monitor and breaking them out of PaperWM control Switching workspaces plays a vertical transition animation, and then when it ends perform the new GNOME 40 horizontal scrolling animation, making it very weird And generally same issues as mentioned by paradajz right above, with not being able to go in the extensions configuration GUI being a major pain.

Tina-otoge avatar Jun 16 '21 18:06 Tina-otoge

You can "fix" the snapping by making workspaces span displays in gnome-tweaks in multi-monitor setup. It works a little funny, since the second monitor uses the second workspace, but it kinda works once you get used to it.

ludvigng avatar Jun 16 '21 18:06 ludvigng

I can't seem to get the next-release branch to work at all. I am on Gnome 40 on Nixos 21.05. The error message I get when trying to use install.sh is this one:

Trying to load and enable extension:
something went wrong:
Missing metadata.json createExtensionObject@resource:///org/gnome/shell/ui/extensionSystem.js:283:19\
@resource:///org/gnome/shell/ui/shellDBus.js line 63 > eval:20:36\
Eval@resource:///org/gnome/shell/ui/shellDBus.js:63:42\
_handleMethodCall@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:310:38\
_wrapJSObject/<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:387:34\
"')

Does anyone know how to fix this/a workaround?

Edit: The install script does not work but manually copying the repo into ~/.local/share/gnome-shell/extensions/paperwm@hedning:matrix.org/ seems to enable the extension as well. However, now I am stuck with the Expected type string for argument 'property_name' but got type GObject_Object error.

Edit 2: A quick and dirty workaround for the Expected type string for argument error is to comment out line 197 in extension.js.

cstich avatar Jun 17 '21 11:06 cstich

I've been running PapperWM full-time on Gnome 40 (NixOS) for about a week now. Everything works as I expect, without any issues. No changes except switching PapperWM branches.

For anyone wanting to test this in NixOS, I added this overlay to home-manager to switch branch https://github.com/NelsonJeppesen/nix-lifestyle/blob/main/nixpkgs/overlays/paperwm.nix

NelsonJeppesen avatar Jun 23 '21 16:06 NelsonJeppesen

Reading all of the above has prompted me to try the branch next-release a bit more seriously this time.

The one thing in my setup that doesn't work is ddterm. There are some visual cues making me think that the shortcut for it works, but the terminal window itself doesn't appear. I'm not sure where the issue is, and I don't know how to find out. Suggestions for how to track down the cause of this would be very welcome.

magthe avatar Jun 24 '21 07:06 magthe

@NelsonJeppesen Thanks for creating the overlay! I just switched to NixOS 21.05 w/ Gnome 40. I'm unfortunately also getting

Expected type string for argument 'property_name' but got type GObject_Object

and can't enable PaperWM in Extensions.

I don't have any other extensions installed, the only other extension that I have enabled is the removable drive menu. This is the config I'm using in addition to the provided overlay:

{ config, pkgs, ... }:
{
  home.packages = with pkgs; [
    gnomeExtensions.paperwm
    gnome.gnome-tweak-tool
    gnome.sushi
    adapta-gtk-theme
    arc-theme
    paper-icon-theme
    papirus-icon-theme

    noto-fonts-cjk
  ];
}

Edit: I commented out everything in my ~/.config/paperwm/user.js and restarted, works fine now. :)

heyarne avatar Jun 24 '21 08:06 heyarne

Expected type string for argument 'property_name' but got type GObject_Object

I'm getting a similar error on Arch

KiaraGrouwstra avatar Jun 25 '21 08:06 KiaraGrouwstra