When I started writing katriawm[1], I needed to choose an image format to store the window decorations. It needed to be simple because I didn't want to get my hands dirty with libpng or other libraries. I ended up choosing PPM. This weekend, I reworked the code a little bit and katriawm now uses farbfeld[2], which I was already using in infofeld[3]. I did indeed consider using farbfeld right from the start, but -- if I remember correctly -- it was still in some kind of flux back then. Today, the situation is different. "Version 2" has been released some time ago, there is a stable set of conversion tools, there is an imlib loader for farbfeld (which means you can view farbfeld images with many tools like feh or sxiv), and there even is a GIMP plugin. Farbfeld is a really nice format. It's as simple as it can get. Initially, I didn't like that values were stored as big endian, while all common Intel CPUs are little endian. But I get that you have to agree on something, so why not use something that's already established in other areas? Big endian is "the network byte order" which means that you can use functions like "ntohl()" to convert from big endian to whatever your machine uses. In other words, use those functions and never care about endianness again! That's actually very nice. ____________________ 1. https://github.com/vain/katriawm 2. http://tools.suckless.org/farbfeld/ 3. https://github.com/vain/infofeld