domferr / tilingshell

Extend Gnome Shell with advanced tiling window management. Supports multiple monitors, Windows 11 Snap Assistant, Fancy Zones, customised tiling layouts and more.
https://extensions.gnome.org/extension/7065/tiling-shell/
GNU General Public License v2.0
594 stars 14 forks source link

Right-Click to activate tiling and spanning (aka WindowGrid-mode) #112

Closed jantari closed 5 days ago

jantari commented 3 months ago

Describe the feature you'd like Hey, I've been using the extension for a while and it's great - the best I've seen for Linux.

However, coming from Windows the tiling experience here is still not as good. I see this extension gets a lot of frequent updates though so I'm shooting my shot to get this perfect.

I had been using WindowGrid on Windows 10 for years. Among all the tiling options across all operating systems, it's by far the best I've used. It works like this:

  1. You define your grid layouts
  2. You take a window, drag it to roughly wherever you want to tile it (by holding left mouse button)
  3. Then, while still holding LMB, you tap (and can let go of!) the right mouse button. This brings up the tiling grid and anchors the window inside the grid cell you were hovering over
  4. From that first, anchored grid cell you can now keep dragging the window across as many additional grid cells as you want, it will resize to fill them (aka spanning)
  5. You just let go of left mouse button when you're done

The reason this UX is so great is because it is easily the fastest - you only need the left and right mouse buttons to control both tiling to a single grid layout cell or span multiple. Dragging a window is also an intuitive move that you'll need to do anyway, only adding a small right-mouse-click is required to get all the advanced functionality of the tiling manager.

Currently with tiling shell, I can activate both the tiling grid and grid-cell-spanning at the same time by setting them to the same shortcut key (e.g. CTRL). This is the same UX as WindowGrid, which is nice. However, the remaining issues are:

  1. Pressing CTRL + using the mouse requires moving both hands and is therefore cumbersome and slow

    Being able to map both tiling and spanning to right mouse button would be better

  2. I have to be very careful to let go of the Left mouse button before I let go of CTRL or else the tiling overlay just disappears and I get nothing

    WindowGrid doesn't require you to hold down the right-mouse button, you just tap it once and then you're in tiling mode. I like this because it removes the need to do millisecond-perfect timing letting go one finger before the other, let alone across two hands. You could implement a toggle feature (press right mouse button once more to de-activate the tiling overlay again) if you want - maybe WindowGrid even has that, I never tried because I never needed it in all those years.

Additional context These two little quality of life changes would really make tiling shell "get out of the way". As it is right now, I still have to consciously think and coordinate whatever I'm trying to do with my windows, which takes the mind off of whatever I'm working on (interrupts thinking) and also the required use of both hands can easily make a window tiling operation take 2 seconds or more just due to having to move them and making sure I don't let go in the wrong order. This interruption and pause in work can break flow state and is a much bigger deal to me than it might seem. For the longest time, just WindowGrid alone has kept me on MS Windows. But I believe you and your extension can change this, after - really - 20 years of dual-booting and never being able to fully commit to desktop Linux.

domferr commented 3 months ago

Hey, thank you for your suggestion! There were a user who suggested to use RIGHT CLICK as an activation key for the tiling system. At that time I made some research about it, to understand if it is feasible or not. Unfortunately it cannot be implemented... While you drag a window, GNOME stops the drag if you right click too! Because of how that is implemented, it cannot be removed/customized by an extension :cry:

jantari commented 3 months ago

Hmm that's unfortunate. I noticed GNOME stops the drag on middle mouse click and even on the back and forward buttons many mice have too. The only common mouse key that didn't interrupt the window dragging was mouse wheel up and down scroll (and the customizable thumb button my MX Master has of course).

Long term it might be worth putting in a change request with the GNOME devs. Last I heard they aren't very welcoming of outside "criticism" but might still try it.

Short term, I guess just allowing fully custom keybinds to trigger the tiling grid and grid-spanning would allow me to map it to mouse-wheel down or my custom thumb button (e.g. by mapping it to F13 or something typically unused like that).

Also, I'd still like to request the option to make the activation of the tiling grid as well as grid-spanning a toggle rather than a press-and-hold. Even if I had to stick with a keyboard-key as the activator, it would still be a big QoL improvement to not have to be so careful to let go of the window before letting to of the tiling-key. By making tiling + spanning a toggle like it is in WindowGrid, that's made way easier.

So to summarize, long term RIGHT CLICK would be ideal but THUMB BUTTON (F13) as a grid toggle should be pretty close in usability.

domferr commented 3 months ago

Yeah, it would be nice to extend this. To summarize: allow more buttons as activation key and add a toggle behavior.

domferr commented 5 days ago

Closing this due to GNOME limitations