I fixed the strut handling code. The original didn't handle struts for things other than the builtin slit and toolbar widgets.
I removed the Slit and the Toolbar. Silly things. Slit swallows dockapps (?) and the Toolbar is a retarded taskbar-like thing.
I removed most of the menu code. There still is a menu, but it's a fixed one. You can reach it by right clicking the root window with both ctrl and shift depressed. This menu contains: settings, window and workspace lists and an option to start xterm. Note that you may not be able to reach the menu if you're running some desktop manager like xfdesktop. This particular shit seems to grab the mouse button or something.
I removed setroot command from it. It was used to set the root window contents somehow, but it's totally unnecessary: you can do that from the script you ran the window manager. Also it interferes with the operation of xfdesktop.
I fixed the Unicode conversion code in it. It was trying to convert UTF-8 to UTF-32 and then find out the endianness of the resulting string. Instead of that, now I just tell it to convert to the correct encoding such as UTF-32LE or UTF-32BE in the first place. This wasn't a problem with the glibc iconv, but I had to this fix for musl.
I incorporated all styles distributed with the source code into the binary image and now the window manager can load builtin styles. It can still load styles from external files. The directory to look for these are set in the configuration file.
The default configuration file is now "~/.config/simplewm/config". You need to make the necessary directory for this by yourself. I should fix the program to make the necessary directory sometime.
In order to make a configuration file, you should change some configuration and it will be saved automatically. For that to work, the above directory should be present and there shouldn't be some other program blocking clicks on the desktop such as xfdesktop etc.
I fixed various source files to include proper headers and check for proper symbols. The whole thing was a mess.
In order to compile it from source, get this package. First, go to the lib/ directory and run 'make'. Then go to the src/ directory and run 'make'. Now the binary called 'simplewm' is ready in the src/ directory. If you want to make a static binary, run 'make STATIC=yes' in the src/ directory. You might have to tweak some library flags in order for this to work.