A very, very brief journal entry. Metacity allows you to bind keys to horizontal and vertical maximisation of a window. Should this exist, since it’s so rarely used? Should there be a more easily-discoverable way of working? How would it work– right and middle and left click doing different things, as kwin does, or double-clicking the titlebar, or new buttons? There has been a lot of discussion about this on Bugzilla. Today your chronicler summarised the debate so far. Your two cents on the question are welcome; especially, I’m not sure how to gauge what proportion of people would actually use such a feature. (Lots of people will often tell you that they will use a feature, but you can hardly tell from that how many people don’t care.)
Author: Thomas Thurman
2008-01-12: For, indeed, the best medicine in life is a friend
Welcome back to the Metacity Journal; it’s been a month, and Christmas got in the way a little, so this will be rather a highlights reel.
Havoc has sorted all source files into subdirectories by purpose, which makes the structure of the program a lot cleaner.
Iain has fixed some bugs in the compositor about drawing shadows and other things.
Thomas has made a start on documenting every function using Doxygen. The current state of things is already quite useful for debugging, because you can use it to see which functions call which other functions. For examples of parts which are fully filled in, see:
There is an unstable release (2.21.8) due tomorrow. Also, is there anyone out there who would like to lend a hand with triage? As always, we love to hear from you about this or anything else.
(Post title thanks to Aelred of Rievaulx, who died on this day in 1167.)
Client attempts to deal with stacking order considered harmful
I was asked on IRC to explain why it is that programs mostly cannot raise their own windows.
The mechanism:
gtk_window_show() indirectly calls XRaiseWindow. This causes a ConfigureRequest X event. Metacity will only honour this if:
- the window belongs to the active application (but if there is no active application, any application can raise its windows), or
- there has been user activity in the new window more recently than in the active window
In all other cases it will ignore the request. If the request is to raise a window (rather than to lower it), it will set the attention hint on the window which was trying to raise itself.
The policy:
- Havoc noted in r460 that:
…in fact all client attempts to deal with stacking order are essentially broken, since they have no idea what other clients are involved or how the stack looks.
although that changeset did allow clients to raise themselves.
- After a discussion based partly on this, GNOME bug 166395 in February 2005 established a consensus that client attempts to deal with stacking order should be ignored; this was implemented in r1936.
- However, this left the program believing that it had alerted the user but with no change in the display, which was unhelpful. Therefore, in GNOME bug 305882 it was decided that when client attempts to deal with stacking order were ignored, the attention flag should be set instead; this was implemented in r2045.
This is not just GNOME being weird: here’s Lubos Lunak (the kwin maintainer) saying the same thing last year.
If you think this is a bad idea, figure out which part of it you think is a bad idea and then complain on that bug, or on wm-spec-list.
Start reading here
This is not the Metacity home page. There is no Metacity home page. This is for the same reason there is no flashy logo: Metacity strives to be quiet, small, stable, get on with its job, and stay out of your attention.
But this is a place where you can find out about Metacity. The maintainers and contributors post here, and we invite and provide feedback. So, what sorts of things can you expect to see here?
- Announcements of releases.
- The Metacity Journal appears semi-regularly, when things have been busy in the Metacity world. It discusses:
- notable changes to the code in the last day or so
- links back to people who have written about Metacity in their own blogs and discussion of what they say
- news articles mentioning Metacity
- activity on bugs (either on GNOME’s own bug tracker or downstream). These are often about issues which concern users, and you should always feel free to leave a comment giving your own opinion. We thrive on it.
- When there’s a lot of work being done on a particular sub-project, there will probably be regular posts on that project here. An obvious example was Iain’s compositor.
- anything else we think of.
- anything else you think of, possibly.
Comments on posts are open for the first few weeks, but are always moderated to keep the spammers away.
Photo credit: Li’l Bear. cc-by.
Ask us
Someone asked on IRC whether there had been a Metacity blog post about a certain thing they were interested in. There hadn’t been, but they were interested in seeing one, and I wondered what else people would like to see. So, ask us some questions (presumably questions about Metacity; if you want to know the date of the original constitution of Colorado there’s always Wikipedia :) ). People might answer them in the comments, and some of them might grow up to be fully-fledged posts. Of course you can always email us, too.
2.21.5 is out, with the compositor
Thanks to Iain Holmes and Thomas Thurman for improvements in this version. This is the first unstable release to contain the new compositor; please try it out and let us know how it goes for you. Downstream maintainers should note that its GConf key is initially turned off in src/metacity.schemas.in and consider whether to turn it on by default in their packages.
- merge compositor branch! (Iain) (GNOME bug 499081)
- print “Subversion” and not “CVS” when building (Thomas)
Translations:
Jorge González (es), Kjartan Maraas (nb), Daniel Nylander (sv)
Source:
- 3d3ac7dc8e52981af032e35171789e60 metacity-2.21.5.tar.bz2
- eef55d7ce921b23d0749155876d53873 metacity-2.21.5.tar.gz
Photo: Footbridge over the River Ver, Hertfordshire, England. Photographer: Gary Houston. Public domain.
Compositor on trunk
Iain’s compositor is now on trunk since it now meets every requirement I wrote about here. It looks gorgeous. It will be in the next unstable release, which will happen before the weekend. Do not use bucket-o-bling any more; it is a dead branch. Work will continue on trunk. This closes GNOME bug 499081. All kudos goes to Iain.
When Iain’s compositor will be merged
Someone asked about this and I was going to tell them, but then I thought I’d say it here. I will merge Iain’s compositor branch when:
- there are no known
- large memory leaks
- security holes
- crashes
- it can be turned off entirely from ./configure and GConf
- when it is turned off in GConf or ./configure, the code paths are substantially the same as before the merge
- I actually compile it myself and see it working on a computer in front of me
- there are no smaller nitpicks like coding style and so on
So far most of these have been met, but not all at once. Note that “it all works perfectly” is not a criterion: it is important that it’s easily testable in standard unstable releases. On the other hand, “Metacity is as stable as before if you turn compositing off” is a very important criterion.
2007-12-11: just a quick roundup
A quick overview of where the action’s at in Metacity today. Not even a picture of a pub. As ever, dive in and discuss where you like, here or on bugzilla or on your own blog: we thrive on audience participation and we love to hear from you.
- GNOME bug 502644: a lot of people think the minimise/restore, and drag/resize wireframe animations are ugly, and ask to be able to turn them off in various combinations (other than the combinations you can already use).
It would be better to fix the animations, really: do any of you have any suggestions how they could look better?
Also, would anyone who doesn’t like the wireframe applications be happier once we have a working compositor anyway?
- GNOME bug 115584 (yeah, an old one): Someone wanted a way to name, and bind keystrokes to, a large number of workspaces. At the moment you can bind up to a dozen with gconf, although there’s no reason it shouldn’t be more. Thomas proposed a scheme to let users bind n instead. Havoc said it would be crazy to have 64 workspaces each with its own keybinding. Thomas conceded this point. I think this is heading towards WONTFIX territory.
- GNOME bug 436257: when you cancel a keyboard resize the arrows should be consistent whichever side you end on. We have a patch for this now.
- GNOME bug 430198: theme preview should have the theme’s name in the titlebar, shouldn’t it?
- GNOME bug 333548: Alex’s patch reviewed and is basically good; some fixups suggested
- GNOME bug 439749: someone supplies a patch to add “maximise vertically” and “maximise horizontally” to the list of things that can happen when you double-click a window; it is their first patch, and Thomas attempts to be friendly while also asking whether it’s worth adding in new code for a feature that probably nobody has ever wanted yet
- GNOME bug 501365: dead code removed; fixed
- GNOME bug 403148: looking for some memory leaks
- GNOME bug 499301: refactor which probably isn’t interesting to any of you
- GNOME bug 133896: handle some X errors more gracefully
Elijah and Iain: I am thinking of making this entire blog licensed cc-by-sa. What say you? Anyone else?
2007-12-09: at last the 1948 show
The Metacity Journal bounds back to your screens! It’s been a busy couple of days; I think we’re about due an unstable release. Here’s a quick roundup of life around these parts:
Actual fixes:
- GNOME bug 474889 LONG KEY IS LONG: There is a particular GConf key which contained a small novel in the long description, and some of the translators asked for it to be shorter. We agreed on this in principle months ago, and then never actually did it. Sorry. Nostra culpa (or indeed mea culpa: Thomas was down to actually make the change).
- GNOME bug 112560: Sometimes Metacity grabs the keyboard, for example when you’re using alt-Tab, and then you might decide to stop doing that and do something else without actually finishing the alt-Tab. What if you let go of Tab without letting go of alt and then pressed f1? This is a basic fix for that case and, again, it should have gone in months ago but got lost. (Yesterday I did a sort of garbage collection pass over the bug list. I think I should do that more often.)
- GNOME bug 496054: a reported crash in obscure circumstances in the menu code, when you only have a single workspace; we couldn’t replicate it but it’s no bad thing to check you’re not passing nulls around, which was the obvious fix.
- GNOME bug 501362: Kjartan Maraas reported a typo where the “y” coordinate was checked twice in themes instead of the “x” and the “y” both once; Martin Meyer provided a patch(!).
Things people are actively talking about (as ever, feel free to jump into the conversation):
- GNOME bug 480954: random crash, probably not reproducible, dup finder finds nothing; I doubt this is going to lead anywhere
- GNOME bug 502644: someone wants a way to turn off wireframe as such, rather than minimise and drag wireframes separately.
- GNOME bug 500279 (the theme parser refactor): Andrea Cimitan says it interacts in bad ways with Iain’s compositor, so we are putting 500279 on hold until the compositor is sorted.
- GNOME bug 502635: Should it be the responsibility of the window manager to tell your IM client to set you “away” when you make another window fullscreen, since you can’t use the IM client?
Translation: Spanish, Czech, Belarusian, Brazilian Portuguese, and Galician have been worked on recently. Thank you all for contributing and reading and using.
Gossip:
- Opotumon coincidentally decides to uninstall Metacity because of the minimise effect!
- Libre et Ouvert has been covering GNOME/GTK eyecandy recently and is interested to hear about Iain’s compositor, causing some speculation in the comments over Metacity’s status in the Ubuntu default installation.
- Parzialmente scremato writes at length about the exciting compositing work going on in “an obscure branch with an unpronouncable name”.
Till next time…
Photo: The Peacock, St Albans. Photo: Gary Houston, public domain.