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
     important 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
                                   window.
           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
                                   battery life.
           bar_delay               Update frequency, in seconds, of external
                                   script that populates the status bar.
           bar_at_bottom           Place the statusbar at the bottom of each
                                   region instead of the top.
           stack_enabled           Enable or disable displaying the current
                                   stacking algorithm in 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_action script.
           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.
           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, e.g.
                                   screen[1]:800x1200+0+0.
           term_width              Set a preferred minimum width for the
                                   terminal 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 setgid, which it is by default on
                                   most systems.  Users may need to set
                                   program[term] (see the PROGRAMS section) to
                                   use an alternate copy of the xterm(1)
                                   binary without the setgid bit set.
           title_class_enabled     Enable or disable displaying the window
                                   class in the status bar.  Enable by setting
                                   to 1
           title_name_enabled      Enable or disable displaying the window
                                   title in the status bar.  Enable by setting
                                   to 1
           window_name_enamed      Enable or disable displaying the window
                                   name in the status bar.  Enable by setting
                                   to 1
           modkey                  Change mod key.  Mod1 is generally the ALT
                                   key and Mod4 is the windows key on a PC.
           focus_mode              Using a value of follow_cursor will make
                                   the window manager focus the window under
                                   the mouse when switching workspaces and
                                   creating windows.
           disable_border          Remove border when bar is disabled and
                                   there is only one window on the screen.
           program[p]              Define new action to spawn a program p.
                                   See the PROGRAMS section below.
           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.

     To list the available fonts in your system see fc-list(1) or xlsfonts(1)
     manpages.  The xfontsel(1) application can help you to show the X Logical
     Font Description ("XLFD") used as setting in the keyword bar_font.

PROGRAMS
     scrotwm allows you to define custom actions to launch programs of your
     choice and then bind them the same as with built-in actions.  See the
     BINDINGS section below.

     The default programs are described below:

           term             xterm
           screenshot_all   screenshot.sh full
           screenshot_wind  screenshot.sh window
           lock             xlock
           initscr          initscreen.sh
           menu             dmenu_run -fn $bar_font -nb $bar_color -nf
                            $bar_font_color -sb $bar_border -sf $bar_color

     Custom programs in the configuration file are specified as follows:

           program[<name>] = <progpath> [<arg> [... <arg>]]

     <name> is any identifier that does not conflict with a built-in action or
     keyword, <progpath> is the desired program, and <arg> is zero or more
     arguments to the program.

     The following variables represent settable values in scrotwm (see the
     CONFIGURATION FILES section above), and may be used in the <arg> fields
     and will be substituted for values at the time the program is spawned:

           $bar_border
           $bar_color
           $bar_font
           $bar_font_color
           $color_focus
           $color_unfocus

     Example:

           program[ff] = /usr/local/bin/firefox http://scrotwm.org/
           bind[ff] = Mod+f # Now Mod+F launched firefox

     To undo the previous:

           bind[] = Mod+f
           program[ff] =

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>     term
           M-p              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-a              ws_prior
           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>     lock
           M-S-i            initscr

     The action names and descriptions are listed below:

           term             Spawn a new terminal (see PROGRAMS above)
           menu             Menu (see PROGRAMS above)
           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
           ws_prior         Switch to last visited workspace
           screen_next      Move pointer to next region
           screen_prev      Move pointer to previous region
           screenshot_all   Take screenshot of entire screen (if enabled) (see
                            PROGRAMS above)
           screenshot_wind  Take screenshot of selected window (if enabled)
                            (see PROGRAMS above)
           version          Toggle version in status bar
           float_toggle     Toggle focused window between tiled and floating
           lock             Lock screen (see PROGRAMS above)
           initscr          Reinitialize physical screens (see PROGRAMS above)

     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
     specially 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

     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
     Firefox was clicked:

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

     Note that grepping for WM_CLASS flips class and name.  In the example
     above the quirk entry would be:

           quirk[Firefox:Navigator] = FLOAT

SIGNALS
     Sending scrotwm a HUP signal will retstart it.

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.9                    January 18, 2011                    OpenBSD 4.9
