12/28/05
I've been playing around a little more with Metacity and XComposite/XRender. I applied the patches from bugs #309152 and #310080 to current Metacity CVS-HEAD, fixed some things which broke the build, and replaced the running instance with the newly compiled one.
Here's the result:
(Image is link to full-size screenshot)
Some things to notice:
- The terminal in the upper left corner is the one I used to replace the running metacity. It looks like there are some problems taking control of existing windows: I was unable to use the old terminal any longer... It became usable again once I killed the new metacity and the system one took control
- The terminal in the center of the screen is made transparent using transset. Transset'ing a window removes the drop shadows :-(
- My sticky notes transparency is working fine! Notes can be moved and resized fine.
- The "Metacity compositing example" dialog box is generated using zenity. It's broken as I was dragging around the window whilst the screenshot was made, to give an example of how windows become transparent when moving them around.
- I made my desktop background light to make the window drop shadows more apparent.
Overall all this eye candy is still fairly slow. I'm on an NVidia Geforce2 MX440 GPU, using the open-source drivers. I *think* the binary ones support XComposite, but I won't try it as the binary drivers don't allow me to run 1400x1050. If someone got a spare Ati 92xx GPU around, let me know, I'm looking for one (paid if necessary B-)).
There's still a lot of work to do, but I hope one day we'll get there :-)
If you want to play around with this stuff yourself, get today's metacity cvs head from cvs.gnome.org, and apply this patch. ./configure using "--enable-compositor --enable-render" with --prefix to some directory, make && make install, and run "${prefix}/bin/metacity --replace"
[edit]
Thanks to some xorg.conf tuning (ModeLine) I got the nvidia binary drivers working on the resolution I want them to, so I'm running a GPU accelerated desktop now. Composite is working great... I backported my patch to metacity 2.12.2 and am running the patched version on my whole system now. See Gnome bug #309152 if you want the patch.
Next tasks:
- allow the user to set window transparency in the window menu, or by using the scrollwheel on the title bar
- Make drop shadows configurable (both on/off, size, intensity)
- Make the (ugly!) minimize effect optional
- Try to enhance the (ugly!) alt-tab behaviour
12/26/05
As per bug #150493:
This is "true" transparency using XComposite, not blending with the background or a screenshot.
It's fairly buggy, but that's caused by xcompmgr and Metacity's ignorance of Compositing (I think):
- When xcompmgr is running and you create a new note, it's not transparent although xprop says _NET_WM_WINDOW_OPACITY is set to a correct value. Restarting xcompmgr makes new notes transparent
- Text of notes can't be changed
- Notes can't be resized or moved
The "Delete" and "Sticky" buttons work fine though. Really strange.
Metacity really needs a built-in compositing manager, like XFWM's.
12/23/05
Only 67% :-( Guess I'm too young to know about those k* tools ;-) Some questions are a little Debian-specific too, but hey :-)
I'm sorry Gnome-NL guys, but I must confess I'm running my desktop using the "C" locale (ie. english). There's one major problem with this: when I'm using Gaim with spell checking enabled, I'm always "wrong" as 99% of all time I talk to IM buddies, it's in dutch (nl_BE, or something close to that at least ;-)).
A very annoying issue that could be solved by disabling spell checking (*sigh*), which I don't want (hey, one has to *fix* problems, not go around them).
So I made this little patch (very simple, low profile patch, I know). It's against gtkspell 2.0.11, and as gtkspell seems to be no longer maintained, this is the version you got on your system most propably too.
To set a language to use for (gtkspell based) spell checking, just set the GTKSPELL_LANG environment variable, like this:
echo "export GTKSPELL_LANG=nl >> ~/.profile"
Then log out and log in again so the variable is incorporated in your environment.
Enjoy!
12/20/05
I didn't know about this before:
Cool! The image isn't fake, just try it for yourself.