paperwm / PaperWM

Tiled scrollable window management for Gnome Shell
GNU General Public License v3.0
2.65k stars 122 forks source link

Extend touch screen support #828

Open jinek opened 2 weeks ago

jinek commented 2 weeks ago

Describe the solution you'd like I'm suggesting to add touchscreen gestures and extend touchpad gestures as well: 1) Add "Touchscreen gestures" similar to "Touchpad gestures": image 2) Additionally to 3/4 fingers Down/Left/Right gestures to bring: 3/4 fingers Up gestures, swipe from left/right/bottom edge (both for touchscreen and touchpad) 3) Add several functions for that gestures: Fullscreen/minimize/maximize, move window left/right (also continously)

jtaala commented 2 weeks ago

I'm suggesting to add touchscreen gestures

Just putting this here and referencing #804. Touchscreen is supported (note: I don't have/use a touchscreen so won't be much help here). @Thesola10 has in the past implemented some touchscreen functionality.

Ai-Elias commented 2 weeks ago

I'm a bit of weird case but I can attest that not all touchscreen stacks are supported as touchscreen gestures do not work on my device with paperwm but do as soon as paperwm is disabled.

I'm using Wayland on an intel Surface Laptop Studio iGPU. Because of the way the hardware is set up on ms surface devices, I need to use the linux-surface kernel with the following packages: libwacom-surface iptsd. With this setup, gnome touch and stylus support works as intended and I am able to use the gnome gestures on the touchscreen.

However, with paperwm active, I can no longer touch drag windows to position them in the tile stack, touch resize windows or use touch gestures, be they gnome or paperwm specific. When I touch the screen once, I lose all further controls (keyboard, mouse, touchpad, or touchscreen) until I press escape.

Hope this helps, happy to troubleshoot further if anyone know why this might be going on.

jinek commented 2 weeks ago

@Ai-Elias I don't experience this on default fedora/gnome installation with paperwm. However, I have different related issue in gnome that when I touch gtk applications sometimes they loose further input until restart.

Ai-Elias commented 2 weeks ago

Is there any way that I might be able to debug what specifically might be happening in my scenario? Any logs for this sort of thing?

jtaala commented 2 weeks ago

Is there any way that I might be able to debug what specifically might be happening in my scenario? Any logs for this sort of thing?

You have standard gnome logs you could look at journalctl -f /usr/bin/gnome-shell, e.g. run that in a terminal and then replicate your issue.

I also note that @Thesola10 (who uses a touchscreen) reopened this issue (Gnome 46) https://github.com/paperwm/PaperWM/issues/735

jtaala commented 2 weeks ago

Might be helpful if you paste your info here (open up PaperWM settings/prefs and go to the About tab and click the copy button and paste here).

P.S. the About tab was recently added so if you're on the latest EGO version, or on release branch you'll have it.

Ai-Elias commented 2 weeks ago

I'm using the 23.11 packaged version on nixos. I can check the about tab when the 24.05 release happens. As for the journalctl -f /run/current-system/sw/bin/gnome-shell No logs are printed. However I did notice that when I touch the header bar to reposition the window on the touchscreen. My system then expects me to use the touchpad to reposition the window so it does not lock every single input as I had previously thought.

Ai-Elias commented 2 weeks ago

I'm also noticing that I am infact able to touch the windows to focus them also. So it seems what's failing specifically in my case is the touch-dragging.

jtaala commented 2 weeks ago

I'm using the 23.11 packaged version on nixos. I can check the about tab when the 24.05 release happens. As for the journalctl -f /run/current-system/sw/bin/gnome-shell No logs are printed. However I did notice that when I touch the header bar to reposition the window on the touchscreen. My system then expects me to use the touchpad to reposition the window so it does not lock every single input as I had previously thought.

Hmm, can't help much there, not familiar with nixos. Although, I would suggest installing the latest from https://extensions.gnome.org/extension/6099/paperwm/ (note that the v46 series of PaperWM is compatible with Gnome 45 & Gnome 46) - at least so we can see your specs and isolate versions of things.

In any case, if dragging is busted it's most likely related to #804 #735.

I'm curious as others are on nixos as well, can you install extensions on nixos with Extension Manager? e.g. https://github.com/paperwm/PaperWM/issues/809#issuecomment-2027252205.

Ai-Elias commented 1 week ago

Good to know thank you, I will hop on the latest release and test if I get a minute to fiddle around. At the very least, if I don't get around to it, I'll check back around after 24.05 next month.

I believe you can install extensions normally through the gnome-shell-extensions browser plugin on NixOS but that ultimately defeats the declarative devops style configuration that is the main selling point of Nix so most people just get the nix package of the gnome extensions they are using be that from the stable or unstable nixpkg branch.

Nixpkgs unstable is actually very up-to-date, more so than Arch + AUR both in terms of recency and number of packages. I'm just not about that unstable life personally. And the way that Nix can actually work, you can declare specific packages come either from stable or unstable depending on your needs and each will have a separate dependency tree. So I might actually go that route just because I really love this plugin.

Here's the unstable version of paperwm from nixpkgs. Unfortunately the maintainer seemingly has nonsensical versioning. https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=paperwm

jtaala commented 1 week ago

Nixpkgs unstable is actually very up-to-date, more so than Arch + AUR

Likely not for PaperWM since I maintain the PaperWM AUR packages and update them when I do releases ;-)

I don't mind package maintainers making decisions about which version to release on their platform, but usually it's quite behind so will miss new features etc., but more importantly bugfixes. E.g. even if we fixed this one and added touchscreen support, who knows when the nixos package will be updated for that.

The biggest concern though is that we don't seem to know what version of PaperWM you're running right now... Which usually means we'd struggle to replicate and debug user issues.

Having said that, this particular issue would remain in the latest most likely. Unfortunately, in this case, even knowing your versions (Gnome, PaperWM, etc.) since I don't have any touchscreen enabled device, I wouldn't be able to do much with that info...

Hopefully others with knowledge of PaperWM source, and a touchscreen device can jump in here to help.

terlar commented 1 week ago

@Ai-Elias The versioning of those packages come from gnome-extensions. Screenshot from 2024-04-21 12-37-52

The Gnome Extensions are updated via a script: https://github.com/Kareem-Medhat/nixpkgs/blob/1b44615623603e10a10dfc18b7671392ddcabeb4/pkgs/desktops/gnome/extensions/README.md

However, since these updates are not on pace with the development of PaperWM which is rather rapid. You can use the functionality of overlays and overrides.

For example this overlay will use the version 99 of the extension, which you see in my picture is the latest version released 46.4.3.

final: prev: {
  gnome45Extensions = prev.gnome45Extensions // {
    "paperwm@paperwm.github.com" = prev.gnome45Extensions."paperwm@paperwm.github.com".override (old: {
      version = "99";
      sha256 = "sha256-LyvCfDKKdLh/gL+pNyDzlYfNJUq5GYkGTDwZ0JLFU5c=";
    });
  };
}

or you can do the override inline where you add the package:

(pkgs.gnome45Extensions."paperwm@paperwm.github.com".override (old: {
  version = "99";
  sha256 = "sha256-LyvCfDKKdLh/gL+pNyDzlYfNJUq5GYkGTDwZ0JLFU5c=";
}))
jtaala commented 1 week ago

Thanks @terlar!

For example this overlay will use the version 99 of the extension, which you see in my picture is the latest version released 46.4.1.

Although I do note that version 99 on EGO should be PaperWM version 46.6.3 which has been released.

terlar commented 1 week ago

Sorry, typo there. I have corrected.