I've been working on this project for about two months now (ish)
I'm a sucker for minimalism. Partly, because I keep a number of older pc's and i have to keep things minimal if i want them to work. And partly because that's just the way I am.
When it comes to minimalism in PC user experience, there's some options: Tiling window managers that force-snap windows into a specified geometry; Floating window managers that are so minimal you have to summon a panel separately; And, small-ish desktop environments that aren't really that small and have to load half of Qt or half of GTK.
Fluxbox is the one window manager I can think of that sort of does what it should. It's small enough and configurable enough to not be a memory hog.
But I wanted to go smaller. Fluxbox is written in C++, which is (kind of) a superset of C. I'm not saying Fluxbox is bloated. It's one of the smaller ones, at around 5MB. A 5MB executable is already an achievement, but I figured something in C might be even smaller, leaving some things out.
So, I started working on Cygnus
I called it Cygnus because it's written in C, and licensed under GNU GPL. Also, Cygnus is Hyoga, and... if you know, you know...
I wrote it in C to keep it as small as possible, and added only the absolute minimum necessary to the window manager code, so that it can function as a standalone executable that includes the code to have a fully functional, independent window manager. This would be enough, if the user decided not to install anything else, and it would have an X-session, a window manager, a panel, workspaces, a root menu, a config file for custom keyboard shortcuts, a run dialogue window, and a refresh and exit function. All of this in under 32KB. That is 156 times smaller than Fluxbox.
While it is possible to compile cygnus.c and run it standalone, it's not the only thing I wrote. I was already there, so I wrote a whole suite, including the window manager, a file manager, a open-file utility, a screenshot utility, a media player, a webcam application, a notepad, an image viewer, a paint program (this one's in C++), an automount utility, a clock applet, and a calculator. And, even if the user decided to install everything (all the binaries plus all the documentation), it's still only around 900KB, and 5 times smaller than Fluxbox.
I installed it on 3 pc's: 1 intel haswell, 1 intel braswell, and 1 amd radeon apu. The smallest was the braswell (an acer chromebook), with a minimal Debian installation + Cygnus occupying less than 4GB of disk space, and less than 400 MB of RAM used.
I won't be pasting the code here. It's over a dozen programs and utilities, some of them with several hundred lines of code, and some with over a thousand. I'll post a couple of screenshots, and the link to the GitHub project page.
Screenshot of working Cygnus WM session, including file manager, calculator, paint program, notepad, root menu, panel and panel applets
Project Page on GitHub
