cwm/cwmrc.5
oga 993fd4311f Allow a mouse binding to hide a window, and add a default keybinding for CMS-M3,
so it's hard to press by accident, but there if you need it.

requested (in a way) and tested by johan and todd.
2008-06-25 22:44:42 +00:00

342 lines
6.9 KiB
Groff

.\" $OpenBSD$
.\"
.\" Copyright (c) 2004,2005 Marius Aamodt Eriksen <marius@monkey.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.\" The following requests are required for all man pages.
.Dd $Mdocdate: June 25 2008 $
.Dt CWMRC 5
.Os
.Sh NAME
.Nm cwmrc
.Nd calm window manager configuration file
.Sh DESCRIPTION
This manual page describes the
.Xr cwm 1
configuration file.
The following options are accepted in the configuration file:
.Pp
.Bl -tag -width Ds -compact
.It Ic autogroup Ar group Dq windowclass
.It Ic autogroup Ar group Dq windowclass,windowname
Control automatic window grouping, based on the class and/or name
properties, where
.Ar group
is a number between 0 and 9.
If the group number is 0, then the window will not be grouped; this to
allow for
.Dq sticky
windows in sticky group mode.
.Pp
The class and name of a window may be obtained using
.Xr xprop 1 .
.Pp
.It Ic bind Ar keys Ar command
Cause the creation of a keybinding, or replacement of a default
keybinding.
The modifier keys come first, followed by a
.Sq - .
.Pp
The following modifiers are recognised:
.Pp
.Bl -tag -width Ds -offset indent -compact
.It C
The Control key.
.It M
The Meta key.
.It S
The Shift key.
.It 4
The Mod4 key (normally the windows key).
.El
.Pp
The
.Sq -
should be followed by either a keysym name, taken from
.Pa /usr/X11R6/include/X11/keysymdef.h ,
or a numerical keycode value enclosed in
.Dq [] .
The
.Ar command
may either be one from the
.Sx BIND COMMAND LIST
(see below) or the command line that is to be executed.
.Pp
A special
.Ar command
keyword
.Dq unmap
can be used to remove the named keybinding.
This can be used to remove a binding which conflicts with an
application.
.Pp
.It Ic command Ar name Ar path
Every
.Ar name
entry is shown in the application menu.
When selected, the defined
.Ar path
is executed with
.Xr execve 2 .
.Pp
The
.Ar name
entries
.Nm term
and
.Nm lock
have a special meaning.
They point to the terminal and screen locking programs specified by
keybindings.
The defaults are
.Xr xterm 1
and
.Xr xlock 1 ,
respectively.
.Pp
.It Ic fontname Ar font
Change the default
.Ar font
for
.Xr Xft 3 .
.Pp
.It Ic gap Ar top bottom left right
Define a
.Dq gap
in pixels at the edge of the screen, so that when a
window is maximized it will not overlap this area.
This
.Dq gap
can be used for applications such as
.Xr xclock 1 ,
where the user may wish to remain visible.
.Pp
.It Ic ignore Ar windowname
Ignore drawing borders around a window with the name
.Ar windowname .
.Pp
.It Ic mousebind Ar buttons Ar command
Cause the creation of a mouse binding, or replacement of a default
mouse binding.
The modifier keys come first, followed by a
.Sq - .
.Pb
The following modifiers are recognised:
.Pp
.Bl -tag -width Ds -offset indent -compact
.It C
The Control key.
.It M
The Meta key.
.It S
The Shift key.
.It 4
The Mod4 key (normally the windows key).
.El
.Pp
The
.Sq -
should be followed by number:
.Pb
.Bl -tag -width Ds -offset indent -compact
.Pp
.It 1
Left mouse button.
.It 2
Right mouse button.
.It 3
Middle mouse button.
.El
.Pp
The
.Ar command
may be taken from the
.Sx MOUSEBIND COMMAND LIST
(see below).
.Pp
.It Ic sticky Ic yes Ns \&| Ns Ic no
Toggle sticky group mode.
The default behavior for new windows is to not assign any group.
By enabling sticky group mode,
.Xr cwm 1
will assign new windows to the currently selected group.
.El
.Sh EXAMPLE CONFIGURATION
.Bd -literal
# 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
# Keybindings
bind CM-r label
bind CS-Return "xterm -e top"
bind 4-o unmap
# Mousebindings
mousebind M-2 window_lower
mousebind M-3 window_resize
.Ed
.Sh BIND COMMAND LIST
.Bl -tag -width 18n -compact
.It quit
quit
.Xr cwm 1
.It terminal
spawn a new terminal
.It lock
lock the screen
.It search
launch window search menu
.It menusearch
launch application search menu
.It exec
launch
.Dq exec program
menu
.It exec_wm
launch
.Dq exec WindowManager
menu
.It ssh
launch
.Dq ssh
menu
.It group[n]
select group n, where n is 1-9
.It nogroup
select all groups
.It grouptoggle
toggle group membership of a window
.It cyclegroup
forward cycle through groups
.It rcyclegroup
reverse cycle through groups
.It cycle
forward cycle through windows
.It rcycle
reverse cycle through windows
.It delete
delete a window
.It hide
hide a window
.It lower
lower a window
.It raise
raise a window
.It label
label a window
.It maximize
maximize a window full-screen
.It vmaximize
maximize a window vertically
.It moveup
move window 1 pixel up
.It movedown
move window 1 pixel down
.It moveright
move window 1 pixel right
.It moveleft
move window 1 pixel left
.It bigmoveup
move window 10 pixels up
.It bigmovedown
move window 10 pixels down
.It bigmoveright
move window 10 pixels right
.It bigmoveleft
move window 10 pixels left
.It resizeup
resize window 1 pixel up
.It resizedown
resize window 1 pixel down
.It resizeright
resize window 1 pixel right
.It resizeleft
resize window 1 pixel left
.It bigresizeup
resize window 10 pixels up
.It bigresizedown
resize window 10 pixels down
.It bigresizeright
resize window 10 pixels right
.It bigresizeleft
resize window 10 pixels left
.It ptrmoveup
move pointer 1 pixel up
.It ptrmovedown
move pointer 1 pixel down
.It ptrmoveright
move pointer 1 pixel right
.It ptrmoveleft
move pointer 1 pixel left
.It bigptrmoveup
move pointer 10 pixels up
.It bigptrmovedown
move pointer 10 pixels down
.It bigptrmoveright
move pointer 10 pixels right
.It bigptrmoveleft
move pointer 10 pixels left
.El
.Sh MOUSEBIND COMMAND LIST
.Bl -tag -width 18n -compact
.It window_move
move a window
.It window_resize
resize a window
.It window_lower
lower a window
.It window_hide
hide a window
.It window_grouptoggle
toggle group membership of a window
.It menu_group
launch group list
.It menu_unhide
launch group list
.It menu_cmd
launch command list
.El
.Sh FILES
.Bl -tag -width "~/.cwmrcXXX" -compact
.It Pa ~/.cwmrc
default
.Xr cwm 1
configuration file
.El
.Sh SEE ALSO
.Xr cwm 1
.Sh HISTORY
The
.Nm
file format first appeared in
.Ox 4.4 .