Contributed by maxime on from the calm-like-a-bomb dept.
Reader Rodolfo Gouveia (rgouveia) came up some days ago with this story:
For some time now cwm (calm window manager) has been part of the OpenBSD X.org installation. I've been fond of it since I tried it last year. Lately I've been exploring and would like to share my findings. I divided them in simple topics ending with my current configuration file (~/.cwmrc).
When starting cwm we get only a "blank desktop". I personaly use "xsetroot -solid steelblue" as a background. Let's start with the default key binding of Ctrl-Alt-Enter which will open a xterm.
(From now on I will use C to symbolize Ctrl, M for Alt, S for Shift, M1 left mouse button and M3 for the right mouse button. This follows the cwm man page notations.)
Now that we have that xterm open we can manipulate its window. C-M-f to make it full-screen or C-M-= to maximize it vertically. You can also move it using the mouse (M-M1) or resize it (M-M1-M2). Close it with C-M-x. You can run other applications by pressing M-?. This will pop up the exec dialog on which you can type the name of the application that you want to run. You will see it tries to auto-complete the name of the program. Just press Return when it shows what you want and the application will start. Add your favorite applications to .cwmrc so you can access them through the right mouse button M3.
Let's imagine that we have this xterm running and another program by its side: Firefox. We can alternate between both with M-tab. Or we could use virtual desktops. In cwm this can be accomplished with groups. Each window can be assigned to a group with C-M-[n], "n" being a number between 1 to 9, moving the focus of the mouse to the window we want and pressing C-M-g. You will see a temporary blue border around the window when it's assigned a group and red when it's removed.
In our example we will press C-M-1, move the cursor to the xterm and press C-M-g. We will do the same for firefox and assign it to group 2. Now even though you assigned different groups to each window, you're still seeing both. That happens because cwm is showing all groups (C-M-0). Let's just select group 2 (firefox) with C-M-2. This will show us all of group 2 windows. You can get back to xterm with C-M-1. You can also cycle through groups with M-right or M-left.
Inherit the group when opening a window
You will notice when you open a window that, by default, it won't be assigned membership to a specific group. We can change this by adding the option "sticky" in .cwmrc. That will make each window inherit the group in which was opened.
Automatic window grouping
We can also automatically assign a window to a group based on its class and/or name properties. By using xprop we can get these properties. xterm has a useful -class switch, which I use to set my ssh connection to my mail server simply as mail instead of the default xterm so I can distinguish it. Again, this configuration is done through .cwmrc.
So without further ado here's my .cwmrc:
# customize some bindings (C-control M-alt M1-button1) bind M-r exec bind CM-r reload bind CM-l label bind CM-t "xterm -e \"top -s 0.6\"" bind CM-m menusearch mousebind M-1 window_move mousebind CM-1 window_resize # application menu command pidgin pidgin command xchat xchat command silc "xterm -class silc -e mysilc.sh" command mail "xterm -class mail -e \"ssh my.mail.host\"" command firefox firefox # groups predefined, use xprop to get these from each program autogroup 2 "Navigator,Firefox" autogroup 3 "pidgin" autogroup 3 "xchat" autogroup 3 "xterm,silc" autogroup 4 "xterm,mail" # inherit current selected group sticky yes
(Comments are closed)