How does a window manager actually work?
I'm kinda searching for in depth information about how a window manager actually works.
The thing i'm interested in most is the pixmaps that it must make at some point in time right?
When i want to do (or try) is make a very basic very primitive - proof of concept only - window manager that does the drawing with QML, the logic should all be in C++/Qt. The reasoning behind this is that you get all the graphical power that QML has for free! So free effects, blur, other animations! Even shaders in QtQuick 2.0. But the thing i can't seem to figure out is how a window (not the decorations, but the actual window content) is being build up and who is responsible for it. Does it somewhere end up with a pixmap which can just be "blitted" to the screen thus can also be send to a QML element?
And even if everything ends up being a pixmap, then how can i ever get keyboard and mouse events working? I mean.. it's a picture, how do i know which event to place where and how do i even do that?
I'm actually hoping someone somewhere has a extremely basic 2 source file Qt example somewhere
Note: while writing this i found: http://gitorious.org/qt-window-manager#more might be interesting.
I hope someone could shed some light on this since having a window manager that really taps in the power of QML seems like a perfect next step for graphical linux environments.