.\" Title: bspwm
.\" Author: [see the "Author" section]
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\" Date: 11/10/2013
+.\" Date: 08/07/2015
.\" Manual: Bspwm Manual
-.\" Source: Bspwm 0.8.6
+.\" Source: Bspwm 0.9
.\" Language: English
.\"
-.TH "BSPWM" "1" "11/10/2013" "Bspwm 0\&.8\&.6" "Bspwm Manual"
+.TH "BSPWM" "1" "08/07/2015" "Bspwm 0\&.9" "Bspwm Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.sp
New windows are inserted in the tree as close as possible to the focused window\&.
.sp
-There is only two splitting modes: \fIautomatic\fR and \fImanual\fR\&.
+There are only two splitting modes: \fIautomatic\fR and \fImanual\fR\&.
.sp
The default mode is \fIautomatic\fR\&. The \fImanual\fR mode is entered by sending a \fBpreselection\fR message\&.
.sp
.RE
.\}
.sp
-Same departure, but the mode is \fImanual\fR, and a \fBwindow \-\-presel up\fR message was sent beforehand:
+Same action, but the mode is \fImanual\fR, and a \fBwindow \-\-presel up\fR message was sent beforehand:
.sp
.if n \{\
.RS 4
.RE
.\}
.sp
-For obvious reasons, neither desktops nor monitors names may be valid descriptive selectors\&.
+For obvious reasons, neither desktop nor monitor names may be valid descriptive selectors\&.
.SS "Window"
.sp
Select a window\&.
.\}
.nf
WINDOW_SEL := <window_id>
- | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[\&.floating|\&.tiled][\&.like|\&.unlike][\&.manual][\&.urgent][\&.local]
+ | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[\&.floating|\&.tiled][\&.like|\&.unlike][\&.manual|\&.automatic][\&.urgent][\&.local][\&.unfocused]
.fi
.if n \{\
.RE
.PP
manual
.RS 4
-Only consider windows in manual splitting mode (see
-\fB\-\-presel\fR)\&.
+Only consider windows in manual splitting mode\&.
+.RE
+.PP
+automatic
+.RS 4
+Only consider windows in automatic splitting mode\&.
.RE
.PP
local
.RS 4
Only consider urgent windows\&.
.RE
+.PP
+unfocused
+.RS 4
+Only consider windows other than the focused window\&.
+.RE
.RE
.SS "Desktop"
.sp
.\}
.nf
DESKTOP_SEL := <desktop_name>
- | ^<n>
- | (CYCLE_DIR|last|focused|older|newer)[\&.occupied|\&.free][\&.urgent][\&.local]
+ | [MONITOR_SEL:]^<n>
+ | (CYCLE_DIR|last|[MONITOR_SEL:]focused|older|newer)[\&.occupied|\&.free][\&.urgent][\&.local]
.fi
.if n \{\
.RE
Only consider monitors where the focused desktop is free\&.
.RE
.RE
+.SH "WINDOW STATES"
+.PP
+floating
+.RS 4
+Is above any tiled window and can be moved/resized freely\&. Although it doesn\(cqt occupy any tiling space, it is still part of the window tree\&.
+.RE
+.PP
+pseudo_tiled
+.RS 4
+Has an unrestricted size while being centered in its tiling space\&.
+.RE
+.PP
+fullscreen
+.RS 4
+Fills its monitor rectangle, is above all the other windows and has no borders\&.
+.RE
+.PP
+locked
+.RS 4
+Ignores the
+\fBclose\fR
+message\&.
+.RE
+.PP
+sticky
+.RS 4
+Stays in the focused desktop of its monitor\&.
+.RE
+.PP
+private
+.RS 4
+Tries to keep the same tiling position/size\&.
+.RE
.SH "COMMANDS"
.SS "Window"
.sp
< 1)\&.
.RE
.PP
-\fB\-e\fR, \fB\-\-edge\fR \fIDIR\fR \fIRATIO\fR|pull|push
+\fB\-e\fR, \fB\-\-edge\fR \fIDIR\fR \fIRATIO\fR|\(+-\fIPIXELS\fR
.RS 4
-Set the splitting ratio (or pull, or push) the edge located in the given direction in relation to the selected window\&.
+Set or change the splitting ratio of the edge located in the given direction in relation to the selected window\&.
.RE
.PP
\fB\-R\fR, \fB\-\-rotate\fR \fIDIR\fR \fI90|270|180\fR
Rotate the tree holding the edge located in the given direction in relation to the selected window\&.
.RE
.PP
-\fB\-t\fR, \fB\-\-toggle\fR floating|fullscreen|locked|sticky|private[=on|off]
+\fB\-t\fR, \fB\-\-toggle\fR floating|fullscreen|pseudo_tiled|locked|sticky|private[=on|off]
.RS 4
Set or toggle the given state for the selected window\&.
.RE
Swap the selected desktop with the given desktop\&.
.RE
.PP
+\fB\-b\fR, \fB\-\-bubble\fR \fICYCLE_DIR\fR
+.RS 4
+Bubble the selected desktop in the given direction\&.
+.RE
+.PP
\fB\-r\fR, \fB\-\-remove\fR
.RS 4
Remove the selected desktop\&.
Rotate the tree of the selected desktop\&.
.RE
.PP
+\fB\-E\fR, \fB\-\-equalize\fR
+.RS 4
+Reset the split ratios of the tree of the selected desktop\&.
+.RE
+.PP
\fB\-B\fR, \fB\-\-balance\fR
.RS 4
Adjust the split ratios of the tree of the selected desktop so that all windows occupy the same area\&.
Remove desktops with the given names\&.
.RE
.PP
-\fB\-n\fR, \fB\-\-rename\fR <new_name>
+\fB\-o\fR, \fB\-\-reorder\-desktops\fR <name>\&...
.RS 4
-Rename the selected monitor\&.
+Reorder the desktops of the selected monitor to match the given order\&.
.RE
.PP
\fB\-d\fR, \fB\-\-reset\-desktops\fR <name>\&...
.RS 4
-Rename, add or remove desktops depending on whether the number of given names is equal, superior or inferior to the number of existing desktops\&.
+Rename, add or remove desktops depending on whether the number of given names is equal, superior or inferior to the number of existing desktops\&. Incidentally reset the settings of the existing desktops\&.
+.RE
+.PP
+\fB\-n\fR, \fB\-\-rename\fR <new_name>
+.RS 4
+Rename the selected monitor\&.
.RE
.PP
\fB\-s\fR, \fB\-\-swap\fR \fIMONITOR_SEL\fR
Enable or disable the recording of window focus history\&.
.RE
.PP
-\fB\-\-subscribe\fR
+\fB\-\-subscribe\fR (all|report|monitor|desktop|window|\&...)*
.RS 4
-Continuously print status informations on standard output\&.
+Continuously print status information\&.
+.RE
+.PP
+\fB\-\-get\-status\fR
+.RS 4
+Print the current status information\&.
.RE
.RE
.SS "Pointer"
Terminate the current pointer action\&.
.RE
.RE
+.SS "Rule"
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBGeneral Syntax\fR
+.RS 4
+.sp
+rule \fIOPTIONS\fR
+.RE
+.sp
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.br
+.ps +1
+\fBOptions\fR
+.RS 4
+.PP
+\fB\-a\fR, \fB\-\-add\fR <class_name>|<instance_name>|* [\fB\-o\fR|\fB\-\-one\-shot\fR] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|window=WINDOW_SEL] [(floating|fullscreen|pseudo_tiled|locked|sticky|private|center|follow|manage|focus|border)=(on|off)] [split_dir=DIR] [split_ratio=RATIO]
+.RS 4
+Create a new rule\&.
+.RE
+.PP
+\fB\-r\fR, \fB\-\-remove\fR ^<n>|head|tail|<class_name>|<instance_name>|*\&...
+.RS 4
+Remove the given rules\&.
+.RE
+.PP
+\fB\-l\fR, \fB\-\-list\fR [<class_name>|<instance_name>|*]
+.RS 4
+List the rules\&.
+.RE
+.RE
.SS "Config"
.sp
.it 1 an-trap
\fBGeneral Syntax\fR
.RS 4
.PP
-config [\-m \fIMONITOR_SEL\fR|\-d \fIDESKTOP_SEL\fR] <key> [<value>]
+config [\-m \fIMONITOR_SEL\fR|\-d \fIDESKTOP_SEL\fR|\-w \fIWINDOW_SEL\fR] <key> [<value>]
.RS 4
Get or set the value of <key>\&.
.RE
Quit with an optional exit status\&.
.RE
.RE
-.SH "SETTINGS"
-.sp
-Colors are either X color names or \fI#RRGGBB\fR, booleans are \fItrue\fR or \fIfalse\fR\&.
+.SH "EXIT CODES"
.sp
-All the boolean settings are \fIfalse\fR by default\&.
-.SS "Global Settings"
+If the server can\(cqt handle a message, \fBbspc\fR will return with one of the following exit codes:
.PP
-\fIrule_command\fR
-.RS 4
-External command used to retrieve rule consequences\&. The command will receive the the ID of the window being processed as its first argument\&. The output of that command must have the following format:
-\fBkey1=value1 key2=value2 \&...\fR, where
-\fBkeyN\fR
-is one of
-\fIfloating\fR,
-\fIfullscreen\fR,
-\fIlocked\fR,
-\fIsticky\fR,
-\fIprivate\fR,
-\fIframe\fR,
-\fIcenter\fR,
-\fIlower\fR,
-\fIfollow\fR,
-\fImanage\fR,
-\fIfocus\fR,
-\fIdesktop\fR
-or
-\fImonitor\fR\&.
+1
+.RS 4
+Failure\&.
.RE
.PP
-\fIstatus_prefix\fR
+2
.RS 4
-Prefix prepended to each of the status lines\&.
+Syntax error\&.
+.RE
+.PP
+3
+.RS 4
+Unknown command\&.
.RE
+.SH "SETTINGS"
+.sp
+Colors are either \fI#RRGGBB\fR or X color names, booleans are \fItrue\fR, \fIon\fR, \fIfalse\fR or \fIoff\fR\&.
+.sp
+All the boolean settings are \fIfalse\fR by default unless stated otherwise\&.
+.SS "Global Settings"
.PP
\fIfocused_border_color\fR
.RS 4
Color of the border of an urgent window\&.
.RE
.PP
-\fIfocused_frame_opacity\fR
+\fIsplit_ratio\fR
.RS 4
-Opacity of a focused frame of a focused monitor\&.
+Default split ratio\&.
.RE
.PP
-\fIactive_frame_opacity\fR
+\fIstatus_prefix\fR
.RS 4
-Opacity of a focused frame of an unfocused monitor\&.
+Prefix prepended to each of the status lines\&.
.RE
.PP
-\fInormal_frame_opacity\fR
+\fIexternal_rules_command\fR
.RS 4
-Opacity of an unfocused frame\&.
+External command used to retrieve rule consequences\&. The command will receive the the ID of the window being processed as its first argument and the class and instance names as second and third arguments\&. The output of that command must have the following format:
+\fBkey1=value1 key2=value2 \&...\fR
+(the valid key/value pairs are given in the description of the
+\fIrule\fR
+command)\&.
.RE
.PP
-\fIsplit_ratio\fR
+\fIinitial_polarity\fR
.RS 4
-Default split ratio\&.
+On which child should a new window be attached when adding a window on a single window tree in automatic mode\&. Accept the following values:
+\fBfirst_child\fR,
+\fBsecond_child\fR\&.
.RE
.PP
-\fIgrowth_factor\fR
+\fIhistory_aware_focus\fR
.RS 4
-Intensity of the growth involved in pulling or pushing an edge\&.
+Give priority to the focus history when focusing nodes\&.
.RE
.PP
-\fIhistory_aware_focus\fR
+\fIfocus_by_distance\fR
.RS 4
-Give priority to the focus history when focusing nodes\&.
+Base focusing on distances between windows\&.
.RE
.PP
\fIborderless_monocle\fR
.RS 4
-Remove borders for tiled windows in monocle mode\&.
+Remove borders of tiled windows for the
+\fBmonocle\fR
+desktop layout\&.
.RE
.PP
\fIgapless_monocle\fR
.RS 4
-Remove gaps for tiled windows in monocle mode\&.
+Remove gaps of tiled windows for the
+\fBmonocle\fR
+desktop layout\&.
+.RE
+.PP
+\fIleaf_monocle\fR
+.RS 4
+Set the desktop layout to
+\fBmonocle\fR
+if there\(cqs only one tiled window in the tree\&.
.RE
.PP
\fIfocus_follows_pointer\fR
Focus the window under the pointer\&.
.RE
.PP
+\fIpointer_follows_focus\fR
+.RS 4
+When focusing a window, put the pointer at its center\&.
+.RE
+.PP
\fIpointer_follows_monitor\fR
.RS 4
When focusing a monitor, put the pointer at its center\&.
.PP
\fIignore_ewmh_focus\fR
.RS 4
-Ignore EWMH requests to focus a window\&.
+Ignore EWMH focus requests coming from applications\&.
+.RE
+.PP
+\fIcenter_pseudo_tiled\fR
+.RS 4
+Center pseudo tiled windows into their tiling rectangles\&. Defaults to
+\fItrue\fR\&.
.RE
.PP
-\fIremove_disabled_monitor\fR
+\fIremove_disabled_monitors\fR
.RS 4
Consider disabled monitors as disconnected\&.
.RE
-.SS "Monitor Settings"
.PP
-\fItop_padding\fR, \fIright_padding\fR, \fIbottom_padding\fR, \fIleft_padding\fR
+\fIremove_unplugged_monitors\fR
.RS 4
-Padding space added at the sides of the monitor\&.
+Remove unplugged monitors\&.
.RE
-.SS "Desktop Settings"
.PP
-\fIwindow_gap\fR
+\fImerge_overlapping_monitors\fR
.RS 4
-Size of the gap that separates windows\&.
+Merge overlapping monitors (the bigger remains)\&.
+.RE
+.SS "Monitor and Desktop Settings"
+.PP
+\fItop_padding\fR, \fIright_padding\fR, \fIbottom_padding\fR, \fIleft_padding\fR
+.RS 4
+Padding space added at the sides of the monitor or desktop\&.
.RE
+.SS "Default, Desktop Default and Window Settings"
.PP
\fIborder_width\fR
.RS 4
Window border width\&.
.RE
+.SS "Default and Desktop Settings"
+.PP
+\fIwindow_gap\fR
+.RS 4
+Size of the gap that separates windows\&.
+.RE
.SH "STATUS FORMAT"
.sp
-Status informations are composed of items separated by colons\&.
+Status information is composed of items separated by colons\&.
.sp
-Each item as the form \fI<type><value>\fR where \fI<type>\fR is the first character of the item\&.
+Each item has the form \fI<type><value>\fR where \fI<type>\fR is the first character of the item\&.
.PP
\fIM<monitor_name>\fR
.RS 4
Urgent unfocused desktop\&.
.RE
.PP
-\fIL(tiled|monocle)\fR
+\fIL(T|M)\fR
.RS 4
-Layout of the focused desktop of the focused monitor\&.
+Layout of the focused desktop of a monitor\&.
.RE
.SH "ENVIRONMENT VARIABLES"
.PP
\fBbspc\fR
and
\fBbspwm\fR\&. If it isn\(cqt defined, then the following path is used:
-\fI/tmp/bspwm\-socket\fR\&.
+\fI/tmp/bspwm<host_name>_<display_number>_<screen_number>\-socket\fR\&.
.RE
.SH "PANELS"
.sp
.sp -1
.IP \(bu 2.3
.\}
-A custom panel if the
-\fI\-s\fR
-flag is used (have a look at the files in
+A custom panel (have a look at the files in
\fIexamples/panel\fR)\&.
.RE
.SH "KEY FEATURES"
.sp -1
.IP \(bu 2.3
.\}
-Multiple monitors support (via
-\fIRandR\fR)\&.
+Multiple monitors support\&.
.RE
.sp
.RS 4
.sp -1
.IP \(bu 2.3
.\}
-EWMH support (\fBtint2\fR
-works)\&.
+EWMH support\&.
.RE
.sp
.RS 4