Winnie is an experimental and minimal window system I wrote for fun and to
familiarize myself with the concepts of device handling, event management, window management and memory management on Linux.
Winnie receives events from the mouse (reading /dev/psaux) and the keyboard (/dev/tty raw mode) and renders pixels
to the Linux framebuffer device (/dev/fb0). It supports a simple window manager that can handle the window/frame hierarchy
(for example send focus, signal to maximize, mark areas as dirty to redraw etc). The window system clients are currently
plugins that implement some winnie callbacks provided by the window system to handle the events it receives from the mouse,
the keyboard or the system clock. I intended to use a shared memory IPC mechanism, I started, to support fully standalone applications
but I finally used the plugins trick in order to have a first winnie implementation before the FOSSComm2013.
There's also an SDL backend that allows debugging under X.