6fd1cc10d9
re-proposed by Julien Steinhauser with an updated diff. Apparently this was in the original calmnwm. However, expand the original idea and let clients 'snap' to edges instead, neatly allowing key bindings that snap to adjacent edges (i.e. corners) as well. No default bindings assigned.
506 lines
11 KiB
Groff
506 lines
11 KiB
Groff
.\" $OpenBSD: cwmrc.5,v 1.69 2017/12/07 16:25:33 okan Exp $
|
|
.\"
|
|
.\" 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.
|
|
.\"
|
|
.Dd $Mdocdate: December 7 2017 $
|
|
.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.
|
|
.Pp
|
|
The current line can be extended over multiple lines using a backslash
|
|
.Pq Sq \e .
|
|
Comments can be put anywhere in the file using a hash mark
|
|
.Pq Sq # ,
|
|
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.
|
|
.Pp
|
|
Arguments containing whitespace should be surrounded by double quotes
|
|
.Pq \&" .
|
|
.Pp
|
|
The following options are accepted:
|
|
.Pp
|
|
.Bl -tag -width Ds -compact
|
|
.It Ic autogroup Ar group windowclass
|
|
.It Ic autogroup Ar group windowname,windowclass
|
|
Automatically add new windows to
|
|
.Ar group
|
|
if their class property matches
|
|
.Ar windowclass ,
|
|
or if their name and class properties match
|
|
.Ar windowname
|
|
and
|
|
.Ar windowclass ,
|
|
respectively.
|
|
The more specific last match wins.
|
|
.Ar group
|
|
is a number between 0 and 9.
|
|
If
|
|
.Ar group
|
|
is 0, matching windows will not be added to any group; this may be
|
|
used to override
|
|
.Dq sticky group mode .
|
|
.Pp
|
|
The name and class values, respectively, for existing windows
|
|
are both set in the WM_CLASS property and may be obtained using
|
|
.Xr xprop 1 .
|
|
.Pp
|
|
.It Ic bind-key Ar key function
|
|
Bind or rebind key
|
|
.Ar key
|
|
to
|
|
.Ar function .
|
|
The modifier keys come first, followed by a
|
|
.Sq - ,
|
|
then a keysym name, taken from
|
|
.Pa /usr/X11R6/include/X11/keysymdef.h .
|
|
.Pp
|
|
The following modifiers are recognised:
|
|
.Pp
|
|
.Bl -tag -width Ds -offset indent -compact
|
|
.It Ic C
|
|
Control key.
|
|
.It Ic M
|
|
Meta key.
|
|
.It Ic S
|
|
Shift key.
|
|
.It Ic 4
|
|
Mod4 (windows) key.
|
|
.El
|
|
.Pp
|
|
The
|
|
.Ar function
|
|
may either be one from the
|
|
.Sx BIND FUNCTION LIST
|
|
(see below) or the command line that is to be executed.
|
|
.Pp
|
|
.It Ic bind-mouse Ar button function
|
|
Bind or rebind button
|
|
.Ar button
|
|
to
|
|
.Ar function .
|
|
The modifier keys come first, followed by a
|
|
.Sq - ,
|
|
then the button number.
|
|
.Pp
|
|
The following modifiers are recognised:
|
|
.Pp
|
|
.Bl -tag -width Ds -offset indent -compact
|
|
.It Ic C
|
|
Control key.
|
|
.It Ic M
|
|
Meta key.
|
|
.It Ic S
|
|
Shift key.
|
|
.It Ic 4
|
|
Mod4 (windows) key.
|
|
.El
|
|
.Pp
|
|
The following buttons are recognised:
|
|
.Pp
|
|
.Bl -tag -width Ds -offset indent -compact
|
|
.It Ic 1
|
|
Left mouse button.
|
|
.It Ic 2
|
|
Middle mouse button.
|
|
.It Ic 3
|
|
Right mouse button.
|
|
.It Ic 4
|
|
Scroll up mouse button.
|
|
.It Ic 5
|
|
Scroll down mouse button.
|
|
.El
|
|
.Pp
|
|
The
|
|
.Ar function
|
|
may be taken from the
|
|
.Sx BIND FUNCTION LIST
|
|
(see below) or the command line that is to be executed.
|
|
.Pp
|
|
.It Ic borderwidth Ar pixels
|
|
Set the window border width to
|
|
.Ar pixels .
|
|
.Pp
|
|
.It Ic color activeborder Ar color
|
|
Set the color of the active border.
|
|
.Pp
|
|
.It Ic color font Ar color
|
|
Set menu font color.
|
|
.Pp
|
|
.It Ic color selfont Ar color
|
|
Set font color for selected menu item.
|
|
.Pp
|
|
.It Ic color groupborder Ar color
|
|
Set the color of the border while grouping a window.
|
|
.Pp
|
|
.It Ic color inactiveborder Ar color
|
|
Set the color of the inactive border.
|
|
.Pp
|
|
.It Ic color menubg Ar color
|
|
Set menu background color.
|
|
.Pp
|
|
.It Ic color menufg Ar color
|
|
Set menu foreground color.
|
|
.Pp
|
|
.It Ic color urgencyborder Ar color
|
|
Set the color of the border of a window indicating urgency.
|
|
.Pp
|
|
.It Ic color ungroupborder Ar color
|
|
Set the color of the border while ungrouping a window.
|
|
.Pp
|
|
.It Ic command Ar name 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
|
|
key bindings.
|
|
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, and do not warp to, windows with the name
|
|
.Ar windowname
|
|
when drawing borders and cycling through windows.
|
|
.Pp
|
|
.It Ic moveamount Ar pixels
|
|
Set a default size for the keyboard movement bindings,
|
|
in pixels.
|
|
The default is 1.
|
|
.Pp
|
|
.It Ic snapdist Ar pixels
|
|
Minimum distance to snap-to adjacent edge, in pixels.
|
|
The default is 0.
|
|
.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.
|
|
.Pp
|
|
.It Ic unbind-key Ar key
|
|
Unbind function bound to
|
|
.Ar key .
|
|
A special
|
|
.Ar key
|
|
keyword
|
|
.Dq all
|
|
can be used to unbind all keys.
|
|
.Pp
|
|
.It Ic unbind-mouse Ar button
|
|
Unbind function bound to
|
|
.Ar button .
|
|
A special
|
|
.Ar button
|
|
keyword
|
|
.Dq all
|
|
can be used to unbind all buttons.
|
|
.El
|
|
.Sh BIND FUNCTION LIST
|
|
.Bl -tag -width 23n -compact
|
|
.It restart
|
|
Restart the running
|
|
.Xr cwm 1 .
|
|
.It quit
|
|
Quit
|
|
.Xr cwm 1 .
|
|
.It terminal
|
|
Spawn a new terminal.
|
|
.It lock
|
|
Lock the screen.
|
|
.It menu-window
|
|
Launch window search menu.
|
|
.It menu-window-hidden
|
|
Launch hidden window search menu.
|
|
.It menu-cmd
|
|
Launch application search menu.
|
|
.It menu-group
|
|
Launch group search menu.
|
|
.It menu-exec
|
|
Launch
|
|
.Dq exec program
|
|
menu.
|
|
.It menu-exec-wm
|
|
Launch
|
|
.Dq exec WindowManager
|
|
menu.
|
|
.It menu-ssh
|
|
Launch
|
|
.Dq ssh
|
|
menu.
|
|
.It group-toggle-[n]
|
|
Toggle visibility of group n, where n is 1-9.
|
|
.It group-only-[n]
|
|
Show only group n, where n is 1-9, hiding other groups.
|
|
.It group-toggle-all
|
|
Toggle visibility of all groups.
|
|
.It window-group
|
|
Toggle group membership of current window.
|
|
.It window-movetogroup-[n]
|
|
Hide current window from display and move to group n, where n is 1-9.
|
|
.It group-cycle
|
|
Forward cycle through groups.
|
|
.It group-rcycle
|
|
Reverse cycle through groups.
|
|
.It window-cycle
|
|
Forward cycle through windows.
|
|
.It window-rcycle
|
|
Reverse cycle through windows.
|
|
.It window-cycle-ingroup
|
|
Forward cycle through windows in current group.
|
|
.It window-rcycle-ingroup
|
|
Reverse cycle through windows in current group.
|
|
.It window-delete
|
|
Delete current window.
|
|
.It window-hide
|
|
Hide current window.
|
|
.It window-lower
|
|
Lower current window.
|
|
.It window-raise
|
|
Raise current window.
|
|
.It window-menu-label
|
|
Label current window.
|
|
.It window-freeze
|
|
Freeze current window geometry.
|
|
.It window-stick
|
|
Stick current window to all groups (same as assigning to nogroup).
|
|
.It window-fullscreen
|
|
Full-screen current window (gap + border removed).
|
|
.It window-maximize
|
|
Maximize current window (gap + border honored).
|
|
.It window-vmaximize
|
|
Vertically maximize current window (gap + border honored).
|
|
.It window-hmaximize
|
|
Horizontally maximize current window (gap + border honored).
|
|
.It window-htile
|
|
Current window is placed at the top of the screen, maximized
|
|
horizontally and resized to half of the vertical screen space.
|
|
Other windows in its group share remaining screen space.
|
|
.It window-vtile
|
|
Current window is placed on the left of the screen, maximized vertically
|
|
and resized to half of the horizontal screen space.
|
|
Other windows in its group share remaining screen space.
|
|
.It window-move
|
|
Move current window.
|
|
.It window-resize
|
|
Resize current window.
|
|
.It window-move-up
|
|
Move window
|
|
.Ar moveamount
|
|
pixels up.
|
|
.It window-move-down
|
|
Move window
|
|
.Ar moveamount
|
|
pixels down.
|
|
.It window-move-right
|
|
Move window
|
|
.Ar moveamount
|
|
pixels right.
|
|
.It window-move-left
|
|
Move window
|
|
.Ar moveamount
|
|
pixels left.
|
|
.It window-move-up-big
|
|
Move window 10 times
|
|
.Ar moveamount
|
|
pixels up.
|
|
.It window-move-down-big
|
|
Move window 10 times
|
|
.Ar moveamount
|
|
pixels down.
|
|
.It window-move-right-big
|
|
Move window 10 times
|
|
.Ar moveamount
|
|
pixels right.
|
|
.It window-move-left-big
|
|
Move window 10 times
|
|
.Ar moveamount
|
|
pixels left.
|
|
.It window-resize-up
|
|
Resize window
|
|
.Ar moveamount
|
|
pixels up.
|
|
.It window-resize-down
|
|
Resize window
|
|
.Ar moveamount
|
|
pixels down.
|
|
.It window-resize-right
|
|
Resize window
|
|
.Ar moveamount
|
|
pixels right.
|
|
.It window-resize-left
|
|
Resize window
|
|
.Ar moveamount
|
|
pixels left.
|
|
.It window-resize-up-big
|
|
Resize window 10 times
|
|
.Ar moveamount
|
|
pixels up.
|
|
.It window-resize-down-big
|
|
Resize window 10 times
|
|
.Ar moveamount
|
|
pixels down.
|
|
.It window-resize-right-big
|
|
Resize window 10 times
|
|
.Ar moveamount
|
|
pixels right.
|
|
.It window-resize-left-big
|
|
Resize window 10 times
|
|
.Ar moveamount
|
|
pixels left.
|
|
.It window-snap-up
|
|
Snap window to top edge.
|
|
.It window-snap-down
|
|
Snap window to bottom edge.
|
|
.It window-snap-right
|
|
Snap window to right edge.
|
|
.It window-snap-left
|
|
Snap window to left edge.
|
|
.It window-snap-up-right
|
|
Snap window to top-right corner.
|
|
.It window-snap-up-left
|
|
Snap window to top-left corner.
|
|
.It window-snap-down-right
|
|
Snap window to bottom-right corner.
|
|
.It window-snap-down-left
|
|
Snap window to bottom-left corner.
|
|
.It pointer-move-up
|
|
Move pointer
|
|
.Ar moveamount
|
|
pixels up.
|
|
.It pointer-move-down
|
|
Move pointer
|
|
.Ar moveamount
|
|
pixels down.
|
|
.It pointer-move-right
|
|
Move pointer
|
|
.Ar moveamount
|
|
pixels right.
|
|
.It pointer-move-left
|
|
Move pointer
|
|
.Ar moveamount
|
|
pixels left.
|
|
.It pointer-move-up-big
|
|
Move pointer 10 times
|
|
.Ar moveamount
|
|
pixels up.
|
|
.It pointer-move-down-big
|
|
Move pointer 10 times
|
|
.Ar moveamount
|
|
pixels down.
|
|
.It pointer-move-right-big
|
|
Move pointer 10 times
|
|
.Ar moveamount
|
|
pixels right.
|
|
.It pointer-move-left-big
|
|
Move pointer 10 times
|
|
.Ar moveamount
|
|
pixels left.
|
|
.El
|
|
.Sh FILES
|
|
.Bl -tag -width "~/.cwmrcXXX" -compact
|
|
.It Pa ~/.cwmrc
|
|
Default
|
|
.Xr cwm 1
|
|
configuration file.
|
|
.El
|
|
.Sh EXAMPLES
|
|
.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
|
|
|
|
# Key bindings
|
|
bind-key CM-r window-menu-label
|
|
bind-key CS-Return "xterm -e top"
|
|
bind-key C4-equal window-vmaximize
|
|
bind-key C4S-equal window-hmaximize
|
|
bind-key M-1 group-only-1
|
|
bind-key M-2 group-only-2
|
|
bind-key M-3 group-only-3
|
|
bind-key MS-1 window-movetogroup-1
|
|
bind-key MS-2 window-movetogroup-2
|
|
bind-key MS-3 window-movetogroup-3
|
|
unbind-key 4-o
|
|
unbind-key CM-equal
|
|
unbind-key CMS-equal
|
|
|
|
# Mouse bindings
|
|
bind-mouse M-2 window-lower
|
|
bind-mouse M-3 window-resize
|
|
.Ed
|
|
.Sh SEE ALSO
|
|
.Xr cwm 1
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
file format first appeared in
|
|
.Ox 4.4 .
|