Someone was asking how they could help with Metacity. Here are some thoughts.
Why it’s important. Metacity is (for now) the official window manager of the GNOME desktop. Even though Metacity supports compositing, one of its strengths is that it can also run in a non-composited mode: plenty of people run Metacity who can’t or don’t want to run a compositing window manager. Then there are the people who use Metacity in compositing mode because they prefer it that way, often because Metacity’s maturity gives it the edge over other window managers. Even after Mutter becomes the official window manager, Metacity will remain important: the core of Metacity is the core of Mutter.
Things you should read.
- You should read the HACKING file to get a decent overview of the project. This will also tell you how to go about debugging a window manager.
- The project continues to be guided by the directions given by its creator, Havoc Pennington. You should read his policy on adding new features.
- The two specifications which guide us the most are the ICCCM and the EWMH. They are not the easiest reading material, however, and you can safely put off reading them until you need to.
- You should read this blog!
- You should subscribe to the metacity-devel-list. It’s very low traffic.
- If you’re new to fixing GNOME bugs, talk to the Gnome Love team. They’re good at helping newbies.
What needs doing. Metacity is a mature system, coming up to its ninth birthday, so there isn’t much new development to deal with. Day-to-day work falls into one of these categories:
- Triaging new bugs. A bug is either a report of breakage or a request for an enhancement. Bugzilla will show you a summary of current bugs. There are a lot of them.
- For reports of breakage, writing patches. This is really important. If you’re looking for something to work on, try searching for the “gnome-love” keyword in Bugzilla. This is used to mark bugs which are particularly suited to being fixed by newcomers to the project. There are currently six of them.
- For enhancement requests, deciding whether they should go in or not. Usually the answer is “not” (see Havoc’s policy document). This kind of bug has traditionally been discussed in a “bug of the day” feature here on the blog, but this took more time to write than it took to fix bugs, and so it’s been quiet recently.
- For enhancement requests which should go in, writing patches.
- Reviewing those patches and deciding whether they should be committed.
- Making releases.
New developments. But if it’s new development you want, you might be interested in helping out with:
- Mutter. This is the forthcoming window manager and desktop system for GNOME 3. It uses Metacity as its core.
- Cowbell. This is an attempt to reform the recondite window border theme system into CSS, which is much simpler to understand. This is stalled for the moment for lack of time and direction.
Photo © Chris Dixon, cc-by-nc-nd.