mzur / gnome-shell-wsmatrix

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

[Feature Request] diagonal animation #151

Closed jgabriel98 closed 3 years ago

jgabriel98 commented 3 years ago

First or all, thank for this amazing extension. It makes my desktop much more fluid and productive.

Feature request description

I don't know how much effort this would take, but i thinks it would be nice to add diagonal animation, since i believe it is a very common movement.

note: for a less verbose explaining, i will pretend that pressing arrow keys are the shortcuts to switch workspaces.

The animation would be triggered by two directional arrow keys are pressed (e.g. +, or +, etc).

Possible problems:

apagar

For me the first solution feels workarround-ish, and the second more natural and pleasurable but also seems to be more tricky.

jgabriel98 commented 3 years ago

I've never developed for gnome environment neither for a gnome extension. And also i'm pretty shorthanded currently, since i'm working on my Undergraduate thesis for my Computer Science graduation.

But after that (in 4 months), if this is still open, i think i can try to implement this. Or at least give my best to help

Edit: typos

mzur commented 3 years ago

This would be very hard to implement (if possible at all), I'm afraid. In the recent PR for GNOME 3.38 support I had to disable animations altogether because fixing them was too cumbersome and introduced too much new code. If you want to contribute, please consider helping out in one of the help wanted issues. Of course I can't stop you trying to implement the diagonal animation :wink: Until then I'll close this issue.

ebeem commented 3 years ago

actually, this is already implemented in #152 (the diagonal animation part) However, this will only work if you are moving let's say in a 2x2 workspace setup from workspace#1 to workspace#4 immediately. meaning, you don't go through workspace#2 or workspace#3.

I think the delay idea is possible maybe, you will need to implement it in the function _keyPressHandler in WorkspaceSwitcherPopupBase.js.

You second approach doesn't seem to be easy to implement according to my understanding of the code, but you probably want to check and modify the behavior in MonitorGroup in workspaceAnimation.js