Winnie: a framebuffer window system

A few weeks ago, I started a minimal window system, which performs software rendering on the linux /dev/fb0. My aim was to learn some systems programming and familiarize myself with concepts like event and device handling, memory management, window management, drawing on the framebuffer, IPC mechanisms etc (and certainly not to create a full linux window system! :)p) I call the program winnie and the code is available on github here:, and lp.

The program is not finished yet and I don’t know if I ever finish it, since I came up with new project ideas again.. Nevertheless, you can see some videos of the development stages below if you are interested (most recent first):

Winnie can get the events from the mouse (reading /dev/psaux) and the keyboard (/dev/tty raw mode) and render pixels to the Linux framebuffer device (/dev/fb0). It has a minimal window manager that can handle the frames using reparenting. Although I wrote a shared memory allocator to use with the clients, atm the clients are loaded as plugins. It was a quick trick I invented to have a first winnie implementation before the Greek Fosscomm 2013…


Winnie: a framebuffer window system

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s