SCROTWM(1)                 OpenBSD Reference Manual                 SCROTWM(1)

NAME
     scrotwm - window manager for X11

SYNOPSIS
     scrotwm

DESCRIPTION
     scrotwm is a minimalistic window manager that tries to stay out of the
     way so that valuable screen real estate can be used for much more impor-
     tant stuff.  It has sane defaults and does not require one to learn a
     language to do any configuration.  It was written by hackers for hackers
     and it strives to be small, compact and fast.

     When scrotwm starts up, it reads settings from its configuration file,
     scrotwm.conf.  See the CONFIGURATION FILES section below.

     The following notation is used throughout this page:

           M       Meta
           S       Shift
           <Name>  Named key
           M1      Mouse button 1
           M3      Mouse button 3

     scrotwm is very simple in its use.  Most of the actions are initiated via
     key or mouse bindings.  See the BINDINGS section below for defaults and
     customizations.

CONFIGURATION FILES
     scrotwm first tries to open the user specific file, ~/.scrotwm.conf.  If
     that file is unavailable, it then tries to open the global configuration
     file /etc/scrotwm.conf.

     The format of the file is <keyword> = <setting>.  For example:

           color_focus = red

     Enabling or disabling an option is done by using 1 or 0 respectively.

     The file supports the following keywords:

           color_focus            Border color of the currently focussed win-
                                  dow.
           color_unfocus          Border color of unfocussed windows.
           bar_enabled            Enable or disable status bar.
           bar_border[x]          Color of the status bar border in screen x.
           bar_color[x]           Color of the status bar window in screen x.
           bar_font_color[x]      Color of the font in status bar in screen x.
           bar_font               Status bar font.
           bar_action             External script that populates additional
                                  information in the status bar, such as bat-
                                  tery life.
           bar_delay              Update frequency, in seconds, of external
                                  script that populates the status bar.
           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 bar_ac-
                                  tion script.
           spawn_term             External application that gets spawned when
                                  M-S-<Return> is used.
           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 re-
                                  sized.  For example, 0.6 is 60% of the phys-
                                  ical screen size.
           region                 Allocates a custom region, removing any au-
                                  todetected regions which occupy the same
                                  space on the screen.  Defined in the format
                                  screen[<idx>]:WIDTHxHEIGHT+X+Y, e.g.
                                  screen[1]:800x1200+0+0.
           screenshot_enabled     Enable or disable screenshot capability.
           screenshot_app         Set to the script that will take screen-
                                  shots.  It will be called with "full" or
                                  "window" as parameter 1 to indicate what
                                  screenshot action is expected.  The script
                                  shall handle those cases accordingly.
           term_width             Set a preferred minimum width for the termi-
                                  nal If this value is greater than 0, scrotwm
                                  will attempt to adjust the font sizes in the
                                  terminal to keep the terminal width above
                                  this number as the window is resized.  Only
                                  xterm(1) is currently supported.  The
                                  xterm(1) binary must not be setuid or set-
                                  gid, which it is by default on most systems.
                                  Users may need to set spawn term to use an
                                  alternate copy of the xterm(1) binary with-
                                  out the setgid bit set.
           modkey                 Change mod key.  Mod1 is generally the ALT
                                  key and Mod4 is the windows key on a PC.
           bind[x]                Bind key combo to action x.  See the
                                  BINDINGS section below.
           quirk[c:n]             Add "quirk" for windows with class c and
                                  name n.  See the QUIRKS section below.

     Colors need to be specified per the XQueryColor(3) specification and
     fonts need to be specified per the XQueryFont(3) specification.

BINDINGS
     scrotwm provides many functions (or actions) accessed via key or mouse
     bindings.

     The current mouse bindings are described below:

           M1               Focus window
           M-M1             Move window
           M-M3             Resize window
           M-S-M3           Resize window while maintaining it centered

     The default key bindings are described below:

           M-S-<Return>     spawn_term
           M-p              spawn_menu
           M-S-q            quit
           M-q              restart scrotwm
           M-<Space>        cycle_layout
           M-S-<Space>      reset_layout
           M-h              master_shrink
           M-l              master_grow
           M-,              master_add
           M-.              master_del
           M-S-,            stack_inc
           M-S-.            stack_del
           M-<Return>       swap_main
           M-j, M-<TAB>     focus_next
           M-k, M-S-<TAB>   focus_prev
           M-m              focus_main
           M-S-j            swap_next
           M-S-k            swap_prev
           M-b              bar_toggle
           M-x              wind_del
           M-S-x            wind_kill
           M-<n>            ws_n
           M-S-<n>          mvws_n
           M-<Right>        ws_next
           M-<Left>         ws_prev
           M-S-<Right>      screen_next
           M-S-<Left>       screen_prev
           M-s              screenshot_all
           M-S-s            screenshot_wind
           M-S-v            version
           M-t              float_toggle
           M-S <Delete>     spawn_lock
           M-S-i            spawn_initscr

     The action names and descriptions are listed below:

           spawn_term       Spawn a new terminal
           spawn_menu       Menu
           quit             Quit scrotwm
           restart          Restart scrotwm
           cycle_layout     Cycle layout
           reset_layout     Reset layout
           master_shrink    Shrink master area
           master_grow      Grow master area
           master_add       Add windows to master area
           master_del       Remove windows from master area
           stack_inc        Add columns/rows to stacking area
           stack_del        Remove columns/rows from stacking area
           swap_main        Move current window to master area
           focus_next       Focus next window in workspace
           focus_prev       Focus previous window in workspace
           focus_main       Focus on main window in workspace
           swap_next        Swap with next window in workspace
           swap_prev        Swap with previous window in workspace
           bar_toggle       Toggle status bar in all workspaces
           wind_del         Delete current window in workspace
           wind_kill        Destroy current window in workspace
           ws_n             Switch to workspace n, where n is 1 through 10
           mvws_n           Move current window to workspace n, where n is 1
                            through 10
           ws_next          Switch to next workspace with a window in it
           ws_prev          Switch to previous workspace with a window in it
           screen_next      Move pointer to next region
           screen_prev      Move pointer to previous region
           screenshot_all   Take screenshot of entire screen (if enabled)
           screenshot_wind  Take screenshot of selected window (if enabled)
           version          Toggle version in status bar
           float_toggle     Toggle focused window between tiled and floating
           spawn_lock       Lock screen
           spawn_initscr    Reinitialize physical screens

     Custom bindings in the configuration file are specified as follows:

           bind[<action>] = <keys>

     <action> is one of the actions listed above (or empty) and <keys> is in
     the form of zero or more modifier keys (MOD, Mod1, Shift, etc.) and one
     or more normal keys (b, space, etc.), separated by "+".  For example:

           bind[reset] = Mod4+q # bind Windows-key + q to reset
           bind[] = Mod1+q # unbind Alt + q

     Multiple key combinations may be bound to the same action.

QUIRKS
     scrotwm provides "quirks" which handle windows that must be treated spe-
     cially in a tiling window manager, such as some dialogs and fullscreen
     apps.

     The default quirks are described below:

           Firefox-bin:firefox-bin                 TRANSSZ
           Firefox:Dialog                          FLOAT
           Gimp:gimp                               FLOAT | ANYWHERE
           MPlayer:xv                              FLOAT | FULLSCREEN
           OpenOffice.org 2.4:VCLSalFrame          FLOAT
           OpenOffice.org 3.1:VCLSalFrame          FLOAT
           pcb:pcb                                 FLOAT
           xine:Xine Window                        FLOAT | ANYWHERE
           xine:xine Panel                         FLOAT | ANYWHERE
           xine:xine Video Fullscreen Window       FULLSCREEN | FLOAT
           Xitk:Xitk Combo                         FLOAT | ANYWHERE
           Xitk:Xine Window                        FLOAT | ANYWHERE
           XTerm:xterm                             XTERM_FONTADJ

     The quirks themselves are described below:

           FLOAT                  This window should not be tiled, but allowed
                                  to float freely.
           TRANSSZ                Adjusts size on transient windows that are
                                  too small using dialog_ratio (see
                                  CONFIGURATION FILES).
           ANYWHERE               Allow window to position itself, uncentered.
           XTERM_FONTADJ          Adjust xterm fonts when resizing.
           FULLSCREEN             Remove border to allow window to use full
                                  screen size.

     Custom quirks in the configuration file are specified as follows:

           quirk[<class>:<name>] = <quirk> [| <quirk> ...]

     <class> and <name> specify the window to which the quirk(s) apply, and
     <quirk> is one of the quirks from the list above.  For example:

           quirk[MPlayer:xv] = FLOAT | FULLSCREEN # let mplayer play
           quirk[pcb:pcb] = NONE  # remove existing quirk

     Note that spaces in <class> or <name> must be replaced by an underscore
     in the configuration.  The config entry for "xine:Xine Panel" would be:

           quirk[xine:Xine_Panel] = FLOAT

     You can obtain <class> and <name> by running xprop(1) and then clicking
     on the desired window.  In the following example the main window of Fire-
     fox was clicked:

           $ xprop | grep WM_CLASS
           WM_CLASS(STRING) = "Navigator", "Firefox"

FILES
     ~/.scrotwm.conf       scrotwm user specific settings.
     /etc/scrotwm.conf     scrotwm global settings.

HISTORY
     scrotwm was inspired by xmonad & dwm.

AUTHORS
     scrotwm was written by Marco Peereboom <marco@peereboom.us>, Ryan Thomas
     McBride <mcbride@countersiege.com> and Darrin Chandler
     <dwchandler@stilyagin.com>.

BUGS
     Currently the menu, invoked with M-p, depends on dmenu.

OpenBSD 4.5                      May 25, 2009                                5

$scrotwm$