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