CWMRC(5)

NAME
cwmrc - calm window manager configuration file

DESCRIPTION
This manual page describes the cwm(1) configuration file.

The current line can be extended over multiple lines using a backslash (‘\’). Comments can be put anywhere in the file using a hash mark (‘#’), and extend to the end of the current line. Care should be taken when commenting out multi-line text: the comment is effective until the end of the entire block.

Arguments containing whitespace should be surrounded by double quotes (").

The following options are accepted:

autogroup group windowclass
autogroup group windowname,windowclass
    Automatically add new windows to group if their class property matches windowclass, or if their name and class properties match windowname and windowclass, respectively. The more specific last match wins. group is a number between 0 and 9. If group is 0, matching windows will not be added to any group; this may be used to override “sticky group mode”.

    The name and class values, respectively, for existing windows are both set in the WM_CLASS property and may be obtained using xprop(1).

bind keys command
    Cause the creation of a key binding, or replacement of a default key binding. The modifier keys come first, followed by a ‘-’.

    The following modifiers are recognised:

    C   The Control key.
    M   The Meta key.
    S   The Shift key.
    4   The Mod4 key (normally the windows key).

    The ‘-’ should be followed by a keysym name, taken from /usr/X11R6/include/X11/keysymdef.h. The command may either be one from the BIND COMMAND LIST (see below) or the command line that is to be executed.

    A special command keyword “unmap” can be used to remove the named key binding. This can be used to remove a binding which conflicts with an application.

borderwidth pixels
    Set the window border width to pixels.

color activeborder color
    Set the color of the active border.

color font color
    Set menu font color.

color selfont color
    Set font color for selected menu item.

color groupborder color
    Set the color of the border while grouping a window.

color inactiveborder color
    Set the color of the inactive border.

color menubg color
    Set menu background color.

color menufg color
    Set menu foreground color.

color urgencyborder color
    Set the color of the border of a window indicating urgency.

color ungroupborder color
    Set the color of the border while ungrouping a window.

command name path
    Every name entry is shown in the application menu. When selected, the defined path is executed with execve(2).

    The name entries term and lock have a special meaning. They point to the terminal and screen locking programs specified by key bindings. The defaults are xterm(1) and xlock(1), respectively.

fontname font
    Change the default font for Xft(3).

gap top bottom left right
    Define a “gap” in pixels at the edge of the screen, so that when a window is maximized it will not overlap this area. This “gap” can be used for applications such as xclock(1), where the user may wish to remain visible.

ignore windowname
    Ignore, and do not warp to, windows with the name windowname when drawing borders and cycling through windows.

mousebind buttons command
    Cause the creation of a mouse binding, or replacement of a default mouse binding. The modifier keys come first, followed by a ‘-’.

    The following modifiers are recognised:

    C   The Control key.
    M   The Meta key.
    S   The Shift key.
    4   The Mod4 key (normally the windows key).

    The ‘-’ should be followed by number:

    1   Left mouse button.
    2   Middle mouse button.
    3   Right mouse button.
    4   Scroll up mouse button.
    5   Scroll down mouse button.

    The command may be taken from the MOUSEBIND COMMAND LIST (see below).

moveamount pixels
    Set a default size for the keyboard movement bindings, in pixels. The default is 1.

snapdist pixels
    Minimum distance to snap-to adjacent edge, in pixels. The default is 0.

sticky yes|no
    Toggle sticky group mode. The default behavior for new windows is to not assign any group. By enabling sticky group mode, cwm(1) will assign new windows to the currently selected group.

EXAMPLE CONFIGURATION

    # Set default Xft(3) font
    fontname "sans-serif:pixelsize=14:bold"
    # Turn on sticky-group mode
    sticky yes
    # Any entry here is shown in the application menu
    command firefox		firefox
    command xmms		xmms
    command top		"xterm -e top"
    # Autogroup definitions
    autogroup 3 "aterm,XTerm"
    autogroup 3 "xterm,XTerm"
    # Ignore programs by that name by not drawing borders around them.
    ignore XMMS
    ignore xwi
    ignore xapm
    ignore xclock
    # Key bindings
    bind CM-r	label
    bind CS-Return	"xterm -e top"
    bind 4-o	unmap
    bind CM-equal	unmap
    bind CMS-equal	unmap
    bind C4-equal	vmaximize
    bind C4S-equal	hmaximize
    bind M-1	grouponly1
    bind M-2	grouponly2
    bind M-3	grouponly3
    bind MS-1	movetogroup1
    bind MS-2	movetogroup2
    bind MS-3	movetogroup3
    # Mouse bindings
    mousebind M-2	window_lower
    mousebind M-3	window_resize

BIND COMMAND LIST
restart
    Restart the running cwm(1).
quit
    Quit cwm(1).
terminal
    Spawn a new terminal.
lock
    Lock the screen.
search
    Launch window search menu.
menusearch
    Launch application search menu.
exec
    Launch “exec program” menu.
exec_wm
    Launch “exec WindowManager” menu.
ssh Launch “ssh” menu.
group[n]
    Select group n, where n is 1-9.
grouponly[n]
    Like group[n] but also hides the other groups.
nogroup
    Select all groups.
grouptoggle
    Toggle group membership of current window.
movetogroup[n]
    Hide current window from display and move to group n, where n is 1-9.
cyclegroup
    Forward cycle through groups.
rcyclegroup
    Reverse cycle through groups.
cycle
    Forward cycle through windows.
rcycle
    Reverse cycle through windows.
cycleingroup
    Forward cycle through windows in current group.
rcycleingroup
    Reverse cycle through windows in current group.
delete
    Delete current window.
hide
    Hide current window.
lower
    Lower current window.
raise
    Raise current window.
label
    Label current window.
freeze
    Freeze current window geometry.
sticky
    Stick current window to all groups (same as assigning to nogroup).
fullscreen
    Full-screen current window (gap + border removed).
maximize
    Maximize current window (gap + border honored).
vmaximize
    Vertically maximize current window (gap + border honored).
hmaximize
    Horizontally maximize current window (gap + border honored).
moveup
    Move window moveamount pixels up.
movedown
    Move window moveamount pixels down.
moveright
    Move window moveamount pixels right.
moveleft
    Move window moveamount pixels left.
bigmoveup
    Move window 10 times moveamount pixels up.
bigmovedown
    Move window 10 times moveamount pixels down.
bigmoveright
    Move window 10 times moveamount pixels right.
bigmoveleft
    Move window 10 times moveamount pixels left.
resizeup
    Resize window moveamount pixels up.
resizedown
    Resize window moveamount pixels down.
resizeright
    Resize window moveamount pixels right.
resizeleft
    Resize window moveamount pixels left.
bigresizeup
    Resize window 10 times moveamount pixels up.
bigresizedown
    Resize window 10 times moveamount pixels down.
bigresizeright
    Resize window 10 times moveamount pixels right.
bigresizeleft
    Resize window 10 times moveamount pixels left.
ptrmoveup
    Move pointer moveamount pixels up.
ptrmovedown
    Move pointer moveamount pixels down.
ptrmoveright
    Move pointer moveamount pixels right.
ptrmoveleft
    Move pointer moveamount pixels left.
bigptrmoveup
    Move pointer 10 times moveamount pixels up.
bigptrmovedown
    Move pointer 10 times moveamount pixels down.
bigptrmoveright
    Move pointer 10 times moveamount pixels right.
bigptrmoveleft
    Move pointer 10 times moveamount pixels left.
htile
    Current window is placed at the top of the screen and maximized horizontally, other windows in its group share remaining screen space.
vtile
    Current window is placed on the left of the screen and maximized vertically, other windows in its group share remaining screen space.

MOUSEBIND COMMAND LIST
window_move
    Move current window.
window_resize
    Resize current window.
window_lower
    Lower current window.
window_raise
    Raise current window.
window_hide
    Hide current window.
window_grouptoggle
    Toggle group membership of current window.
cyclegroup
    Forward cycle through groups.
rcyclegroup
    Reverse cycle through groups.
menu_group
    Launch group list.
menu_unhide
    Launch hidden window list.
menu_cmd
    Launch command list.

FILES
~/.cwmrc
    default cwm(1) configuration file

SEE ALSO
cwm(1)

HISTORY
The cwmrc file format first appeared in OpenBSD 4.4.