.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate$
+.Dd $Mdocdate: January 25 2012 $
.Dt SCROTWM 1
.Os
.Sh NAME
Enabling or disabling an option is done by using 1 or 0 respectively.
.Pp
The file supports the following keywords:
-.Pp
-.Bl -tag -width "title_class_enabledXXX" -offset indent -compact
-.It Cm autorun
+.Bl -tag -width 2m
+.It Ic autorun
Launch an application in a specified workspace at start-of-day.
Defined in the format ws[<idx>]:application, e.g. ws[2]:xterm launches an
xterm in workspace 2.
-.It Cm color_focus
-Border color of the currently focussed window.
-.It Cm color_unfocus
-Border color of unfocussed windows.
-.It Cm bar_enabled
-Enable or disable status bar.
-.It Cm bar_border Ns Bq Ar x
+.It Ic bar_action
+External script that populates additional information in the status bar,
+such as battery life.
+.It Ic bar_at_bottom
+Place the statusbar at the bottom of each region instead of the top.
+.It Ic bar_border Ns Bq Ar x
Color of the status bar border in screen
.Ar x .
-.It Cm bar_border_width
+.It Ic bar_border_width
Set status bar border thickness in pixels.
Disable border by setting to 0.
-.It Cm bar_color Ns Bq Ar x
+.It Ic bar_color Ns Bq Ar x
Color of the status bar window in screen
.Ar x .
-.It Cm bar_font_color Ns Bq Ar x
+.It Ic bar_delay
+Update frequency, in seconds, of external script that populates the status bar.
+.It Ic bar_enabled
+Enable or disable status bar.
+.It Ic bar_font
+Status bar font.
+.It Ic bar_font_color Ns Bq Ar x
Color of the font in status bar in screen
.Ar x .
-.It Cm bar_font
-Status bar font.
-.It Cm bar_action
-External script that populates additional information in the status bar,
-such as battery life.
-.It Cm bar_delay
-Update frequency, in seconds, of external script that populates the status bar.
-.It Cm bar_at_bottom
-Place the statusbar at the bottom of each region instead of the top.
-.It Cm stack_enabled
-Enable or disable displaying the current stacking algorithm in the status bar.
-.It Cm clock_enabled
+.It Ic bar_justify
+Justify the status bar text. Possible values are
+.Pa left ,
+.Pa center ,
+and
+.Pa right .
+.It Ic bind Ns Bq Ar x
+Bind key combo to action
+.Ar x .
+See the
+.Sx BINDINGS
+section below.
+.It Ic border_width
+Set window border thickness in pixels.
+Disable all borders by setting to 0.
+.It Ic clock_enabled
Enable or disable displaying the clock in the status bar.
Disable by setting to 0
so a custom clock could be used in the
.Pa bar_action
script.
-.It Cm dialog_ratio
+.It Ic color_focus
+Border color of the currently focussed window.
+.It Ic color_unfocus
+Border color of unfocussed windows.
+.It Ic dialog_ratio
Some applications have dialogue windows that are too small to be useful.
This ratio is the screen size to what they will be resized.
For example, 0.6 is 60% of the physical screen size.
-.It Cm layout
+.It Ic disable_border
+Remove border when bar is disabled and there is only one window on the screen.
+.It Ic focus_mode
+Using a value of
+.Pa follow_cursor
+will make the window manager focus the window
+under the mouse when switching workspaces and creating windows.
+.It Ic keyboard_mapping
+Clear all key bindings and load new key bindings from the specified file.
+This allows you to load pre-defined key bindings for your keyboard layout.
+See the
+.Sx KEYBOARD MAPPING FILES
+section below for a list of keyboard mapping files that have been provided
+for several keyboard layouts.
+.It Ic layout
Select layout to use at start-of-day.
Defined in the format
ws[idx]:master_grow:master_add:stack_inc:layout:always_raise:stack_mode, e.g.
.Pa master_add ,
.Pa master_del ,
.Pa stack_inc ,
-.Pa stack_del ,
+.Pa stack_dec ,
and
.Pa always_raise
for more information.
option.
.Pp
This setting is not retained at restart.
-.It Cm region
+.It Ic modkey
+Change mod key.
+Mod1 is generally the ALT key and Mod4 is the windows key on a PC.
+.It Ic program Ns Bq Ar p
+Define new action to spawn a program
+.Ar p .
+See the
+.Sx PROGRAMS
+section below.
+.It Ic quirk Ns Bq Ar c:n
+Add "quirk" for windows with class
+.Ar c
+and name
+.Ar n .
+See the
+.Sx QUIRKS
+section below.
+.It Ic region
Allocates a custom region, removing any autodetected regions which occupy the same
space on the screen.
Defined in the format screen[<idx>]:WIDTHxHEIGHT+X+Y,
To make a screen span multiple monitors, create a region big enough to cover
them all, e.g. screen[1]:2048x768+0+0 makes the screen span two monitors with
1024x768 resolution sitting one next to the other.
-.It Cm term_width
+.It Ic stack_enabled
+Enable or disable displaying the current stacking algorithm in the status bar.
+.It Ic term_width
Set a preferred minimum width for the terminal.
If this value is greater than 0,
.Nm
section) to use an alternate copy of the
.Xr xterm 1
binary without the setgid bit set.
-.It Cm title_class_enabled
+.It Ic title_class_enabled
Enable or disable displaying the window class in the status bar.
Enable by setting to 1.
-.It Cm title_name_enabled
+.It Ic title_name_enabled
Enable or disable displaying the window title in the status bar.
Enable by setting to 1.
-.It Cm urgent_enabled
+.It Ic urgent_enabled
Enable or disable the urgency hint.
Note that many terminal emulators require this to be enabled for it to
-propagate. In xterm, for example, one needs to add the following line
+propagate.
+In xterm, for example, one needs to add the following line
.Pa xterm.urgentOnBell: true
to
.Pa .Xdefaults .
-.It Cm window_name_enabled
-Enable or disable displaying the window name in the status bar.
-Enable by setting to 1.
-.It Cm verbose_layout
+.It Ic verbose_layout
Enable or disable displaying the current master and stack values in the status
bar.
Enable by setting to 1.
-.It Cm modkey
-Change mod key.
-Mod1 is generally the ALT key and Mod4 is the windows key on a PC.
-.It Cm focus_mode
-Using a value of
-.Pa follow_cursor
-will make the window manager focus the window
-under the mouse when switching workspaces and creating windows.
-.It Cm disable_border
-Remove border when bar is disabled and there is only one window on the screen.
-.It Cm border_width
-Set window border thickness in pixels.
-Disable all borders by setting to 0.
-.It Cm program Ns Bq Ar p
-Define new action to spawn a program
-.Ar p .
-See the
-.Sx PROGRAMS
-section below.
-.It Cm bind Ns Bq Ar x
-Bind key combo to action
-.Ar x .
-See the
-.Sx BINDINGS
-section below.
-.It Cm quirk Ns Bq Ar c:n
-Add "quirk" for windows with class
-.Ar c
-and name
-.Ar n .
-See the
-.Sx QUIRKS
-section below.
+.It Ic window_name_enabled
+Enable or disable displaying the window name in the status bar.
+Enable by setting to 1.
.El
.Pp
Colors need to be specified per the
or
.Xr xlsfonts 1
manpages.
-The
+The
.Xr xfontsel 1
application can help you to show the X Logical Font Description ("XLFD") used
as setting in the keyword
Example:
.Bd -literal -offset indent
program[ff] = /usr/local/bin/firefox http://scrotwm.org/
-bind[ff] = Mod+f # Now Mod+F launched firefox
+bind[ff] = Mod+Shift+b # Now Mod+Shift+B launches firefox
.Ed
.Pp
To undo the previous:
.Bd -literal -offset indent
-bind[] = Mod+f
+bind[] = Mod+Shift+b
program[ff] =
.Ed
-.Pp
.Sh BINDINGS
.Nm
provides many functions (or actions) accessed via key or mouse bindings.
restart
.It Cm M- Ns Aq Cm Space
cycle_layout
+.It Cm M-S- Ns Aq Cm \e
+flip_layout
.It Cm M-S- Ns Aq Cm Space
-reset_layout
+stack_reset
.It Cm M-h
master_shrink
.It Cm M-l
.It Cm M-S-,
stack_inc
.It Cm M-S-.
-stack_del
+stack_dec
.It Cm M- Ns Aq Cm Return
swap_main
.It Xo
.It Cm M-S-x
wind_kill
.It Cm M- Ns Aq Ar n
-.Ns ws_ Ns Ar n
+.Pf ws_ Ar n
.It Cm M-S- Ns Aq Ar n
-.Ns mvws_ Ns Ar n
+.Pf mvws_ Ar n
.It Cm M- Ns Aq Cm Right
ws_next
.It Cm M- Ns Aq Cm Left
ws_prev
+.It Cm M- Ns Aq Cm Up
+ws_next_all
+.It Cm M- Ns Aq Cm Down
+ws_prev_all
.It Cm M-a
ws_prior
.It Cm M-S- Ns Aq Cm Right
move_up
.It Cm M-S-]
move_down
+.It Cm M-S-/
+name_workspace
+.It Cm M-/
+search_workspace
+.It Cm M-f
+search_win
.El
.Pp
The action names and descriptions are listed below:
.Pp
-.Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
+.Bl -tag -width "M-j, M-<TAB>XXXX" -offset indent -compact
.It Cm term
Spawn a new terminal
(see
.Nm .
.It Cm cycle_layout
Cycle layout.
-.It Cm reset_layout
+.It Cm flip_layout
+Swap the master and stacking areas.
+.It Cm stack_reset
Reset layout.
.It Cm master_shrink
Shrink master area.
Remove windows from master area.
.It Cm stack_inc
Add columns/rows to stacking area.
-.It Cm stack_del
+.It Cm stack_dec
Remove columns/rows from stacking area.
.It Cm swap_main
Move current window to master area.
Switch to next workspace with a window in it.
.It Cm ws_prev
Switch to previous workspace with a window in it.
+.It Cm ws_next_all
+Switch to next workspace.
+.It Cm ws_prev_all
+Switch to previous workspace.
.It Cm ws_prior
Switch to last visited workspace.
.It Cm screen_next
Move a floating window a step upwards.
.It Cm move_down
Move a floating window a step downwards.
+.It Cm name_workspace
+Name the current workspace.
+.It Cm search_workspace
+Search for a workspace.
+.It Cm search_win
+Search the windows in the current workspace.
.El
.Pp
Custom bindings in the configuration file are specified as follows:
bind[] = Mod1+q # unbind Alt + q
.Ed
.Pp
+To use the currently defined
+.Ic modkey ,
+specify MOD as the modifier key.
+.Pp
Multiple key combinations may be bound to the same action.
+.Sh KEYBOARD MAPPING FILES
+Keyboard mapping files for several keyboard layouts are listed
+below.
+These files can be used with the
+.Pa keyboard_mapping
+setting to load pre-defined key bindings for the specified
+keyboard layout.
+.Pp
+.Bl -tag -width "scrotwm_XX.confXXX" -offset indent -compact
+.It Cm scrotwm_cz.conf
+Czech Republic keyboard layout
+.It Cm scrotwm_es.conf
+Spanish keyboard layout
+.It Cm scrotwm_fr.conf
+French keyboard layout
+.It Cm scrotwm_fr_ch.conf
+Swiss French keyboard layout
+.It Cm scrotwm_se.conf
+Swedish keyboard layout
+.It Cm scrotwm_us.conf
+United States keyboard layout
+.El
.Sh QUIRKS
.Nm
provides "quirks" which handle windows that must be treated specially
.Ed
.Pp
.Nm
-also automatically assigns quirks to windows based on the value
+also automatically assigns quirks to windows based on the value
of the window's _NET_WM_WINDOW_TYPE property as follows:
.Pp
.Bl -tag -width "_NET_WM_WINDOW_TYPE_TOOLBAR<TAB>XXX" -offset indent -compact
FLOAT
.El
.Pp
-In all other cases, no automatic quirks are assigned to the window.
+In all other cases, no automatic quirks are assigned to the window.
Quirks specified in the configuration file override the automatic quirks.
.Sh EWMH
.Nm
-partially implements the Extended Window Manager Hints (EWMH) specification.
+partially implements the Extended Window Manager Hints (EWMH) specification.
This enables controlling windows as well as
.Nm
-itself from external scripts and programs. This is achieved by
+itself from external scripts and programs.
+This is achieved by
.Nm
-responding to certain ClientMessage events. From the terminal these events
+responding to certain ClientMessage events.
+From the terminal these events
can be conveniently sent using tools such as
.Xr wmctrl 1
and
For the
actual format of these ClientMessage events, see the EWMH specification.
.Pp
-The id of the currently focused window is stored in the _NET_ACTIVE_WINDOW
-property of the root window. This can be used for example to retrieve the
+The id of the currently focused window is stored in the _NET_ACTIVE_WINDOW
+property of the root window.
+This can be used for example to retrieve the
title of the currently active window with
.Xr xprop 1
and
$ xprop \-id $WINDOWID WM_NAME | grep \-o "\\".*\\""
.Ed
.Pp
-A window can be focused by sending a _NET_ACTIVE_WINDOW client message
-to the root window. For example, using
+A window can be focused by sending a _NET_ACTIVE_WINDOW client message
+to the root window.
+For example, using
.Xr wmctrl 1
to send the message
(assuming 0x4a0000b is the id of the window to be focused):
$ wmctrl \-i \-a 0x4a0000b
.Ed
.Pp
-Windows can be closed by sending a _NET_CLOSE_WINDOW client message
-to the root window. For example, using
+Windows can be closed by sending a _NET_CLOSE_WINDOW client message
+to the root window.
+For example, using
.Xr wmctrl 1
to send the message
(assuming 0x4a0000b is the id of the window to be closed):
$ wmctrl \-i \-c 0x4a0000b
.Ed
.Pp
-Windows can be floated and un-floated by adding or removing the
-_NET_WM_STATE_ABOVE atom from the _NET_WM_STATE property of the window.
-This can be achieved by sending a _NET_WM_STATE client message to the
-root window. For example, the following toggles the floating state of
+Windows can be floated and un-floated by adding or removing the
+_NET_WM_STATE_ABOVE atom from the _NET_WM_STATE property of the window.
+This can be achieved by sending a _NET_WM_STATE client message to the
+root window.
+For example, the following toggles the floating state of
a window using
.Xr wmctrl 1
to send the message (assuming 0x4a0000b is the id of the window floated
$ wmctrl \-i \-r 0x4a0000b \-b toggle,_NET_WM_STATE_ABOVE
.Ed
.Pp
-Floating windows can also be resized and moved by sending a
-_NET_MOVERESIZE_WINDOW client message to the root window. For example,
+Floating windows can also be resized and moved by sending a
+_NET_MOVERESIZE_WINDOW client message to the root window.
+For example,
using
.Xr wmctrl 1
to send the message (assuming 0x4a0000b is the id of
This moves the window to (100,50) and resizes it to 640x480.
.Pp
Any _NET_MOVERESIZE_WINDOW events received for stacked windows are ignored.
-.Pp
.Sh SIGNALS
Sending
.Nm
.It Cm Pierre-Yves Ritschard Aq pyr@spootnik.org
.It Cm Tuukka Kataja Aq stuge@xor.fi
.It Cm Jason L. Wright Aq jason@thought.net
+.It Cm Reginald Kennedy Aq rk@rejii.com
.El
-.Sh BUGS
-Currently the menu, invoked with
-.Cm M-p ,
-depends on dmenu.