Contributed by deanna on from the goodbye, ion dept.
cwm(1) ...a window manager that may not appeal to everyone. but it certainly appeals to me, and a bunch of other ex-ion users.
If it wasn't for the fact that Bernd Ahlers (bernd@) imported cwm into Xenocara at the end of April, I probably still wouldn't have been using it. Albeit it being in ports for some time.
After being fed up with ion on my laptop, I decided to give the
cwm a spin. And boy, I was in for a surprise. At first I was like
start yet/already and how the heck does this thing work?!. But when trying
to kill X, but failing to hit Backspace and pressing Enter
instead, I suddenly noticed that it was alive after all. After some playing I
wanted to try it too on my desktop. But I didn't want to quit my current fvwm
session so I decided to start cwm in Xnest, with something like
--display :1. That didn't work, perhaps
cwm -d :1 would
work. It didn't either.
After some poking around in the code, I quickly hacked up support to start
cwm on a display, to be specified with the new
-d option. So that
worked, nice, now what? When doing the manpage bits for
noticed it didn't fully comply to the standards we have for other OpenBSD base
manpages. So another commit to cwm.
It was around this time that Antti Nykänen contacted me. Bernd committed a diff from him shortly after the import of cwm. And I was looking at some of Antti's other diffs when he wrote in and brought his other patches to my attention, which I committed over the weeks.
Although cwm is in our Xenocara tree, I don't want to divert too much from the original cwm. So that future versions can be merged with more ease. But after unsuccesfully prodding the original author about our changes, I decided to take on an entry in cwm's TODO list (G_Foo -> Foo). This changed the code very much, but as all the other changes, it's not OpenBSD specific. So merging it upstream shouldn't be too hard.
Then two weeks ago Niall O'Higgins (niallo@) also started working
on cwm. He and Todd Fries (todd@) commited some nice patches, like
auto-completion for the "exec" dialog and keyboard driven window movement.
As Niall explains
on his blog:
I felt it would be relatively easy to populate
the execution dialog with the executable files in the default path to add such
auto-completion. It was a little more involved than I originally anticipated,
owing to the fact that the existing cwm API for these auto-completing dialogs
was designed for selecting one item from many, not for entering input. With a
little hacking, though, I made a working patch. I find this feature very useful,
as it allows me to launch common applications like Firefox and Pidgin with a
minimal number of keystrokes. The next feature I added was based on something
that I saw in the Ion3 window manager - namely, an auto-completing
ssh-to dialog. Much like the window-switch dialog or the exec dialog,
the ssh-to dialog is populated with entries from your
~/.ssh/known_hosts file. OpenSSH has support for hashing these entries - the
ssh-to dialog simply skips hashed entries.
After a productive conversation with OpenBSD developer
Todd T. Fries I hacked up a simple patch which moved the active window with a
Vi-style M-hjkl keybinding. Todd improved on this initial hack and committed it
to the Xenocara tree. With these improvements, I find cwm quite comfortable and
have little use for the mouse.
As you can read on his blog, there are enough ideas left on how to improve cwm even further. I must say that I can't wait for my vacation to also add some features I'd like to see (e.g. nested application menu) in cwm.
Who says cwm can't look sexy?
Finally, I'd really like to thank Marius Eriksen (marius@) for writing cwm, in the first place.
(Comments are closed)