CZ-NIC/run-or-raise

Feature request: Isolate workspaces, screens, ignore minimised windows

Opened this issue · 6 comments

It would be great to have the options to isolate workspaces, screens, and to be able to ignore minimised windows. Do you think this is possible and straightforward to implement?

e3rd commented

Hello, this definitely makes sense and I'll welcome any PR you propose. In the case you have no means to implement this, I'll try to take a look at it in few weeks.

Thanks for the positive response. I'm not familiar with writing extensions in Gnome but I'll try to give it a shot when I have time.

e3rd commented

Yeah, that is the big pain, I have found nowhere a good reference guide to Gnome JS. Everything important is in https://github.com/CZ-NIC/run-or-raise/blob/master/extension.js

Great thank you!

e3rd commented

Hi, as time goes on, the docs are better and the app may run smoother.

Great guides exist at https://gjs.guide/guides/ and https://gjs-docs.gnome.org/ . I've refactored the code so adding more modes are possible. If you want to implement the other features too, I'll welcome them.

  • isolate workspace (already done)
  • isolate screen
  • ignore minimised

How to do that?

  • create new static keyword in the Mode class
  • and in gschema.xml if the keyword should be togglable globally for all the shortcuts
  • put the logics into Shortcut.trigger method, by checking if the settings is on (either locally per shortcut or globally) by this.mode.get(Mode.KEYWORD)

The modes idea is fantastic, thanks for you work! I'm a bit short on time at the moment but hopefully in couple of months I'll be able to add the other features.