Continued absence of dolphins

Sorry for the lack of daily “journal” posts over the past few days: I’ve been rather busy with real life, and it takes rather a while to gather up the crumbs to make a post. I’ve been writing a script off and on which will do the donkey work and let me or anyone else simply write the human part, but it’s not quite finished yet.

To be going on with, here’s the fascinating saga of negative numbers in theme files (well, more of a bug, really: Njáll Þorgeirsson does not have a starring role.) Someone complained that they couldn’t put negative numbers into theme files; Thomas closed the bug because the source comments (but not the documentation) say explicitly that negatives aren’t allowed. Besides, what good would they be? The reporter said that there was actually no reason to need negative literals because expressions which yield negative numbers can always be written instead. Certainly this does need documenting explicitly.

Havoc then pointed out that it makes little sense to prohibit “-1” but allow “0-1”. A long discussion of the semantics of the original comment followed. Nobody could remember ever writing it or quite what its subtleties were. Did it mean that unary negation wasn’t implemented because negatives weren’t allowed for some unstated reason, or did it mean that negative literals weren’t allowed because unary negation would over-complicate the parser? Perhaps it does make sense to prohibit “-1” if it means the code will be more maintainable? Maybe code could be shared with some existing expression parser? The issue has not been resolved.

In other news: congratulations to contributor Alex Turner (plexq on irc, aturner in svn) who got svn access yesterday after two very useful patches.

Thomas is aware that patch review is a little behind again (see above under “rather busy with real life”) and will try to get it back on track by the end of the week.

2007-11-17: some releases and some discussions

Two point releases out: development 2.21.2 and stable 2.20.1. Federico’s patch went into both, since it fixed a regression; Benjamin’s patch went into the development release.

It is hard to think of a shorter way to say “Make this window follow me when I change workspaces”.

Alex Turner provided a patch to make urgent windows on other workspaces appear in the alt-Tab popup, since they already appear in the pager. The patch wasn’t quite in time for 2.21.2, but should be in 2.21.3 if all goes well. So should a first attempt at merging Iain’s compositor branch, if everyone is happy about it.

Marcus Lundblad points out that the double-click to close patch doesn’t apply to trunk any more; Thomas promised to fix it and therefore will, but perhaps not until things calm down a little. Maybe when we get into freeze.

Iain’s compositing post continued to be the scene of much discussion.

Photo: The King Harry, St Albans. Photo by Gary Houston, public domain.

2007-11-16: “Higher standards of elegance”

There was some discussion over the option on the window menu which controls the attribute known to the developers as “stick”. This makes the window follow you around when you move workspaces; it’s useful, for example, to keep a clock applet always in the corner. Some people think that the window menu should have two options for this, and some people think that that is a waste of space, and not elegant, and rather it should just have one option which toggles. In that case, however, it’s not very clear how to word it: someone has suggested “Always on current workspace”, but what does it mean when that’s turned off? “Never on current workspace”? “Sometimes on current workspace”? The Human Interface people were helpful here.

Speaking of human interfaces, apparently now if you select the High Contrast Inverse theme, Metacity colours certain icons on the window menu a tasteful shade of black on navy. I think we need to get to that soon before Trinny and Susannah track us down.

Some people on Launchpad would like to be able to resize by dragging using mouse buttons other than the standard ones, because they don’t have a middle button.

And Benjamin submitted a patch for the theme directories problem which (informally) looks good. Unless anything particularly odd shows up in it, it should go into the next release, expected some time early tomorrow morning Greenwich time.

Photo: The Crown, St Albans. Photo by Gary Houston, public domain.

2007-11-15: xterm, glib, api

xterm has a habit of padding the bottom of the screen in unsightly ways, apparently (your chronicler always uses gnome-terminal). It was suggested that this might be solvable in metacity, but it’s not at all clear how the details would work. (Finding the bugs where this was discussed before would be useful.) Havoc pointed out that xterm is as patchable as metacity is.

Benjamin Gramlich submitted another version of his well-written theme-finding patch, only to have Havoc suggest that g_get_system_data_dirs() would do a lot of the work for him; Benjamin is now away rewriting the patch in terms of that function.

Thomas deleted api.[ch] because it was never used.

Your comments and suggestions about any of these, or anything else related to window management, are welcomed. As the header now says:

There will be links to discussions, and you should feel free to dive in. We might link to Bugzilla discussions, discussions on the various downstream trackers such as launchpad, news coverage, or random blogs. (If you mention Metacity in your blog, we will get to hear about it, and we might link it and discuss what you say.)

Today in the blogosphere, Harsh shares how to turn off the window minimise animation using gconf-editor, Opera Omnia told us that Metacity was not at all outdated, and elsewhere there’s some more talk from people who are switching back to Metacity from the default window manager in Ubuntu Gutsy: László at length on why he’s doing so and Magpie on how to do it (I believe there are actually easier ways, but I’m not currently running Gutsy, so I don’t like to comment).

A development point release is planned for Sunday (but might happen on Saturday, depending on workload).

Photo: The Rat’s Castle, St Albans. Photo by Gary Houston, public domain.

2007-11-14: a quieter day than usual

The VintrySome helpful Ubunteros came and fixed Thomas’s laptop, which meant that Benjamin’s patch got reviewed (good work there), and also that the question was raised about what api.[ch] are good for.

Most of the checkin activity today was from Iain Holmes with his new compositor rewrite (or, as he has called the branch, the Bling-Tastic Bucket o’Bling). I am hugely excited about this; I hope Iain will write about his experiences here later.

On Launchpad, a discussion has been going on about whether it should be possible to set the width of window borders in general rather than its being down to the theme. Having too-narrow window borders makes resizing windows difficult, but some people don’t like the way it looks. This briefly spilled over into GNOME Bugzilla. It would seem to be a good plan to ask people to make default themes have large borders.

Alex Turner identified a place where the code could be made clearer and more easily optimised by the compiler, which seems promising.

A few months back, Matt Harley wrote a post about why he’s running Metacity rather than Compiz, which should be interesting reading for the future if we want to know why people choose Metacity rather than any other way of managing their desktop. Gentle reader, if you do, why do you use Metacity?

Photo: The Vintry, St Albans. Photo by Gary Houston, public domain.

2007-11-13: largely about raise-on-click

Duke of Marlborough, St AlbansMore Metacity goings-on for 13th November. Apparently, for some people, no window has focus immediately after login, which causes screen readers to get confused. This has the potential to be an interesting bug, because it concerns the interaction of Metacity, X, and screen reader software, any of which might have been customised in interesting ways for a particular distribution. The original reporter says he won’t be able to follow up for a few weeks, though.

Unfullscreening windows which believe themselves to be as big as the screen anyway causes a workaround to be triggered and the window is returned to the fullscreen state; this is a regression from 2.18. Thomas is looking into it (though not very immediately because of a broken laptop).

Peter Bloomfield committed his fix that windows should not remember their positions while maximised.

Some small amount of raise-on-click controversy. There is an idea that which windows get put on top should be between a user and their window manager, and in particular that applications should not get to force this on people. This gets patched downstream— a lot– and there is a general policy that things which get patched all the time downstream should be patched upstream too. Some people are asking for changes in the way this alteration is made; the present writer is not on top of all the issues and should probably not attempt to explain just at the moment. Also, the historical lack of a unique-app ability in gtk is causing authors to use workarounds which then break WM standards (and again).

Someone complained that metacity does not set focus when it is forcibly killed; the reason anyone would care about this turned out to be that another program called ROX-Session has a method of setting the window manager involving killing the old window manager, whereupon a dialogue comes up asking which new one you’d like. Of course, by that time, you can’t switch to the new one anyway because you have no window manager.

The previous discussion about unidirectional maximisation slowed down a bit, with a discussion of code rot in alternative patches which aren’t (or aren’t yet) accepted into trunk. (The grandfather example of this is probably the double-click to close patch.)

Thomas’s patch review plan continues with a promise to review this patch about the location of user themes, but, again, the broken laptop has put that on hold for a few days.

Photo: Duke of Marlborough, St Albans. Photo: Gary Houston, public domain.

2007-11-12: mostly going in just one direction

Hare and Hounds, St AlbansIt’s been a busy day here in the Metacity bug tracker, so I thought I’d make a summary of the discussions happening around the table. Feel free to drop by any of them and weigh in.

Unidirectional maximisation continued to be a controversial topic. A while ago, we added the ability to make a keystroke maximise a window in one direction only. Some have said this feature is useful; others have said it is crack. Those who said it was useful also said they would like to be able to do so using middle and right mouse clicks on a button, as in some other window managers; those who said it was crack pointed out that this was inconsistent, since there was no obvious way to make the visual user interface show whether a window was already unidirectionally maximised. Various patches were posted. Codebase forks over the matter were suggested. It was decided that a gconf option to control this would be a bad plan. The idea of a “traditional Unix users” control panel to keep all the crack together was raised, which not only raised the spectre of allowing the crack in by the back door but also required getting control-center maintainers to co-operate. No consensus has yet been reached.

In other news, discussion continued about how to fix the bug fixed in the previous point release about not saving the coordinates of maximised windows; it needs to apply to fullscreened windows too. A success story: Federico and Elijah jointly found a fix for the problem about transient windows stealing focus. The dearth of themes which support version 2 of the format, which is required in order to display shade and unshade buttons on the toolbar, was shown by someone raising an enhancement request to be able to do so, although that veered off into discussing having a fullscreen button; naturally, such a button would be one-way only (since fullscreen windows don’t have titlebars) and would need to wait for version 3 of the theme format. And finally, this bug just arrived here from gnome-session.

Thomas is aiming to have all unreviewed patches reviewed within the next few point releases, since rather a queue has built up.

Photo: Hare and Hounds, St Albans. Photo by Gary Houston, public domain.