Можно начать с изучения уже существующих WM под Linux/Unix — возможно среди них найдется что-то, что вполне устроит.
Вот тут ресурс с обзором всего этого добра, включая довольно древние —
xwinman.org/
Если очень хочется написать что-то свое, то имеет смысл изучить один их двух наиболее популярных графических SDK:
1) GTK+ на котором построен Gnome —
www.micahcarrick.com/gtk-glade-tutorial-part-1.html
2) Qt toolkit —
qt.digia.com/Product/, на котором помимо всего прочего построен KDE
Писать свой WM базируясь на базовый элементах X Windows не советую — годы уйдут, пока худо-бедно рабочий WM напишите.