GNOME Bugzilla – Bug 162646
Getting started guide to attract more contributors
Last modified: 2005-01-02 22:03:58 UTC
So, I had this crazy idea of writing up a short guide on the things that would have helped me get started into hacking metacity more quickly. I'm not sure if others will find it useful, but I figured it couldn't hurt to at least type it up and get some feedback (though, after how long it took...). So, what do you think? Would it be worthwhile to save this file in cvs, say as doc/getting-started-pointers.txt and reference it from the HACKING file? (Or, perhaps merged with the HACKING file?)
Created attachment 35335 [details] basic getting started pointers
Also, note that at the end where I provide basic pointers, I tried to even include some sections that I'm not familiar with (e.g. session management, themes, xinerama). I tried to do some quick research there but I'm still somewhat unsure of what I put in those sections.
Great idea, though I doubt we'll get hundreds more helpers maybe we'll get one or two ;-) I would say ideally merge with HACKING, maybe separating the relevant content out of HACKING into doc/code-overview.txt or something with this new material. But if you want to go ahead and commit what you have and then mention it in HACKING that's better than where we stand now. Some lame comments: - the ICCCM is usually available in RPM or DEB format, e.g. /usr/share/doc/xorg-x11-doc-6.8.1/ICCCM/icccm.PS.gz on my system, I think Debian has a package called "xbooks" or something like that. Well, they had that back in the day, I'm sure it's changed name. - "This is largely because X tends to have several structs defined that use common names already" really it's just because I'm enough of a dweeb to use namespaces even in application code. ;-) But yeah namespaces solve that problem. The point is I guess, if someone adds new code they should namespace it even if there's no actual collision with Xlib. - "known as \"multiscreen\" and \"xinerama\"" I wouldn't glom those into one thing without explanation, since people may not be familiar with X screens vs. Xinerama and the difference. The simplest way to explain it is that each MetaScreen is a root window (root node in the tree of windows). With Xinerama, a single root window appears to span multiple monitors. The pointer and keyboard are shared between all root windows for a given display. - maybe mention that the huge list of things in MetaWindow is exactly the list we would rather not make larger, since it uses memory per-window ;-) This is really awesome, thanks.
Created attachment 35353 [details] New HACKING file
Created attachment 35354 [details] New doc/code-overview.txt file
Thanks for the explanation of multiscreen vs xinerama. I didn't know that myself either. :-) I worked that and your other suggested changes in as well. I merged this new file and the old HACKING file. Then I split out doc/code-overview.txt from this. I'm not completely sure what you had in mind for the split between HACKING and doc/code-overview.txt, so I attached the two files so you can take a look.
I'm not sure what I had in mind either, but the way you did it seems very nice. ;-)
committed.