2013-06-26 21:50:01 +02:00
'\" t
. \" Title: bspwm
. \" Author: [see the "Author" section]
. \" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
2014-01-03 09:10:32 +01:00
. \" Date: 01/03/2014
2013-06-26 21:50:01 +02:00
. \" Manual: Bspwm Manual
2014-01-03 09:10:32 +01:00
. \" Source: Bspwm 0.8.8
2013-06-26 21:50:01 +02:00
. \" Language: English
. \"
2014-01-03 09:10:32 +01:00
.TH "BSPWM" "1" "01/03/2014" "Bspwm 0\&.8\&.8" "Bspwm Manual"
2013-06-26 21:50:01 +02:00
. \" -----------------------------------------------------------------
. \" * Define some portability stuff
. \" -----------------------------------------------------------------
. \" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
. \" http://bugs.debian.org/507673
. \" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
. \" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n (.g .ds Aq \(aq
.el .ds Aq '
. \" -----------------------------------------------------------------
. \" * set default formatting
. \" -----------------------------------------------------------------
. \" disable hyphenation
.nh
. \" disable justification (adjust text to left margin only)
.ad l
. \" -----------------------------------------------------------------
. \" * MAIN CONTENT STARTS HERE *
. \" -----------------------------------------------------------------
.SH "NAME"
2013-09-10 11:17:54 +02:00
bspwm \- Binary space partitioning window manager
2013-06-26 21:50:01 +02:00
.SH "SYNOPSIS"
.sp
2013-11-07 14:28:39 +01:00
\fB bspwm\fR [\fB \- h\fR |\fB \- v\fR |\fB \- c\fR \fI CONFIG_PATH\fR ]
2013-06-26 21:50:01 +02:00
.sp
2013-07-08 11:42:05 +02:00
\fB bspc\fR \fI COMMAND\fR [\fI ARGUMENTS\fR ]
2013-06-26 21:50:01 +02:00
.SH "DESCRIPTION"
.sp
\fB bspwm\fR is a tiling window manager that represents windows as the leaves of a full binary tree\& .
.sp
It is controlled and configured via \fB bspc\fR \& .
2013-07-08 11:42:05 +02:00
.SH "OPTIONS"
.PP
\fB \- h\fR
.RS 4
Print the synopsis and exit\& .
.RE
.PP
\fB \- v\fR
.RS 4
Print the version and exit\& .
.RE
.PP
2013-07-29 10:27:04 +02:00
\fB \- c\fR \fI CONFIG_PATH\fR
.RS 4
Use the given configuration file\& .
.RE
2013-06-26 21:50:01 +02:00
.SH "CONFIGURATION"
.sp
2013-09-11 19:30:06 +02:00
\fB bspwm\fR has only two sources of informations: the X events it receives and the messages it reads on a dedicated socket\& .
2013-06-26 21:50:01 +02:00
.sp
2013-07-29 10:27:04 +02:00
The default configuration file is \fI $XDG_CONFIG_HOME/bspwm/bspwmrc\fR \& .
2013-06-26 21:50:01 +02:00
.sp
Keyboard and pointer bindings are defined with sxhkd\& .
.sp
Example configuration files can be found in the \fB examples\fR directory\& .
.SH "SPLITTING MODES"
.sp
2013-07-08 11:42:05 +02:00
New windows are inserted in the tree as close as possible to the focused window\& .
.sp
2013-06-26 21:50:01 +02:00
There is only two splitting modes: \fI automatic\fR and \fI manual\fR \& .
.sp
2013-07-08 11:42:05 +02:00
The default mode is \fI automatic\fR \& . The \fI manual\fR mode is entered by sending a \fB preselection\fR message\& .
2013-06-26 21:50:01 +02:00
.sp
Example: insertion of a new node (number 4) into the given tree in \fI automatic\fR mode:
.sp
.if n \{ \
.RS 4
. \}
.nf
b c
/ \e / \e
3 a \- \- > 4 b
^ / \e ^ / \e
2 1 3 a
/ \e
2 1
+\- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- + +\- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- +
| | | | | |
| | 2 | | | 3 |
| | | | | |
| 3 |\- \- \- \- \- \- \- \- \- \- \- \- | \- \- > | 4 |\- \- \- \- \- \- \- \- \- \- \- \- |
| ^ | | | ^ | | |
| | 1 | | | 1 | 2 |
| | | | | | |
+\- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- + +\- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- +
.fi
.if n \{ \
.RE
. \}
.sp
2013-07-08 11:42:05 +02:00
Same departure, but the mode is \fI manual\fR , and a \fB window \- \- presel up\fR message was sent beforehand:
2013-06-26 21:50:01 +02:00
.sp
.if n \{ \
.RS 4
. \}
.nf
b b
/ \e / \e
3 a \- \- > c a
^ / \e / \e / \e
2 1 4 3 2 1
^
+\- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- + +\- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- +
| | | | | |
| | 2 | | 4 | 2 |
| | | | ^ | |
| 3 |\- \- \- \- \- \- \- \- \- \- \- \- | \- \- > |\- \- \- \- \- \- \- \- \- \- \- \- |\- \- \- \- \- \- \- \- \- \- \- \- |
| ^ | | | | |
| | 1 | | 3 | 1 |
| | | | | |
+\- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- + +\- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- \- +
.fi
.if n \{ \
.RE
. \}
.SH "CONTAINERS"
.sp
Each monitor contains at least one desktop\& .
.sp
Each desktop contains at most one tree\& .
2013-07-12 23:04:50 -04:00
.SH "COMMON DEFINITIONS"
2013-07-08 11:42:05 +02:00
.sp
.if n \{ \
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
. \}
.nf
2013-07-12 23:04:50 -04:00
DIR := left | right | up | down
CYCLE_DIR := next | prev
2013-07-08 11:42:05 +02:00
.fi
.if n \{ \
2013-06-26 21:50:01 +02:00
.RE
2013-07-08 11:42:05 +02:00
. \}
2013-07-12 23:04:50 -04:00
.SH "SELECTORS"
.sp
Selectors are used to select a target window, desktop, or monitor\& . A selector can either describe the target relatively or name it globally\& .
.sp
Descriptive (relative) selectors consist of a primary selector and any number of non\- conflicting modifiers as follows:
.sp
.if n \{ \
.RS 4
. \}
.nf
PRIMARY_SELECTOR[\& .MODIFIER]*
.fi
.if n \{ \
.RE
. \}
.sp
For obvious reasons, neither desktops nor monitors names may be valid descriptive selectors\& .
.SS "Window"
.sp
Select a window\& .
.sp
.if n \{ \
.RS 4
. \}
.nf
WINDOW_SEL := <window_id>
2013-10-08 17:47:00 +02:00
| (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[\& .floating|\& .tiled][\& .like|\& .unlike][\& .manual][\& .urgent][\& .local]
2013-07-12 23:04:50 -04:00
.fi
.if n \{ \
.RE
. \}
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Primary Selectors\fR
.RS 4
.PP
\fI DIR\fR
.RS 4
Selects the window in the given (spacial) direction relative to the active window\& .
.RE
.PP
\fI CYCLE_DIR\fR
.RS 4
Selects the window in the given (cyclic) direction\& .
.RE
.PP
biggest
.RS 4
Selects the biggest window on the current desktop\& .
.RE
.PP
last
.RS 4
2013-10-05 22:32:40 +02:00
Selects the previously focused window\& .
2013-07-12 23:04:50 -04:00
.RE
.PP
2013-10-08 17:47:00 +02:00
focused
2013-10-06 17:12:32 +02:00
.RS 4
2013-10-08 17:47:00 +02:00
Selects the currently focused window\& .
2013-10-06 17:12:32 +02:00
.RE
.PP
2013-10-08 13:59:17 +02:00
older
.RS 4
Selects the window older than the focused window in the history\& .
.RE
.PP
newer
.RS 4
Selects the window newer than the focused window in the history\& .
.RE
2013-07-12 23:04:50 -04:00
.RE
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Modifiers\fR
.RS 4
.PP
floating
.RS 4
Only consider floating windows\& .
.RE
.PP
tiled
.RS 4
Only consider tiled windows\& .
.RE
.PP
like
.RS 4
Only consider windows that have the same class as the current window\& .
.RE
.PP
unlike
.RS 4
Only consider windows that have a different class than the current window\& .
.RE
2013-07-13 18:40:44 -04:00
.PP
manual
.RS 4
Only consider windows in manual splitting mode (see
\fB \- \- presel\fR )\& .
.RE
2013-07-19 10:13:22 +02:00
.PP
2013-10-08 17:47:00 +02:00
local
2013-07-19 10:13:22 +02:00
.RS 4
2013-10-08 17:47:00 +02:00
Only consider windows of the current desktop\& .
2013-07-19 10:13:22 +02:00
.RE
.PP
2013-10-08 17:47:00 +02:00
urgent
2013-07-19 10:13:22 +02:00
.RS 4
2013-10-08 17:47:00 +02:00
Only consider urgent windows\& .
2013-07-19 10:13:22 +02:00
.RE
2013-07-12 23:04:50 -04:00
.RE
.SS "Desktop"
.sp
Select a desktop\& .
.sp
.if n \{ \
.RS 4
. \}
.nf
DESKTOP_SEL := <desktop_name>
2013-09-02 21:03:59 +02:00
| ^<n>
2013-12-31 18:39:47 +01:00
| (CYCLE_DIR|last|focused[:MONITOR_SEL]|older|newer)[\& .occupied|\& .free][\& .urgent][\& .local]
2013-07-12 23:04:50 -04:00
.fi
.if n \{ \
.RE
. \}
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Primary Selectors\fR
.RS 4
.PP
2013-09-02 21:03:59 +02:00
<desktop_name>
.RS 4
Selects the desktop with the given name\& .
.RE
.PP
^<n>
.RS 4
Selects the nth desktop\& .
.RE
.PP
2013-07-12 23:04:50 -04:00
\fI CYCLE_DIR\fR
.RS 4
Selects the desktop in the given direction relative to the active desktop\& .
.RE
.PP
last
.RS 4
2013-07-13 10:31:14 +02:00
Selects the previously focused desktop\& .
2013-07-12 23:04:50 -04:00
.RE
.PP
2013-10-08 17:47:00 +02:00
focused
2013-10-06 17:12:32 +02:00
.RS 4
2013-10-08 17:47:00 +02:00
Selects the currently focused desktop\& .
2013-10-06 17:12:32 +02:00
.RE
.PP
2013-10-08 17:47:00 +02:00
older
2013-07-12 23:04:50 -04:00
.RS 4
2013-10-08 17:47:00 +02:00
Selects the desktop older than the focused desktop in the history\& .
.RE
.PP
newer
.RS 4
Selects the desktop newer than the focused desktop in the history\& .
2013-07-12 23:04:50 -04:00
.RE
.RE
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Modifiers\fR
.RS 4
.PP
occupied
.RS 4
Only consider occupied desktops\& .
.RE
.PP
free
.RS 4
Only consider free desktops\& .
.RE
2013-07-19 10:13:22 +02:00
.PP
urgent
.RS 4
Only consider urgent desktops\& .
.RE
.PP
2013-10-08 17:47:00 +02:00
local
2013-07-19 10:13:22 +02:00
.RS 4
2013-10-08 17:47:00 +02:00
Only consider desktops of the current monitor\& .
2013-07-19 10:13:22 +02:00
.RE
2013-07-12 23:04:50 -04:00
.RE
.SS "Monitor"
.sp
Select a monitor\& .
.sp
.if n \{ \
.RS 4
. \}
.nf
MONITOR_SEL := <monitor_name>
2013-09-02 21:03:59 +02:00
| ^<n>
2013-10-08 17:47:00 +02:00
| (DIR|CYCLE_DIR|last|primary|focused|older|newer)[\& .occupied|\& .free]
2013-07-12 23:04:50 -04:00
.fi
.if n \{ \
.RE
. \}
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Primary Selectors\fR
.RS 4
.PP
2013-09-02 21:03:59 +02:00
<monitor_name>
.RS 4
Selects the monitor with the given name\& .
.RE
.PP
^<n>
.RS 4
Selects the nth monitor\& .
.RE
.PP
2013-07-12 23:04:50 -04:00
\fI DIR\fR
.RS 4
Selects the monitor in the given (spacial) direction relative to the active monitor\& .
.RE
.PP
\fI CYCLE_DIR\fR
.RS 4
Selects the monitor in the given (cyclic) direction relative to the active monitor\& .
.RE
.PP
2013-09-09 15:25:26 +02:00
primary
.RS 4
Selects the primary monitor\& .
.RE
.PP
2013-07-12 23:04:50 -04:00
last
.RS 4
2013-07-13 10:31:14 +02:00
Selects the previously focused monitor\& .
2013-07-12 23:04:50 -04:00
.RE
.PP
focused
.RS 4
Selects the currently focused monitor\& .
.RE
2013-10-08 17:47:00 +02:00
.PP
older
.RS 4
Selects the monitor older than the focused monitor in the history\& .
.RE
.PP
newer
.RS 4
Selects the monitor newer than the focused monitor in the history\& .
.RE
2013-07-12 23:04:50 -04:00
.RE
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Modifiers\fR
.RS 4
.PP
occupied
.RS 4
Only consider monitors where the focused desktop is occupied\& .
.RE
.PP
free
.RS 4
Only consider monitors where the focused desktop is free\& .
.RE
.RE
2013-12-16 17:22:25 +01:00
.SH "WINDOW STATES"
.PP
floating
.RS 4
Is above any tiled window and can be moved/resized freely\& . Although it doesn\(cq t occupy any tiling space, it is still part of the window tree\& .
.RE
.PP
2013-12-27 14:23:25 +01:00
pseudo_tiled
.RS 4
Has a libre size while being centered in its tiling space\& .
.RE
.PP
2013-12-16 17:22:25 +01:00
fullscreen
.RS 4
Fills its monitor rectangle, is above all the other windows and has no borders\& .
.RE
.PP
locked
.RS 4
Ignores the
\fB close\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
2013-07-08 11:42:05 +02:00
.SH "COMMANDS"
.SS "Window"
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB General Syntax\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
.sp
window [\fI WINDOW_SEL\fR ] \fI OPTIONS\fR
2013-06-26 21:50:01 +02:00
.RE
2013-07-08 11:42:05 +02:00
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Options\fR
2013-06-26 21:50:01 +02:00
.RS 4
.PP
2013-07-08 11:42:05 +02:00
\fB \- f\fR , \fB \- \- focus\fR [\fI WINDOW_SEL\fR ]
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Focus the selected or given window\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- d\fR , \fB \- \- to\- desktop\fR \fI DESKTOP_SEL\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Send the selected window to the given desktop\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- m\fR , \fB \- \- to\- monitor\fR \fI MONITOR_SEL\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Send the selected window to the given monitor\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- w\fR , \fB \- \- to\- window\fR \fI WINDOW_SEL\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Transplant the selected window to the given window\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- s\fR , \fB \- \- swap\fR \fI WINDOW_SEL\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Swap the selected window with the given window\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- p\fR , \fB \- \- presel\fR \fI DIR\fR |cancel
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Preselect the splitting area of the selected window (or cancel the preselection)\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- r\fR , \fB \- \- ratio\fR \fI RATIO\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-23 19:26:01 +02:00
Set the splitting ratio of the selected window (0 <
\fI RATIO\fR
< 1)\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-12-27 14:46:35 +01:00
\fB \- e\fR , \fB \- \- edge\fR \fI DIR\fR \fI RATIO\fR |\(+- \fI PIXELS\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-12-27 14:46:35 +01:00
Set or change the splitting ratio of the edge located in the given direction in relation to the selected window\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-08-28 12:56:04 +02:00
\fB \- R\fR , \fB \- \- rotate\fR \fI DIR\fR \fI 90|270|180\fR
2013-08-27 23:48:50 +02:00
.RS 4
2013-08-28 12:56:04 +02:00
Rotate the tree holding the edge located in the given direction in relation to the selected window\& .
2013-08-27 23:48:50 +02:00
.RE
.PP
2013-12-27 14:23:25 +01:00
\fB \- t\fR , \fB \- \- toggle\fR floating|fullscreen|pseudo_tiled|locked|sticky|private[=on|off]
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Set or toggle the given state for the selected window\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- c\fR , \fB \- \- close\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Close the selected window\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- k\fR , \fB \- \- kill\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Kill the selected window\& .
2013-06-26 21:50:01 +02:00
.RE
.RE
2013-07-08 11:42:05 +02:00
.SS "Desktop"
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB General Syntax\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
.sp
desktop [\fI DESKTOP_SEL\fR ] \fI OPTIONS\fR
2013-06-26 21:50:01 +02:00
.RE
2013-07-08 11:42:05 +02:00
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Options\fR
2013-06-26 21:50:01 +02:00
.RS 4
.PP
2013-07-08 11:42:05 +02:00
\fB \- f\fR , \fB \- \- focus\fR [\fI DESKTOP_SEL\fR ]
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Focus the selected or given desktop\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- m\fR , \fB \- \- to\- monitor\fR \fI MONITOR_SEL\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Send the selected desktop to the given monitor\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-12 23:04:50 -04:00
\fB \- l\fR , \fB \- \- layout\fR \fI CYCLE_DIR\fR |monocle|tiled
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Set or cycle the layout of the selected desktop\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- n\fR , \fB \- \- rename\fR <new_name>
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Rename the selected desktop\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-09-10 11:45:46 +02:00
\fB \- s\fR , \fB \- \- swap\fR \fI DESKTOP_SEL\fR
.RS 4
Swap the selected desktop with the given desktop\& .
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- r\fR , \fB \- \- remove\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Remove the selected desktop\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- c\fR , \fB \- \- cancel\- presel\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Cancel the preselection of all the windows of the selected desktop\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-12 23:01:05 -04:00
\fB \- F\fR , \fB \- \- flip\fR \fI horizontal|vertical\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Flip the tree of the selected desktop\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-12 23:01:05 -04:00
\fB \- R\fR , \fB \- \- rotate\fR \fI 90|270|180\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Rotate the tree of the selected desktop\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- B\fR , \fB \- \- balance\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Adjust the split ratios of the tree of the selected desktop so that all windows occupy the same area\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- C\fR , \fB \- \- circulate\fR forward|backward
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Circulate the leaves of the tree of the selected desktop\& .
2013-06-26 21:50:01 +02:00
.RE
2013-11-03 23:01:31 +01:00
.PP
\fB \- t\fR , \fB \- \- toggle\fR floating[=on|off]
.RS 4
Set or toggle the given state for the selected desktop\& .
.RE
2013-06-26 21:50:01 +02:00
.RE
2013-07-08 11:42:05 +02:00
.SS "Monitor"
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB General Syntax\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
.sp
monitor [\fI MONITOR_SEL\fR ] \fI OPTIONS\fR
2013-06-26 21:50:01 +02:00
.RE
2013-07-08 11:42:05 +02:00
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Options\fR
2013-06-26 21:50:01 +02:00
.RS 4
.PP
2013-07-08 11:42:05 +02:00
\fB \- f\fR , \fB \- \- focus\fR [\fI MONITOR_SEL\fR ]
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Focus the selected or given monitor\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- a\fR , \fB \- \- add\- desktops\fR <name>\& ...
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Create desktops with the given names in the selected monitor\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- r\fR , \fB \- \- remove\- desktops\fR <name>\& ...
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Remove desktops with the given names\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-11-19 15:25:49 +01:00
\fB \- o\fR , \fB \- \- reorder\- desktops\fR <name>\& ...
2013-06-26 21:50:01 +02:00
.RS 4
2013-11-19 15:25:49 +01:00
Reorder the desktops of the selected monitor to match the given order\& .
2013-06-26 21:50:01 +02:00
.RE
2013-09-09 22:27:27 +02:00
.PP
2013-10-01 23:14:57 +02:00
\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\& .
.RE
.PP
2013-11-19 15:25:49 +01:00
\fB \- n\fR , \fB \- \- rename\fR <new_name>
.RS 4
Rename the selected monitor\& .
.RE
.PP
2013-09-09 22:27:27 +02:00
\fB \- s\fR , \fB \- \- swap\fR \fI MONITOR_SEL\fR
.RS 4
Swap the selected monitor with the given monitor\& .
.RE
2013-06-26 21:50:01 +02:00
.RE
2013-07-08 11:42:05 +02:00
.SS "Query"
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB General Syntax\fR
2013-06-28 15:16:56 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
.sp
query \fI OPTIONS\fR
2013-06-28 15:16:56 +02:00
.RE
2013-07-08 11:42:05 +02:00
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Options\fR
2013-06-26 21:50:01 +02:00
.RS 4
.PP
2013-07-08 11:42:05 +02:00
\fB \- W\fR , \fB \- \- windows\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
List matching windows\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- D\fR , \fB \- \- desktops\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
List matching desktops\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- M\fR , \fB \- \- monitors\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
List matching monitors\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- T\fR , \fB \- \- tree\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Print tree rooted at query\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- H\fR , \fB \- \- history\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Print the history as it relates to the query\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-10-01 10:48:03 +02:00
\fB \- S\fR , \fB \- \- stack\fR
.RS 4
Print the window stacking order\& .
.RE
.PP
2013-07-08 11:42:05 +02:00
[\fB \- m\fR ,\fB \- \- monitor\fR [\fI MONITOR_SEL\fR ]] | [\fB \- d\fR ,\fB \- \- desktop\fR [\fI DESKTOP_SEL\fR ]] | [\fB \- w\fR , \fB \- \- window\fR [\fI WINDOW_SEL\fR ]]
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Constrain matches to the selected monitor, desktop or window\& .
2013-06-26 21:50:01 +02:00
.RE
2013-07-08 11:42:05 +02:00
.RE
.SS "Restore"
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB General Syntax\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
.sp
restore \fI OPTIONS\fR
2013-06-26 21:50:01 +02:00
.RE
2013-07-08 11:42:05 +02:00
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Options\fR
.RS 4
2013-06-26 21:50:01 +02:00
.PP
2013-07-08 11:42:05 +02:00
\fB \- T\fR , \fB \- \- tree\fR <file_path>
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Load the desktop trees from the given file\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- H\fR , \fB \- \- history\fR <file_path>
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Load the focus history from the given file\& .
2013-06-26 21:50:01 +02:00
.RE
2013-10-01 10:48:03 +02:00
.PP
\fB \- S\fR , \fB \- \- stack\fR <file_path>
.RS 4
Load the window stacking order from the given file\& .
.RE
2013-07-08 11:42:05 +02:00
.RE
.SS "Control"
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB General Syntax\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
.sp
control \fI OPTIONS\fR
2013-06-26 21:50:01 +02:00
.RE
2013-07-08 11:42:05 +02:00
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Options\fR
.RS 4
2013-06-26 21:50:01 +02:00
.PP
2013-07-12 20:36:09 -04:00
\fB \- \- adopt\- orphans\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Manage all the unmanaged windows remaining from a previous session\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- \- toggle\- visibility\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-09-16 13:40:28 +02:00
Toggle the visibility of all the windows\& .
.RE
2013-10-08 23:16:07 +02:00
.PP
\fB \- \- record\- history\fR on|off
.RS 4
Enable or disable the recording of window focus history\& .
.RE
2013-11-07 14:28:39 +01:00
.PP
\fB \- \- subscribe\fR
.RS 4
Continuously print status informations on standard output\& .
.RE
2013-07-08 11:42:05 +02:00
.RE
.SS "Pointer"
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB General Syntax\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
.sp
pointer \fI OPTIONS\fR
2013-06-26 21:50:01 +02:00
.RE
2013-07-08 11:42:05 +02:00
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Options\fR
.RS 4
2013-06-26 21:50:01 +02:00
.PP
2013-10-20 20:33:34 +02:00
\fB \- g\fR , \fB \- \- grab\fR focus|move|resize_side|resize_corner
.RS 4
Initiate the given pointer action\& .
.RE
.PP
2013-07-08 11:42:05 +02:00
\fB \- t\fR , \fB \- \- track\fR <x> <y>
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Pass the pointer root coordinates for the current pointer action\& .
2013-06-26 21:50:01 +02:00
.RE
.PP
2013-10-20 20:33:34 +02:00
\fB \- u\fR , \fB \- \- ungrab\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-10-20 20:33:34 +02:00
Terminate the current pointer action\& .
2013-06-26 21:50:01 +02:00
.RE
2013-07-08 11:42:05 +02:00
.RE
2013-12-12 14:38:48 +01:00
.SS "Rule"
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB General Syntax\fR
.RS 4
.sp
rule \fI OPTIONS\fR
.RE
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB Options\fR
.RS 4
.PP
2013-12-27 14:23:25 +01:00
\fB \- a\fR , \fB \- \- add\fR <class_name>|<instance_name>|* [\fB \- o\fR |\fB \- \- one\- shot\fR ] [desktop=DESKTOP_SEL|monitor=MONITOR_SEL] [(floating|fullscreen|pseudo_tiled|locked|sticky|private|center|lower|follow|manage|focus)=(true|false)]
2013-12-12 14:38:48 +01:00
.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
2013-07-08 11:42:05 +02:00
.SS "Config"
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB General Syntax\fR
.RS 4
2013-06-26 21:50:01 +02:00
.PP
2013-09-11 21:19:59 +02:00
config [\- m \fI MONITOR_SEL\fR |\- d \fI DESKTOP_SEL\fR ] <key> [<value>]
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Get or set the value of <key>\& .
.RE
2013-06-26 21:50:01 +02:00
.RE
2013-07-08 11:42:05 +02:00
.SS "Quit"
.sp
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fB General Syntax\fR
.RS 4
2013-06-26 21:50:01 +02:00
.PP
2013-07-08 11:42:05 +02:00
quit [<status>]
2013-06-26 21:50:01 +02:00
.RS 4
2013-07-08 11:42:05 +02:00
Quit with an optional exit status\& .
.RE
2013-06-26 21:50:01 +02:00
.RE
.SH "SETTINGS"
.sp
Colors are either X color names or \fI #RRGGBB\fR , booleans are \fI true\fR or \fI false\fR \& .
.sp
All the boolean settings are \fI false\fR by default\& .
2013-09-15 11:51:12 +02:00
.SS "Global Settings"
2013-06-26 21:50:01 +02:00
.PP
\fI focused_border_color\fR
.RS 4
Color of the border of a focused window of a focused monitor\& .
.RE
.PP
\fI active_border_color\fR
.RS 4
Color of the border of a focused window of an unfocused monitor\& .
.RE
.PP
\fI normal_border_color\fR
.RS 4
Color of the border of an unfocused window\& .
.RE
.PP
\fI presel_border_color\fR
.RS 4
Color of the
\fB presel\fR
message feedback\& .
.RE
.PP
\fI focused_locked_border_color\fR
.RS 4
Color of the border of a focused locked window of a focused monitor\& .
.RE
.PP
\fI active_locked_border_color\fR
.RS 4
Color of the border of a focused locked window of an unfocused monitor\& .
.RE
.PP
\fI normal_locked_border_color\fR
.RS 4
Color of the border of an unfocused locked window\& .
.RE
.PP
2013-10-01 18:04:18 +02:00
\fI focused_sticky_border_color\fR
.RS 4
Color of the border of a focused sticky window of a focused monitor\& .
.RE
.PP
2013-10-06 16:58:02 +02:00
\fI active_sticky_border_color\fR
.RS 4
Color of the border of a focused sticky window of an unfocused monitor\& .
.RE
.PP
2013-10-01 18:04:18 +02:00
\fI normal_sticky_border_color\fR
.RS 4
Color of the border of an unfocused sticky window\& .
.RE
.PP
2013-10-12 21:16:51 +02:00
\fI focused_private_border_color\fR
.RS 4
Color of the border of a focused private window of a focused monitor\& .
.RE
.PP
\fI active_private_border_color\fR
.RS 4
Color of the border of a focused private window of an unfocused monitor\& .
.RE
.PP
\fI normal_private_border_color\fR
.RS 4
Color of the border of an unfocused private window\& .
.RE
.PP
2013-06-26 21:50:01 +02:00
\fI urgent_border_color\fR
.RS 4
Color of the border of an urgent window\& .
.RE
.PP
\fI split_ratio\fR
.RS 4
Default split ratio\& .
.RE
.PP
2013-12-12 14:38:48 +01:00
\fI status_prefix\fR
.RS 4
Prefix prepended to each of the status lines\& .
.RE
.PP
\fI external_rules_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 and the class and instance names as second and third arguments\& . The output of that command must have the following format:
\fB key1=value1 key2=value2 \& ...\fR
(the valid key/value pairs are given in the description of the
\fI rule\fR
command)\& .
.RE
.PP
2013-09-05 15:37:54 +02:00
\fI history_aware_focus\fR
.RS 4
Give priority to the focus history when focusing nodes\& .
.RE
.PP
2013-06-26 21:50:01 +02:00
\fI borderless_monocle\fR
.RS 4
Remove borders for tiled windows in monocle mode\& .
.RE
.PP
\fI gapless_monocle\fR
.RS 4
Remove gaps for tiled windows in monocle mode\& .
.RE
.PP
\fI focus_follows_pointer\fR
.RS 4
Focus the window under the pointer\& .
.RE
.PP
\fI pointer_follows_monitor\fR
.RS 4
When focusing a monitor, put the pointer at its center\& .
.RE
.PP
\fI auto_alternate\fR
.RS 4
Interpret two consecutive identical
\fB use\fR
messages as an
\fB alternate\fR
message\& .
.RE
.PP
2013-07-04 12:14:47 +02:00
\fI auto_cancel\fR
.RS 4
Interpret two consecutive identical
\fB presel\fR
messages as a
\fB cancel\fR
message\& .
.RE
.PP
2013-09-05 15:37:54 +02:00
\fI apply_floating_atom\fR
2013-06-26 21:50:01 +02:00
.RS 4
2013-09-05 15:37:54 +02:00
Set the value of the
\fI _BSPWM_FLOATING_WINDOW\fR
atom of each window according to its floating state\& .
2013-06-26 21:50:01 +02:00
.RE
2013-09-23 11:45:00 +02:00
.PP
2013-10-26 17:54:44 +02:00
\fI ignore_ewmh_focus\fR
2013-09-23 11:45:00 +02:00
.RS 4
2013-10-26 17:54:44 +02:00
Ignore EWMH requests to focus a window\& .
2013-09-23 11:45:00 +02:00
.RE
2013-11-10 12:07:14 +01:00
.PP
\fI remove_disabled_monitor\fR
.RS 4
Consider disabled monitors as disconnected\& .
.RE
2013-12-28 10:30:49 +01:00
.SS "Monitor and Desktop Settings"
2013-09-15 11:51:12 +02:00
.PP
2013-12-28 10:30:49 +01:00
\fI top_padding\fR , \fI right_padding\fR , \fI bottom_padding\fR , \fI left_padding\fR
2013-09-15 11:51:12 +02:00
.RS 4
2013-12-28 10:30:49 +01:00
Padding space added at the sides of the monitor or desktop\& .
2013-09-15 11:51:12 +02:00
.RE
2013-12-28 10:30:49 +01:00
.SS "Desktop Settings"
2013-10-01 14:15:50 +02:00
.PP
2013-12-28 10:30:49 +01:00
\fI window_gap\fR
2013-12-25 10:06:02 +01:00
.RS 4
2013-12-28 10:30:49 +01:00
Size of the gap that separates windows\& .
2013-12-25 10:06:02 +01:00
.RE
.PP
2013-10-01 14:15:50 +02:00
\fI border_width\fR
.RS 4
Window border width\& .
.RE
2013-11-07 14:28:39 +01:00
.SH "STATUS FORMAT"
2013-10-11 12:23:26 +02:00
.sp
2013-11-07 14:28:39 +01:00
Status informations are composed of items separated by colons\& .
2013-10-11 12:23:26 +02:00
.sp
2013-11-26 00:08:03 -05:00
Each item has the form \fI <type><value>\fR where \fI <type>\fR is the first character of the item\& .
2013-10-11 12:23:26 +02:00
.PP
\fI M<monitor_name>\fR
.RS 4
Focused monitor\& .
.RE
.PP
\fI m<monitor_name>\fR
.RS 4
Unfocused monitor\& .
.RE
.PP
\fI O<desktop_name>\fR
.RS 4
Occupied focused desktop\& .
.RE
.PP
\fI o<desktop_name>\fR
.RS 4
Occupied unfocused desktop\& .
.RE
.PP
\fI F<desktop_name>\fR
.RS 4
Free focused desktop\& .
.RE
.PP
\fI f<desktop_name>\fR
.RS 4
Free unfocused desktop\& .
.RE
.PP
\fI U<desktop_name>\fR
.RS 4
Urgent focused desktop\& .
.RE
.PP
\fI u<desktop_name>\fR
.RS 4
Urgent unfocused desktop\& .
.RE
.PP
\fI L(tiled|monocle)\fR
.RS 4
Layout of the focused desktop of the focused monitor\& .
.RE
2013-06-26 21:50:01 +02:00
.SH "ENVIRONMENT VARIABLES"
.PP
\fI BSPWM_SOCKET\fR
.RS 4
2013-12-23 11:48:58 +01:00
The path of the socket used for the communication between
\fB bspc\fR
and
\fB bspwm\fR \& . If it isn\(cq t defined, then the following path is used:
\fI /tmp/bspwm<display_name>\- socket\fR \& .
2013-06-26 21:50:01 +02:00
.RE
.SH "PANELS"
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
Any EWMH compliant panel (e\& .g\& .:
\fI tint2\fR ,
\fI bmpanel2\fR , etc\& .)\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
A custom panel if the
\fI \- s\fR
flag is used (have a look at the files in
\fI examples/panel\fR )\& .
.RE
.SH "KEY FEATURES"
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
Configured and controlled through messages\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
Multiple monitors support (via
\fI RandR\fR )\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
EWMH support (\fB tint2\fR
works)\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
2013-07-08 11:42:05 +02:00
Hybrid tiling\& .
2013-06-26 21:50:01 +02:00
.RE
.SH "CONTRIBUTORS"
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
2013-07-03 09:25:27 +02:00
Steven Allen <steven at stebalien\& .com>
2013-06-26 21:50:01 +02:00
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
Thomas Adam <thomas at xteddy\& .org>
.RE
2013-07-03 09:25:27 +02:00
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
Ivan Kanakarakis <ivan\& .kanak at gmail\& .com>
.RE
2013-06-26 21:50:01 +02:00
.SH "AUTHOR"
.sp
2013-09-20 19:00:41 +02:00
Bastien Dejean <nihilhill at gmail\& .com>
2013-06-26 21:50:01 +02:00
.SH "MAILING LIST"
.sp
bspwm at librelist\& .com