This page has general information on X development, including how to get started.
A common misconception is that developers need to understand all of X to get started. This is not true, and even of the "core" developers, only few actually know all the pieces that put X together. The best way to get started is to simply pick a problem and give it a try.
There is also a new book in the Amazon Kindle format, Hands-on Projects for the Linux Graphics Subsystem. This includes a number of original projects on the X.Org implementation of the Linux graphics subsystem. The book is aimed for instructors, students and any other OS internals enthusiasts.
Documentation
- X New Developer’s Guide: High level introduction to X and the surrounding graphics stack, and how to get started in developing for them.
- Xplain: Explaining X11 for the rest of us: Another introduction to X, with interactive examples - work in progress.
- Glossary: Various terms used in X, and what they mean.
- Building the X Window System: For builders and developers working on the X.Org source tree
- Submitting patches: How to submit a patch to an Xorg project.
- Making a release: How to make an individual module release.
- Writing documentation: How to document your work in X.
- X server source layout: A map to the different directories in the X server source
- The devPrivates system: All about the private storage system in the server.
- Wrapping functions: How to add hooks to functions in the server.
- Grab processing: How input grabs are dealt with in the server.
- Cursor handling: Introduction into DIX cursor handling.
- Input event processing: How input events are dealt with in the server.
- Security: How to make use of the security facilities within X.
- Performance: A fairly detailed document explaining what our performance problems actually are, and things that aren't performance problems at all.
- Xorg input driver HOWTO: How to write an input driver for X.Org.
- How video cards work: A conceptual overview.
- Kdrive Drivers: notes for making new kdrive video drivers
- Dri Wiki: Information about using the Direct Rendering Infrastructure (DRI) with X.
- Multiseat: Various informations about how to obtain and develop such model.
- Deprecated and obsolete: Notes on deprecated and obsolete extensions and server-side stuff.
- More Xorg Documentation: Some pointers from deep in the Wiki. This page should possibly be moved into Development/Documentation.
- Pointer acceleration: information on the pointer accel mechanism.
Tools
- Using git: Information on using git.
- Server debugging: How to debug the X server with gdb.
- Server profiling: How to profile the X server.
- Using ctags to find functions: Some tips to find a function in vim.
- Using Eclipse: Some tips to use Eclipse to develop X.Org.
Various Projects
- PciReworkHowto: How to fix a video driver to use libpciaccess
- VgaArbiter: Routing VGA instructions correctly.
- Xv2, Render API: a long rambling discussion about giving Pictures GCs, and moving Xv to Render + RandR.
- X12: a list of things we'd fix if we ever get around to a new version of the core X protocol