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

Show popup until modifiers keys are released #145

Closed Grinzold closed 3 years ago

Grinzold commented 3 years ago

Thanks for your work on this extension.

Would it be possible to keep the popup until the modifier keys are released? Instead of the 'Time to show popup (ms)'.

So, after switching once the popup stays until (in my case) 'alt+ctrl' are released.

Sometimes I switch fast and the popup disturbes. Sometimes I want more time to look at it to find where I need to go. Currently I just keep switching, which is a bit annoying.

mzur commented 3 years ago

This was actually requested before ( #59 ) and there is an unfinished PR that aimed to implement this ( #76 ). The PR is quite stale by now and tried to implement a few other things as well, as far as I can see. Would you like to take up the relevant changes of the PR and send a new one that implements this feature?

Grinzold commented 3 years ago

Thanks for the quick response. I know a bit of programming, but haven't done real work since long. E.g. "PR" I had too look up, albeit I could have known this. So, I think someone knowing the code should do it. If there is no action, say in a week from now, I might give it a try.

mzur commented 3 years ago

It's unlikely that someone else will pick this up. Besides myself, only @ebeem did some serious work for this extension and we both have no time to spare for this right now. I'm happy to get you started and answer questions, though. I started this extension with zero knowledge to scratch my own itch, too 😉

Grinzold commented 3 years ago

All right, but no promisses. I know version control, but not git. fossil-SCM fanboy. Most important: how to test my changes? To get started: how to pull/copy, how to compile (Makefile?), run/load into my running gnome sesson? I am working on ubuntu/groovy. How to add, view log-messages in running session? (I grew up with .xsession-errors...) Debug more is there? Compile time? I guess, I am using Wayland, if it matters. (How to check, except with ps? What language is it, actually? :)

mzur commented 3 years ago

Most important: how to test my changes?

You reload GNOME, look at the log output for errors and test if your change is working. Yes, it's that awful :wink: With Wayland it's even more so because you have to log out and back in to reload GNOME. Maybe you set up a VM that uses Xorg. With X you can press Alt+F2 and run the r command to reload GNOME.

You get the log output with journalctl -f /usr/bin/gnome-shell. You can include manual logging in the code with log('here is my output').

To get started: how to pull/copy, how to compile (Makefile?), run/load into my running gnome sesson?

First, fork this repository. This will create a copy of this repository under your own GitHub account. If you set up a VM (see above), go to the desktop and run git clone git@github.com:Grinzold/gnome-shell-wsmatrix.git. This will create the new gnome-shell-wsmatrix directory, containing this repository.

Now create the directory in which GNOME extensions are installed:

mkdir -p $HOME/.local/share/gnome-shell/extensions

and link the content of the repository there:

ln -s \
  $HOME/Desktop/gnome-shell-wsmatrix/wsmatrix@martin.zurowietz.de \
  $HOME/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de

Restart GNOME (see above) and the extension should be installed, no compilation needed. You can directly edit the source and reload GNOME to apply the changes. The language is JavaScript.

If you don't set up a VM, you can clone the repository to some other location and have to delete the original $HOME/.local/share/gnome-shell/extensions/wsmatrix@martin.zurowietz.de first. Then change the ln command according to the new location of the repository.

Good luck!

ebeem commented 3 years ago

I will try to go back and implement this feature when I have more free time. However, I can say that probably implementing it with minimal code changes is not going to produce the desired quality. Probably implementing this feature will need some core code changes.

mzur commented 3 years ago

I'll add that this should probably wait for GNOME 40 support (#146), else this would need to be implemented all over again.

recolic commented 3 years ago

However, this feature may break some existing usage:

For example, I'm coding in workspace 1, and reading cpp_reference in workspace 2. While coding, I use ctrl+alt+right to move to workspace 2, keep ctrl+alt being pressed and quickly read the cpp_reference, and press left to return to my coding workspace 1.

With this feature, the popup would not disappear unless I release ctrl+alt. I can not quickly read the reference anymore..

recolic commented 3 years ago

Maybe it's better to add an switch to enable/disable this feature? I'm not sure if others has the same experience...

ebeem commented 3 years ago

implemented and tested in #152, please let's discuss any issue with the current implementation (if any) in the PR.