3 ms·
I would appreciate a somewhat detailed comparison to evilwm and cwm (calmwm) that are also really clean and simple and have very similar features. What are the
by enriquto 6y ago
I would appreciate a somewhat detailed comparison to evilwm and cwm (calmwm) that are also really clean and simple and have very similar features. What are the main differences (technical or philosophical) with these other programs?
- mcpcpc 6y agoTrying to put together a few example patches for xwm (i.e. focus borders and workspace). But once I get some bandwidth, I plan to provide some comparison data. =)
- mcpcpc 6y agoJust a quick glance at the source files for the two WMs you mentioned (along with a few others): cwm-----> 6328 cloc, http://ix.io/2DGD http://ix.io/2DGD evilwm--> 3257 cloc, http://ix.io/2DGI http://ix.io/2DGI dwm-----> 2505 cloc, http://ix.io/2DGQ http://ix.io/2DGQ xwm------> 301 cloc, http://ix.io/2DGE http://ix.io/2DGE tinywm---> 115 cloc, http://ix.io/2DGR http://ix.io/2DGR I think it would be unfair to compare xwm to either based on the sheer difference in cloc (10x+). A better comparison would be to dwm, bluewm, tinywm, lainwm or any of the smaller code-base projects. From a philosophical standpoint, xwm is written using the XCB protocol while the other two are written using Xlib. The "X New Developer's Guide" is a good reference to understand the difference: https://www.x.org/wiki/guide/xlib-and-xcb/ https://www.x.org/wiki/guide/xlib-and-xcb/ From a sheer dependency standpoint, xwm has fewer than the rest. There are obvious drawbacks to this, but I intentionally left xwm as "barebones" as possible, to allow the community to expand, patch, tweak and modify. This is consistent with the Suckless Philosophy of programming (https://suckless.org/philosophy/ https://suckless.org/philosophy/), which is based on the Unix Philosophy of programming. Additionally, I have opted not to have a run-time config file. Everyone seems to have a config file these days that is either placed in an obscure directory, "hidden" from plain site or cluttering my home directory. I hate config files (and they hate me). Not doing so forces the user to glimpse into the source which, to me, is a habit that all existing and new Unix users should be doing. Amongst other things, I provide no out-of-box multi-monitor support, no menu bar, no title bars, no tab focus or or any other feature that a regular user would find essential. Instead, these features will be offered as patches, which the user must learn how to apply themselves. I hope that information helps answer your question a bit. =)
- enriquto 6y agoThanks! I'm going to try it. What made you go for xcb instead of (arguably simpler) xlib?
- mcpcpc 6y agoXCB is closer to the X protocol, making it significantly smaller and generally faster (and more responsive) than Xlib. The argument of simplicity for source is relative to the API implementation. In this use case, the XCB API is the clear winner (imho).