GNOME Bugzilla – Bug 502491
Add Exposé-like effect
Last modified: 2015-12-02 18:02:19 UTC
I'm not an Apple fanboy, (absolutely :D you know I'm Gtk-Engine developer, Clearlooks main developer, and my themes are not inspired by Apple) but I find the exposè-effect very useful.
I think that this effect can be easily implemented in the new Iain branch. And should be simple to copy the code from the tab-switcher.
Steps to code:
1) Get thumbnails from the windows ignoring gnome-panel (copying code from tab switcher, tabpopup.c of the compositor branch) (image processing)
2) Get monitor width and height (maths processing)
3) If needed, rescale the thumbnails for the correct width/height and add a fixed space between them (maths and image processing)
4) Add a simple shadow (maybe radius/2.0 where radius is the default radius used in "normal" metacity mode) (compositing processing)
then if it is not so slow...
5) add a transparency to all the thumbnails, like transset, and no transparency for the focused one
1) Animations are not needed (a simple static implementation could be enough)
2) This is a killer feature :)
*** Bug 510565 has been marked as a duplicate of this bug. ***
Kwin4 is capable of animations compiz-like trough xrender.
Yes, they're not so fast like using opengl, but that means we could add something simple but nice enough even withouth opengl.
Maybe we could read some Kwin code...
i'd like to have that with Metacity, that's the only missing thing to me
I think it _is_ a good feature to have, but wouldn't it hurt Metacity "keep it simple, stay away" goal?
Also, the point focused on how it should look, but didn't make a point on how would it manage minimized windows, shaded windows, windows across various desktops/workspaces, windows versus. application base switcher (e.g., GIMP, switches to one GIMP window and raise all the others)?
(In reply to comment #0)
> I think that this effect can be easily implemented in the new Iain branch. And
> should be simple to copy the code from the tab-switcher.
Go for it
(Hint: its not as simple as you think.)
Actually, in fact, this doesn't even need to be in Metacity
It could quite easily be a standalone program and would be MUCH MUCH simpler to do as a standalone program. Metacity's lack of a canvas is the main problem.
(In reply to comment #5)
> (In reply to comment #0)
> > I think that this effect can be easily implemented in the new Iain branch. And
> > should be simple to copy the code from the tab-switcher.
> Go for it
> (Hint: its not as simple as you think.)
Everytime I propose an enhancement you say *go for it*... what are you doing? This is your project, not mine. I write code for gtk-engines, my personal projects, and I manage the developmnent of the artwork team. I can't do your job.
If metacity has no support for canvas, then it is a lack of metacity that need to be fixed. Having a compositor just to draw few stupid shadows is just...useless.
Same thing could be done ages ago with xcompmgr reaching same levels.
(In reply to comment #7)
> what are you doing?
I'm cooking my dinner, what are you doing?
please, stop the fight (peace in the world etc.)
Seriously, among all the Compiz effects, this one is the only one useful !
I'd love to see it on my GNOME desktop (thanks to Metacity or whatever)
Exemple : open The Gimp, works with several pictures.
With that function you could easily switch from one to another
see that article (the "Scale plugin" part)
here's the link http://open-source.ecchi.ca/?voir=articles/20070216-gimp_ui
concerning taht canvas thing, maybe this link is related ?
http://federkiel.wordpress.com/2008/03/12/gtk-30-getting-serious/ "there are very solid plans to what extent a scene-graph library might interact with GTK+ and what requirements such a library has to fulfill"
(In reply to comment #6)
> Actually, in fact, this doesn't even need to be in Metacity
> It could quite easily be a standalone program and would be MUCH MUCH simpler to
> do as a standalone program. Metacity's lack of a canvas is the main problem.
There is already skippy-xd. I haven't tried it with metacity and it might be unmaintained, but it proves that the stand-alone program is simple enough. http://thegraveyard.org/skippy.php
However, I would like to have this in the window manager. For one thing, only the WM can accurately present the windows with their window decorations etc as far as I understand it.
(In reply to comment #12)
> However, I would like to have this in the window manager. For one thing, only
> the WM can accurately present the windows with their window decorations etc as
> far as I understand it.
I don't think that is true.
I believe that Ian must have his reasons. For me, Expose effect is very trivial, because I am more concerned about the performance of the compositor, it is still laggy on my computer. I'd use a WM that "just work" and perform extraordinarily than a very fancy one. Though I definitely use the fancy feature if it is available at hand. By the way, can you please let us in on the to-be implemented features of the future release?
(In reply to comment #14)
> I believe that Ian must have his reasons. For me, Expose effect is very
> trivial, because I am more concerned about the performance of the compositor,
> it is still laggy on my computer. I'd use a WM that "just work" and perform
> extraordinarily than a very fancy one. Though I definitely use the fancy
> feature if it is available at hand. By the way, can you please let us in on the
> to-be implemented features of the future release?
Exposè could be added but won't affect your performances if you don't use it.
Maybe a key binding or a hotspot enabled trough gconf.
With enlightenment 17+composite works fine on an old ati card (7500 mobile, r100, sooo old)
(In reply to comment #14)
> I believe that Ian must have his reasons.
My reason is i dont want to do it, partly because I don't think it adds very much, partly because Metacity isn't ready for it, partly because there are more important things to do and partly because it can be implemented outside of the window manager.
Now it comes to the issue of personal opinion. Please stop 'sparking' flame on this topic. As Iain stated that he does not like to implement the feature, thus people is free to fork Metacity (isn't FOSS great?) if they feel like to have more additional features. For me, I still would like more improvement of speed, it lags on my Intel 915 built-in gfx compare to the smooth compiz-fusion.
In the end the judgment is up to the users. Poor quality softwares will die out leaving place for a better one.
P/S: "Every time human resolves a conflict, they eventually evolve to a next higher level".
Iain: How would it be implemented outside the WM? Are you thinking of something which actually resized all the windows as appropriate first, and then restored them?
there were a lot of applications that did that, look at komposè for kde.
now the functionality was built inside kwin
(In reply to comment #18)
> Iain: How would it be implemented outside the WM? Are you thinking of
> something which actually resized all the windows as appropriate first, and then
> restored them?
No, nothing like that at all. That would be awful.
Its very simple
application opens a full screen borderless window
Application requests a list of all windows on the screen
Application requests the backing pixmap of the window
Application displays pixmaps however it feels like with whatever effects it wants
User selects pixmap, application closes fullscreen window and selects the choosen window.
Trivial. it needs one thing to be changed in Metacity to work 100% and that is that it stops unmapping windows on minimize and workspace switch which would stop the backing pixmap getting destroyed on minimize, and this has been done in the clutter version of metacity (mutter), so if anyone cares enough to do it the code is there.
well the content of the windows wouldn't be updated in that approach which is not as impressing as with compiz.
(In reply to comment #21)
> well the content of the windows wouldn't be updated
Yes they would.
The application listens for Damage events on the windows and updates when appropriate. Which is exactly the same as what compis or metacity has to do.
Firefox 4 gets a Panorama functionality which works a bit like Exposé.
As far as i know Firefox on GNU/Linux doesn't make use of OpenGL. It's biult on Cairo. I guess it uses Xrender ? Anyway, it's not too bad
I guess, after more than 8 years, we can close this as WONTFIX.
We do have a compositor with a canvas, now, and it does a pretty decent version of the exposé effect.