OpenBSD Journal

Developer blog: jasper@: cwm in Xenocara

Contributed by deanna on from the goodbye, ion dept.

Jasper Lievisse Adriaanse (jasper@) writes:

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 new cwm a spin. And boy, I was in for a surprise. At first I was like did it 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 cwm --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 -d I 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.


He continues: 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)


Comments
  1. By Simon Kuhnle (simon_k) simonkuhnle@web.de on

    I like that ssh-to-Feature very much. A nice thing to have.Thanks niallo@!
    The only thing that I don't like is that it's not a tiling window manager
    and so I have to set up window arrangements per hand.
    Or is there a way to get around this?

  2. By Timo Myyrä (195.212.29.75) on

    I just recently started to use the more keyboard-driven window managers and I found the dwm very nice alternative to my current KDE desktop.

    I tested the cwm and I agree that tiling wm would have been better. I think I give cwm a another shot at some point to further test it. '

    In any case, nice work on the wm.

  3. By Andrés Delfino (201.212.216.2) adelfino@gmail.com on

    It is good, but I **really** prefer ion's tiling and tabbed approach.

    As tuomo says, I shouldn't be the one who manages the windows.

    But choice is good.

    Comments
    1. By Gordon Willem Klok (129.128.23.57) gwk@openbsd.org on

      > It is good, but I **really** prefer ion's tiling and tabbed approach.
      >
      > As tuomo says, I shouldn't be the one who manages the windows.
      >
      > But choice is good.

      Give wmii in ports a try, I love it even less thought then ion about how windows should be positioned.

      Comments
      1. By sthen (85.158.44.149) on

        > > It is good, but I **really** prefer ion's tiling and tabbed approach.
        > >
        > > As tuomo says, I shouldn't be the one who manages the windows.
        > >
        > > But choice is good.
        >
        > Give wmii in ports a try, I love it even less thought then ion
        > about how windows should be positioned.

        Me too. Then I tried newer versions and hated them, so I'm glad
        I picked it up at 3.1 :-)

        (For those who didn't follow the earlier discussion, there are
        some...oddities...with ion licensing)

  4. By Anonymous Coward (91.5.54.145) on

    Never tried dwm or wmii?

    Comments
    1. By Simon Kuhnle (simon_k) on

      > Never tried dwm or wmii?
      I tried dwm, it's quite good. Though I prefer to built it myself,
      so I can have my own configuration.

      The wmii port is quite outdated though Benoit Chesneau sent in an update.

      Currently I'm stuck with ion3, which fits my needs and I'm just very used to it.

    2. By Krunch (217.136.161.78) on

      > Never tried dwm or wmii?

      There is xmonad too.

      Comments
      1. By Matthias Kilian (91.3.48.73) on

        > There is xmonad too.

        Not quite yet for OpenBSD. I've to finish the updates to lang/ghc and
        depending ports first. And even then xmonad will be only available for archs supported by ghc (currently i386 and amd64).

  5. By Anonymous Coward (64.233.230.46) on

    Ratpoison and Stumpwm are very nice, and keyboard-driven

    Comments
    1. By Anonymous Coward (86.142.42.239) on

      > Ratpoison and Stumpwm are very nice, and keyboard-driven

      What doesn't ratpoison provide in terms of a mouseless WM?

      Comments
      1. By Anonymous Coward (80.249.194.29) on

        > What doesn't ratpoison provide in terms of a mouseless WM?

        For one, it is no longer being developed (not to mention it is GPL).

        Comments
        1. By Anonymous Coward (64.233.230.46) on

          > > What doesn't ratpoison provide in terms of a mouseless WM?
          >
          > For one, it is no longer being developed (not to mention it is GPL).

          the developer is now working on Stumpwm which is written in common lisp and is actually nicer than Ratpoison (e.g. automatically saves group layouts); and it's my understanding since it's written in common lisp you can hack the window manager while running it. I have been using Stumpwm on OpenBSD with Clisp CVS (comes with instructions to build specifically for OpenBSD)

        2. By Matthias Kilian (91.3.59.53) on

          > > What doesn't ratpoison provide in terms of a mouseless WM?
          >
          > For one, it is no longer being developed (not to mention it is GPL).

          There's still traffic on the ratpoison-devel list, and Shawn Betts still responds to patches, so I wouldn't call it no longer developed.

      2. By Michael Stevens (195.47.237.201) mstevens@etla.org on http://www.mstevens.org/

        > > Ratpoison and Stumpwm are very nice, and keyboard-driven
        >
        > What doesn't ratpoison provide in terms of a mouseless WM?

        In my case, it keeps hanging. Obviously this is inconvenient.

      3. By jared rr spiegel (74.34.223.7) on

        > > Ratpoison and Stumpwm are very nice, and keyboard-driven
        >
        > What doesn't ratpoison provide in terms of a mouseless WM?

        i checked this cwm out in snapshot today (usually use ratpoison, have used evilwm before too); very nice initial reaction.

        i've been developing a nasty sensation in my left arm/wrist area that i am thinking might be due to C-a in screen(1) and M-a in ratpoison ( couldn't stand M-t or whatever default is... ); cwm's shortcuts are nicely dual-handed.

        granted everyone can always remap things, but ... one's priorities change a bit, right? :)

        really rocks to have this as an additional wm choice in -base.

        Comments
        1. By Anonymous Coward (70.8.242.105) on


          > i've been developing a nasty sensation in my left arm/wrist area that i am thinking might be due to C-a in screen(1) a

          i switched from gnu screen to dtach years ago. i won't be back. give it a try.

    2. By bsd (bsd) bsd on http://openbsd.rutgers.edu/

      > Ratpoison and Stumpwm are very nice, and keyboard-driven

      See ports/plan9/larswm. No matter what other wm I try, I always end up back there. Smaller than xterm and incredibly agile.

      Once you get used to the keyboard shortcuts, especially if you run multiple heads, you can outpace anyone using a point-and-drool interface.

  6. By Anonymous Coward (81.83.82.123) on

    At least your musical taste is good.. Mortiis always makes my day. Oh yes, life is plentiful but nothing lives.

    Comments
    1. By Steve Shockley (68.80.137.106) on

      > At least your musical taste is good..

      Perhaps, but the background in the screen shot looks like a modified Vista background...

      Comments
      1. By Anonymous Coward (70.173.172.228) on

        > > At least your musical taste is good..
        >
        > Perhaps, but the background in the screen shot looks like a modified Vista background...

        so?

      2. By Jasper Lievisse Adriaanse (jasper) on http://humppa.nl

        > > At least your musical taste is good..
        >
        > Perhaps, but the background in the screen shot looks like a modified Vista background...

        could be, just downloaded it somewhere, haven't tried vista, so i don't know if it matches :)

      3. By Anonymous Coward (204.209.209.129) on

        > > At least your musical taste is good..
        >
        > Perhaps, but the background in the screen shot looks like a modified Vista background...

        You are right... we should stay away from lines that curve and are different colour. Eventually we will have no choice but to have no background because everything else will have been done...

  7. By Anonymous Coward (69.248.199.119) on

    cwm is gorgeous. I see a little typo in the man page for cwm that's linked: "...most simplest..."

    I almost didn't want to point it out because it's entertaining.

  8. By Pierre-Yves Ritschard (pyr) pyr@spootnik.org on http://spootnik.org

    Now get working on good EVWMH support so cwm can get some pager love from netwmpager ;)

    Comments
    1. By niallo (82.195.149.9) niallo@niallo.net on http://niallohiggins.com

      > Now get working on good EVWMH support so cwm can get some pager love from netwmpager ;)
      >
      >

      Having a look at this now. Could be a fun hack :-)

Latest Articles

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]