93ac77f595
heavily based on a diff from Nam Nguyen.
514 lines
11 KiB
Groff
514 lines
11 KiB
Groff
.\" $OpenBSD: cwmrc.5,v 1.72 2019/02/25 16:40:49 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: February 25 2019 $
|
|
.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.
|
|
.It Ic wm Ar name path
|
|
Every
|
|
.Ar name
|
|
entry is shown in the wm menu.
|
|
When selected, the window manager is replaced by
|
|
.Ar path .
|
|
.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-close-[n]
|
|
Close all windows in group n, where n is 1-9.
|
|
.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-close
|
|
Close 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 .
|