Giter Club home page Giter Club logo

gnome-shell-extension-windowoverlay-icons's Introduction

Repository is not maintained

Since v40, GNOME Shell has built-in feature that shows application icons in Activities. So 10 years after releasing the first version of this extension (which was made for GNOME Shell 3.0.2) it is not needed anymore. What a ride! :)


WindowPreview (formerly WindowOverlay) Icons Extension

Maintenance

Adds application icons to the windows overview (in Activities menu).

Install from extensions.gnome.org

Example

windowoverlay icons example

See a demo: https://youtu.be/LxxNI3HeCe4

Contributing

Contributions are welcome. Especially for compatibility with new versions of GNOME Shell.

Make sure you check the coding standards with ESLint using make check command before submitting pull requests.

gnome-shell-extension-windowoverlay-icons's People

Contributors

bryango avatar calpaterson avatar dsboger avatar eddy-geek avatar sustmi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gnome-shell-extension-windowoverlay-icons's Issues

Many gnome-shell syslog messages on ubuntu 19.10

Unfortunately I needed to disable this extension, since the following log messages from gnome-shell spam my syslog:

Object St.Bin (0x56023d791e90), has been already deallocated — impossible to get any property from it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.

Can this be fixed? The extension is working fine otherwise! Thanks a lot!

Compatibility Gnome 3.32

Even while the extension doesn't throw any errors in Looking Glass, there are no icons in window overview.

New warnings in gnome-shell 3.26

When running your gnome-shell extension with gnome-shell 3.26.1, I am getting these warnings:

JS WARNING: [/home/username/.local/share/gnome-shell/extensions/[email protected]/extension.js 245]: JavaScript 1.6's for-each-in loops are deprecated; consider using ES6 for-of instead
JS WARNING: [/home/username/.local/share/gnome-shell/extensions/[email protected]/extension.js 73]: assignment to undeclared variable background_color
JS WARNING: [/home/username/.local/share/gnome-shell/extensions/[email protected]/extension.js 141]: reference to undefined property "mipmap_size"

The first one is a result of the gnome project having its JavaScript engine updated. See https://speakerdeck.com/ptomato/modern-javascript-in-gnome and https://hacks.mozilla.org/category/es6-in-depth/ for details. Fixing this warning might only be good on gnome-shell 3.26 with no changes applied to older versions.

The second one has been fixed in b240d9d (sustmi/gnome-shell-extensions-sustmi#43) already.

The third one I don't know.

Doesn't work with gnome 3.38

The extension doesn't work with gnome 3.38 :

sept. 17 21:36:09 jack-XPS-L322X gnome-shell[906]: JS ERROR: Extension [email protected]: TypeError: class heritage originalWindowOverlay is not an object or null enable@/home/jack/.local/share/gnome-shell/extensions/[email protected]/extension.js:49:31 _callExtensionEnable@resource:///org/gnome/shell/ui/extensionSystem.js:168:32 loadExtension@resource:///org/gnome/shell/ui/extensionSystem.js:349:26 _loadExtensions/<@resource:///org/gnome/shell/ui/extensionSystem.js:595:18 collectFromDatadirs@resource:///org/gnome/shell/misc/fileUtils.js:27:28 _loadExtensions@resource:///org/gnome/shell/ui/extensionSystem.js:570:19 _enableAllExtensions@resource:///org/gnome/shell/ui/extensionSystem.js:604:18 _sessionUpdated@resource:///org/gnome/shell/ui/extensionSystem.js:635:18 init@resource:///org/gnome/shell/ui/extensionSystem.js:57:14 _initializeUI@resource:///org/gnome/shell/ui/main.js:272:22 start@resource:///org/gnome/shell/ui/main.js:162:5 @<main>:1:47

Many stacktraces when running on GNOME 3.26 in extension.js:256

Steps to reproduce:
unclear. Have gnome-shell with this extension run for a while.

What happens:
This stacktrace is written to syslog:

== Stack trace for context 0x55c147d90000 ==
#0 0x7fff8b6c3e90 b   /home/username/.local/share/gnome-shell/extensions/[email protected]/extension.js:256 (0x7fd9a6890808 @ 123)
#1 0x55c148222450 i   resource:///org/gnome/shell/ui/extensionSystem.js:82 (0x7fd9c58b4230 @ 431)
#2 0x55c1482223d0 i   resource:///org/gnome/shell/ui/extensionSystem.js:344 (0x7fd9c58b4cd0 @ 13)
#3 0x7fff8b6c4cb0 b   self-hosted:251 (0x7fd9cb1d25e8 @ 223)
#4 0x55c148222350 i   resource:///org/gnome/shell/ui/extensionSystem.js:343 (0x7fd9c58b4c48 @ 63)
#5 0x55c1482222d0 i   resource:///org/gnome/shell/ui/extensionSystem.js:361 (0x7fd9c58b4d58 @ 87)
#6 0x7fff8b6c61d0 b   resource:///org/gnome/gjs/modules/signals.js:126 (0x7fd9cb1e2b38 @ 386)
#7 0x7fff8b6c69e0 b   resource:///org/gnome/shell/ui/sessionMode.js:204 (0x7fd9c4ca3098 @ 254)
#8 0x7fff8b6c76e0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7fd9cb1c2bc0 @ 71)
#9 0x55c148222190 i   resource:///org/gnome/shell/ui/sessionMode.js:166 (0x7fd9c4c9ede0 @ 40)
#10 0x7fff8b6c82e0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7fd9cb1c2bc0 @ 71)
#11 0x55c1482220e8 i   resource:///org/gnome/shell/ui/screenShield.js:1281 (0x7fd9c4c76098 @ 188)
#12 0x7fff8b6c8ee0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7fd9cb1c2bc0 @ 71)
#13 0x55c148222060 i   resource:///org/gnome/shell/ui/screenShield.js:899 (0x7fd9c4c741a8 @ 18)
#14 0x7fff8b6c9ae0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7fd9cb1c2bc0 @ 71)
#15 0x7fff8b6c9ba0 b   self-hosted:915 (0x7fd9cb1ee5e8 @ 367)
#16 0x7fff8b6c9c90 b   resource:///org/gnome/gjs/modules/signals.js:126 (0x7fd9cb1e2b38 @ 386)
#17 0x55c148221fd8 i   resource:///org/gnome/shell/ui/lightbox.js:186 (0x7fd9c5886c48 @ 33)
#18 0x7fff8b6ca9e0 b   self-hosted:913 (0x7fd9cb1ee5e8 @ 346)
#19 0x55c148221f50 i   resource:///org/gnome/shell/ui/tweener.js:91 (0x7fd9cb1df098 @ 37)
#20 0x55c148221eb0 i   resource:///org/gnome/gjs/modules/tweener/tweener.js:203 (0x7fd9cb1e9cd0 @ 54)
#21 0x55c148221d90 i   resource:///org/gnome/gjs/modules/tweener/tweener.js:332 (0x7fd9cb1e9d58 @ 1626)
#22 0x55c148221d00 i   resource:///org/gnome/gjs/modules/tweener/tweener.js:345 (0x7fd9cb1e9de0 @ 100)
#23 0x55c148221c88 i   resource:///org/gnome/gjs/modules/tweener/tweener.js:360 (0x7fd9cb1e9e68 @ 10)
#24 0x7fff8b6cd490 b   resource:///org/gnome/gjs/modules/signals.js:126 (0x7fd9cb1e2b38 @ 386)
#25 0x55c148221bf8 i   resource:///org/gnome/shell/ui/tweener.js:208 (0x7fd9cb1df808 @ 159)
#26 0x7fff8b6ce100 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7fd9cb1c2bc0 @ 71)
#27 0x55c148221b70 i   resource:///org/gnome/shell/ui/tweener.js:183 (0x7fd9cb1df780 @ 20)
#28 0x7fff8b6cee00 b   self-hosted:917 (0x7fd9cb1ee5e8 @ 394)

or this other stacktrace:

#0 0x7ffc203c23d0 b   /home/username/.local/share/gnome-shell/extensions/[email protected]/extension.js:256 (0x7f5a85d90808 @ 123)
#1 0x55d4afb3ef70 i   resource:///org/gnome/shell/ui/extensionSystem.js:70 (0x7f5aa4db4230 @ 229)
#2 0x55d4afb3eee8 i   resource:///org/gnome/shell/ui/extensionSystem.js:184 (0x7f5aa4db4450 @ 18)
#3 0x55d4afb3ee30 i   resource:///org/gnome/shell/ui/extensionSystem.js:199 (0x7f5aa4db44d8 @ 81)
#4 0x55d4afb3ed90 i   resource:///org/gnome/shell/ui/extensionSystem.js:299 (0x7f5aa4db4918 @ 76)

or this one:

== Stack trace for context 0x557564bde000 ==
#0 0x7ffc1cc13d60 b   /home/username/.local/share/gnome-shell/extensions/[email protected]/extension.js:256 (0x7f001bf90808 @ 123)
#1 0x55756501d098 i   resource:///org/gnome/shell/ui/extensionSystem.js:82 (0x7f003afb4230 @ 431)
#2 0x55756501d018 i   resource:///org/gnome/shell/ui/extensionSystem.js:344 (0x7f003afb4cd0 @ 13)
#3 0x7ffc1cc14b80 b   self-hosted:251 (0x7f00489d25e8 @ 223)
#4 0x55756501cf98 i   resource:///org/gnome/shell/ui/extensionSystem.js:343 (0x7f003afb4c48 @ 63)
#5 0x55756501cf18 i   resource:///org/gnome/shell/ui/extensionSystem.js:361 (0x7f003afb4d58 @ 87)
#6 0x7ffc1cc160a0 b   resource:///org/gnome/gjs/modules/signals.js:126 (0x7f00489e2b38 @ 386)
#7 0x7ffc1cc168b0 b   resource:///org/gnome/shell/ui/sessionMode.js:204 (0x7f003a3a4098 @ 254)
#8 0x7ffc1cc175b0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f00489c2bc0 @ 71)
#9 0x55756501cdd8 i   resource:///org/gnome/shell/ui/sessionMode.js:166 (0x7f003a39ede0 @ 40)
#10 0x7ffc1cc181b0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f00489c2bc0 @ 71)
#11 0x55756501cd30 i   resource:///org/gnome/shell/ui/screenShield.js:1281 (0x7f003a376098 @ 188)
#12 0x7ffc1cc18db0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f00489c2bc0 @ 71)
#13 0x55756501cc80 i   resource:///org/gnome/shell/ui/screenShield.js:1327 (0x7f003a376120 @ 391)
#14 0x7ffc1cc199b0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f00489c2bc0 @ 71)
#15 0x55756501cbf0 i   resource:///org/gnome/shell/misc/systemActions.js:403 (0x7f003a4b63c8 @ 80)
#16 0x7ffc1cc1a5b0 I   resource:///org/gnome/gjs/modules/_legacy.js:82 (0x7f00489c2bc0 @ 71)
#17 0x55756501cb70 i   resource:///org/gnome/shell/ui/status/system.js:287 (0x7f003a4ab5e8 @ 53)

Each of these stacktraces have in common that they happen several tens or hundreds of times per second and start with the same first line in extension.js:256. This is the i.destroy(); line in the disable() function.

What should happen:
No stacktrace.

Additional info:
Printing these stacktraces is a feature introduced in or after 3.26.0 release, afaik.

Please note that I did not disable this extension at all and I don't know why this function gets called. I guess that it is being called on screen lock or suspend.

Installed software versions:
gnome-shell-3.26.2-4.fc27.x86_64
gjs-1.50.4-1.fc27.x86_64
mutter-3.26.2-2.fc27.x86_64

Icon size doesn't count for scaling

I have a 4k screen on my laptop that uses 3840x2160 with 200% scaling, but when I connect it to a low DPI external monitor I run it in 1920x1080 with 100% scaling. On this setup everything should look the same size regardless of the resolution, however on my low dpi setup the overlay icons are twice the size from the hidpi setup. So it is clear that on the HIDPI case the scaling factor is not taken in to account when calculating the icon size.

Gnome 42 error

I had this error on extension's settings. I am on manjaro. Gnome42

The settings of extension [email protected] had an error:

TypeError: this.add is not a function


Stack trace:

_init@/home/tiklup/.local/share/gnome-shell/extensions/[email protected]/prefs.js:70:18
WindowOverlayIconsExtensionPrefsWidget@/home/tiklup/.local/share/gnome-shell/extensions/[email protected]/prefs.js:52:1
buildPrefsWidget@/home/tiklup/.local/share/gnome-shell/extensions/[email protected]/prefs.js:177:18
_init@resource:///org/gnome/Shell/Extensions/js/extensionPrefsDialog.js:32:44
ExtensionPrefsDialog@resource:///org/gnome/Shell/Extensions/js/extensionPrefsDialog.js:10:4
OpenExtensionPrefsAsync/<@resource:///org/gnome/Shell/Extensions/js/extensionsService.js:129:33
asyncCallback@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:115:22
run@resource:///org/gnome/Shell/Extensions/js/dbusService.js:186:20
main@resource:///org/gnome/Shell/Extensions/js/main.js:22:13
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
start@resource:///org/gnome/gjs/modules/script/package.js:190:8
@/usr/share/gnome-shell/org.gnome.Shell.Extensions:1:17

Journal spammed with `Can't update stage views actor * is on because it needs an allocation.` when opening the overview

  • Fedora 33
  • Gnome-shell 3.38.1

When opening the overview with the extension enabled you always get the following trace in your logs

Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor overviewGroup is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor Gjs_ui_workspacesView_WorkspacesView is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor Gjs_ui_workspace_Workspace is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor Gjs_ui_windowPreview_WindowPreview is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor StBin is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor StIcon is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor ClutterActor is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor Gjs_ui_windowPreview_WindowPreview is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor StBin is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor StIcon is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor ClutterActor is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor Gjs_ui_windowPreview_WindowPreview is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor StBin is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor StIcon is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor ClutterActor is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor Gjs_ui_windowPreview_WindowPreview is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor StBin is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor StIcon is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor ClutterActor is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor Gjs_ui_windowPreview_WindowPreview is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor StBin is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor StIcon is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor ClutterActor is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor Gjs_ui_windowPreview_WindowPreview is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor StBin is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor StIcon is on because it needs an allocation.
Nov 06 08:12:36 xps-9370 gnome-shell[3808]: Can't update stage views actor ClutterActor is on because it needs an allocation.

This looks super similar to https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3098, which happens in other situations but with the same logs. It also has a pending MR, so maybe you are able to adapt their solution.

Incompatible with GNOME 40

Firstly: Thanks for this extension! It's helped me identify which window belongs to which app in GNOME <= 3.38.

Good news: GNOME 40's shell is finally gaining icons on each window of the overview, similar to what this extension does.

However: When I had this extension installed and upgraded to the WIP builds of GNOME 40 (Fedora 33 copr), after launching a window, the overview was blank and I couldn't do anything except log out.

As GNOME Shell itself is providing the same functionality as this extension, in future versions, this extension should probably either restyle what GNOME 40 provides (icons at the bottom instead of the vertical middle) or change the supported versions of GNOME... else a lot of other people will probably wind up with broken desktops and might not figure out that it was an extension (and how to remove it with a broken desktop).

Crashes with wayland on fedora 28

I realized since fedora 25 or so (since wayland became the default), that your fantastic extension does unfortunately have severe problems when running in wayland mode. It causes crashes of the gnome-shell, which is, even more unfortunate, acting as a display server. thus, if it crashes, all applications go down with the gnome shell. (see, e.g. https://superuser.com/questions/1164174/how-can-i-restart-the-gnome-shell-on-wayland). I am currently using fedora 28 with gnome 3.28.2

one bug I was able to pin-point is when the system is suspended while being in the overview mode. after resume, I cannot leave the overview mode anymore, nor select any application. so a restart is required.

now the obvious workaround is running under X.org, but the development focus of gnome appears to be wayland. that implies in the long run, new features may not be available under X.org. On my machine (a Dell XPS15 2017 9560), I have a 4k monitor and wayland is much more reactive and convenient.

However, the gnome shell without your extension is almost useless, since it is very hard to find the window I am looking for. Myself I am not a gui developer so I have no clue how to solve this issue, but I hope there's a possibility to restore the wayland support.

Will you add icon shadow?

Hi,

I'd like to know if you will ever add icon shadow. That could improve the visual experience.

Thank you!

overview animation gets stuck

in gnome 3.38
i already had the »relative« option enabled
initially it worked just fine but after a while (maybe it’s the number of open windows) the overview animation just gets stuck and makes the overview menu completely unusable

Configuration: Minor UI Tweaks

In the configuration window, there are a couple minor UI tweaks that would be nice:

  • For opacity, use sliders, or at least percentages.
  • If "Relative" is checked, switch the box to a percentage box.

Strange icon appearing on workspaces

Hi,

I'm using Pop!_OS 20.04 LTS with GNOME 3.36.8...

When I turn on the windowoverlay icons extension, a strange icon appear in each workspace, if there's an app open on that workspace, the icon still stays there...

Here are the prints:

Captura de tela de 2021-07-22 13-29-35

Captura de tela de 2021-07-22 13-30-06

Please, How can I solve this? Thanks...

Extension breaks overlay view after minimizing a window

If this extension is enabled and the last window management action was to minimize a window, then the overlay view breaks when activated. It seems to play only one or maybe a few frames of the "present windows" animation and then freeze and become unresponsive. Only pressing the super key again exits this otherwise non-functional overlay view. The overlay view doesn't regain functionality until you switch windows or un-minimize the windows that was minimized.

Could the icons be drawn immediately, instead of after overview animations complete?

I find this extension very useful, but it's also quite jarring for me how when I open the overlay, the windows are shown without icons as the zoom-out animation plays - and then only when everything settles into a fixed place, suddenly the icons appear.

Would it be possible to draw the icons immediately as soon as the overlay opens? So that as the zoom-out effect takes place, the icons animate along with the windows?

It would be especially great if the opacity could be animated during this transition. For example, 0% opacity on the first frame, and 100% of the last frame. So that as the windows zoom out, the icons fade in.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.