Manpages

SCROTWM(1) BSD General Commands 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.

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

modkey

Change mod key. Mod1 is generally the ALT key and Mod4 is the windows key on a PC.

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.

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

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

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

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 [AT] peereboom.us>, Ryan Thomas McBride <mcbride [AT] countersiege.com> and Darrin Chandler <dwchandler [AT] stilyagin.com>.

BUGS

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

BSD March 28, 2017 BSD