/workspaces-by-open-apps

🧩 GNOME shell estension to display a simple workspace indicator showing icons of apps open in it.

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Workspace indicator by open apps

Get it on GNOME Extensions

GNOME shell estension to display a simple workspace indicator showing icons of apps open in it instead of classic numbers or dots.

Preview

Note

Due to the small amount of time I can dedicate to this project, the extension may not be updated frequently. However, I will try to fix any bugs and add update to new GNOME versions as soon as possible.

Features

  • Show a simple indicator to display workspaces and apps open in it
  • Support for drag and drop: change an application workspace just dragging its icon
  • Right/Left click to focus application, Middle click to close
  • Workspaces scrolling: change active workspace scrolling hover the indicator
  • Support for multiple monitor (for both static and dynamic workspaces)
  • Rename workspaces directly from the extension (activate in settings)

Customization

  • Indicator position
  • Scroll direction (normal or inverse)
  • Activate/deactivate "middle click to close app"
  • Activate/deactivate "click on active workspace to overview"
  • Activate/deactivate "click on focused application to minimize"
  • Activate/deactivate "workspace indicator"
  • Activate/deactivate "app indicator"
  • Customize indicator color
  • Activate/deactivate "round borders"
  • Show/Hide workspaces names
  • Show/Hide empty workspaces
  • Customize apps on all workspaces text indicator
  • Desaturate all icons
  • No effect/Reduce opacity/Desaturate for both minimized and inactive apps
  • Limit icons per workspace
  • Group icons of same application
  • Ignore applications (with regex)

Tip

Customize CSS editing stylesheet.css file. Add more classes simply searching css_* variables in extension.js.

Preview Preview Preview Preview Preview Preview Preview

Deploy

Available for GNOME 45: gnome shell extensions store.

Tip

Legacy versions (GNOME shell 40-44) available on gnome extensions store. These versions will not receive new updates.

Alternative install

  • Download this folder
  • Execute ./install.sh (requires sudo priviledges)

Useful commands

  • Compile settings schema: glib-compile-schemas ./schemas/
  • Show (all) extension(s) logs: journalctl /usr/bin/gnome-shell -f -o cat
  • Show settings logs: journalctl /usr/bin/gjs -f -o cat
  • List settings: dconf dump /org/gnome/shell/extensions/workspaces-indicator-by-open-apps/
  • Edit manually setting: dconf write /org/gnome/shell/extensions/workspaces-indicator-by-open-apps/<setting> <value>

To Do

Go to issues page to see the full list of features and bugs to fix.

Contributions

Any contribution is welcome!

Submit any bug or feature request through an issue, or submit your code creating a pull request.

Commit, Branch and Pull request convention

Commit

Commit message convention: <type>(<scope>): <summary>

Type: build, feat, fix, refactor, docs
Scope: extension, settings, css
Summary: short summary in present tense, not capitalized, no period at the end

Example: feat(extension): add drag and drop

Branch

Create a new branch for new features. Branch name should be self explanatory.
It is possible to not to create the new branch for single-commit fixes or small modifications.

Example: add-drag-and-drop

Pull request

When the feature is ready and stable create a new pull request.

Credits

Due to the poor documentation to develop GNOME shell extensions, I looked at the source code of existing extension (often deprecated and not working anymore):