3 .\" Author: [see the "Author" section]
4 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
6 .\" Manual: Bspwm Manual
7 .\" Source: Bspwm 0.8.7
10 .TH "BSPWM" "1" "12/27/2013" "Bspwm 0\&.8\&.7" "Bspwm Manual"
11 .\" -----------------------------------------------------------------
12 .\" * Define some portability stuff
13 .\" -----------------------------------------------------------------
14 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15 .\" http://bugs.debian.org/507673
16 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
17 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 .\" -----------------------------------------------------------------
21 .\" * set default formatting
22 .\" -----------------------------------------------------------------
23 .\" disable hyphenation
25 .\" disable justification (adjust text to left margin only)
27 .\" -----------------------------------------------------------------
28 .\" * MAIN CONTENT STARTS HERE *
29 .\" -----------------------------------------------------------------
31 bspwm \- Binary space partitioning window manager
34 \fBbspwm\fR [\fB\-h\fR|\fB\-v\fR|\fB\-c\fR \fICONFIG_PATH\fR]
36 \fBbspc\fR \fICOMMAND\fR [\fIARGUMENTS\fR]
39 \fBbspwm\fR is a tiling window manager that represents windows as the leaves of a full binary tree\&.
41 It is controlled and configured via \fBbspc\fR\&.
46 Print the synopsis and exit\&.
51 Print the version and exit\&.
54 \fB\-c\fR \fICONFIG_PATH\fR
56 Use the given configuration file\&.
60 \fBbspwm\fR has only two sources of informations: the X events it receives and the messages it reads on a dedicated socket\&.
62 The default configuration file is \fI$XDG_CONFIG_HOME/bspwm/bspwmrc\fR\&.
64 Keyboard and pointer bindings are defined with sxhkd\&.
66 Example configuration files can be found in the \fBexamples\fR directory\&.
69 New windows are inserted in the tree as close as possible to the focused window\&.
71 There is only two splitting modes: \fIautomatic\fR and \fImanual\fR\&.
73 The default mode is \fIautomatic\fR\&. The \fImanual\fR mode is entered by sending a \fBpreselection\fR message\&.
75 Example: insertion of a new node (number 4) into the given tree in \fIautomatic\fR mode:
88 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
92 | 3 |\-\-\-\-\-\-\-\-\-\-\-\-| \-\-> | 4 |\-\-\-\-\-\-\-\-\-\-\-\-|
96 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
102 Same departure, but the mode is \fImanual\fR, and a \fBwindow \-\-presel up\fR message was sent beforehand:
114 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
118 | 3 |\-\-\-\-\-\-\-\-\-\-\-\-| \-\-> |\-\-\-\-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\-\-\-\-\-|
122 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
129 Each monitor contains at least one desktop\&.
131 Each desktop contains at most one tree\&.
132 .SH "COMMON DEFINITIONS"
138 DIR := left | right | up | down
139 CYCLE_DIR := next | prev
146 Selectors are used to select a target window, desktop, or monitor\&. A selector can either describe the target relatively or name it globally\&.
148 Descriptive (relative) selectors consist of a primary selector and any number of non\-conflicting modifiers as follows:
154 PRIMARY_SELECTOR[\&.MODIFIER]*
160 For obvious reasons, neither desktops nor monitors names may be valid descriptive selectors\&.
169 WINDOW_SEL := <window_id>
170 | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[\&.floating|\&.tiled][\&.like|\&.unlike][\&.manual][\&.urgent][\&.local]
177 .nr an-no-space-flag 1
181 \fBPrimary Selectors\fR
186 Selects the window in the given (spacial) direction relative to the active window\&.
191 Selects the window in the given (cyclic) direction\&.
196 Selects the biggest window on the current desktop\&.
201 Selects the previously focused window\&.
206 Selects the currently focused window\&.
211 Selects the window older than the focused window in the history\&.
216 Selects the window newer than the focused window in the history\&.
221 .nr an-no-space-flag 1
230 Only consider floating windows\&.
235 Only consider tiled windows\&.
240 Only consider windows that have the same class as the current window\&.
245 Only consider windows that have a different class than the current window\&.
250 Only consider windows in manual splitting mode (see
256 Only consider windows of the current desktop\&.
261 Only consider urgent windows\&.
272 DESKTOP_SEL := <desktop_name>
274 | (CYCLE_DIR|last|focused|older|newer)[\&.occupied|\&.free][\&.urgent][\&.local]
281 .nr an-no-space-flag 1
285 \fBPrimary Selectors\fR
290 Selects the desktop with the given name\&.
295 Selects the nth desktop\&.
300 Selects the desktop in the given direction relative to the active desktop\&.
305 Selects the previously focused desktop\&.
310 Selects the currently focused desktop\&.
315 Selects the desktop older than the focused desktop in the history\&.
320 Selects the desktop newer than the focused desktop in the history\&.
325 .nr an-no-space-flag 1
334 Only consider occupied desktops\&.
339 Only consider free desktops\&.
344 Only consider urgent desktops\&.
349 Only consider desktops of the current monitor\&.
360 MONITOR_SEL := <monitor_name>
362 | (DIR|CYCLE_DIR|last|primary|focused|older|newer)[\&.occupied|\&.free]
369 .nr an-no-space-flag 1
373 \fBPrimary Selectors\fR
378 Selects the monitor with the given name\&.
383 Selects the nth monitor\&.
388 Selects the monitor in the given (spacial) direction relative to the active monitor\&.
393 Selects the monitor in the given (cyclic) direction relative to the active monitor\&.
398 Selects the primary monitor\&.
403 Selects the previously focused monitor\&.
408 Selects the currently focused monitor\&.
413 Selects the monitor older than the focused monitor in the history\&.
418 Selects the monitor newer than the focused monitor in the history\&.
423 .nr an-no-space-flag 1
432 Only consider monitors where the focused desktop is occupied\&.
437 Only consider monitors where the focused desktop is free\&.
444 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\&.
449 Fills its monitor rectangle, is above all the other windows and has no borders\&.
461 Stays in the focused desktop of its monitor\&.
466 Tries to keep the same tiling position/size\&.
472 .nr an-no-space-flag 1
479 window [\fIWINDOW_SEL\fR] \fIOPTIONS\fR
483 .nr an-no-space-flag 1
490 \fB\-f\fR, \fB\-\-focus\fR [\fIWINDOW_SEL\fR]
492 Focus the selected or given window\&.
495 \fB\-d\fR, \fB\-\-to\-desktop\fR \fIDESKTOP_SEL\fR
497 Send the selected window to the given desktop\&.
500 \fB\-m\fR, \fB\-\-to\-monitor\fR \fIMONITOR_SEL\fR
502 Send the selected window to the given monitor\&.
505 \fB\-w\fR, \fB\-\-to\-window\fR \fIWINDOW_SEL\fR
507 Transplant the selected window to the given window\&.
510 \fB\-s\fR, \fB\-\-swap\fR \fIWINDOW_SEL\fR
512 Swap the selected window with the given window\&.
515 \fB\-p\fR, \fB\-\-presel\fR \fIDIR\fR|cancel
517 Preselect the splitting area of the selected window (or cancel the preselection)\&.
520 \fB\-r\fR, \fB\-\-ratio\fR \fIRATIO\fR
522 Set the splitting ratio of the selected window (0 <
527 \fB\-e\fR, \fB\-\-edge\fR \fIDIR\fR \fIRATIO\fR|\(+-\fIPIXELS\fR|pull|push
529 Set and change the splitting ratio of (or pull, or push) the edge located in the given direction in relation to the selected window\&.
532 \fB\-R\fR, \fB\-\-rotate\fR \fIDIR\fR \fI90|270|180\fR
534 Rotate the tree holding the edge located in the given direction in relation to the selected window\&.
537 \fB\-t\fR, \fB\-\-toggle\fR floating|fullscreen|locked|sticky|private[=on|off]
539 Set or toggle the given state for the selected window\&.
542 \fB\-c\fR, \fB\-\-close\fR
544 Close the selected window\&.
547 \fB\-k\fR, \fB\-\-kill\fR
549 Kill the selected window\&.
555 .nr an-no-space-flag 1
562 desktop [\fIDESKTOP_SEL\fR] \fIOPTIONS\fR
566 .nr an-no-space-flag 1
573 \fB\-f\fR, \fB\-\-focus\fR [\fIDESKTOP_SEL\fR]
575 Focus the selected or given desktop\&.
578 \fB\-m\fR, \fB\-\-to\-monitor\fR \fIMONITOR_SEL\fR
580 Send the selected desktop to the given monitor\&.
583 \fB\-l\fR, \fB\-\-layout\fR \fICYCLE_DIR\fR|monocle|tiled
585 Set or cycle the layout of the selected desktop\&.
588 \fB\-n\fR, \fB\-\-rename\fR <new_name>
590 Rename the selected desktop\&.
593 \fB\-s\fR, \fB\-\-swap\fR \fIDESKTOP_SEL\fR
595 Swap the selected desktop with the given desktop\&.
598 \fB\-r\fR, \fB\-\-remove\fR
600 Remove the selected desktop\&.
603 \fB\-c\fR, \fB\-\-cancel\-presel\fR
605 Cancel the preselection of all the windows of the selected desktop\&.
608 \fB\-F\fR, \fB\-\-flip\fR \fIhorizontal|vertical\fR
610 Flip the tree of the selected desktop\&.
613 \fB\-R\fR, \fB\-\-rotate\fR \fI90|270|180\fR
615 Rotate the tree of the selected desktop\&.
618 \fB\-B\fR, \fB\-\-balance\fR
620 Adjust the split ratios of the tree of the selected desktop so that all windows occupy the same area\&.
623 \fB\-C\fR, \fB\-\-circulate\fR forward|backward
625 Circulate the leaves of the tree of the selected desktop\&.
628 \fB\-t\fR, \fB\-\-toggle\fR floating[=on|off]
630 Set or toggle the given state for the selected desktop\&.
636 .nr an-no-space-flag 1
643 monitor [\fIMONITOR_SEL\fR] \fIOPTIONS\fR
647 .nr an-no-space-flag 1
654 \fB\-f\fR, \fB\-\-focus\fR [\fIMONITOR_SEL\fR]
656 Focus the selected or given monitor\&.
659 \fB\-a\fR, \fB\-\-add\-desktops\fR <name>\&...
661 Create desktops with the given names in the selected monitor\&.
664 \fB\-r\fR, \fB\-\-remove\-desktops\fR <name>\&...
666 Remove desktops with the given names\&.
669 \fB\-o\fR, \fB\-\-reorder\-desktops\fR <name>\&...
671 Reorder the desktops of the selected monitor to match the given order\&.
674 \fB\-d\fR, \fB\-\-reset\-desktops\fR <name>\&...
676 Rename, add or remove desktops depending on whether the number of given names is equal, superior or inferior to the number of existing desktops\&.
679 \fB\-n\fR, \fB\-\-rename\fR <new_name>
681 Rename the selected monitor\&.
684 \fB\-s\fR, \fB\-\-swap\fR \fIMONITOR_SEL\fR
686 Swap the selected monitor with the given monitor\&.
692 .nr an-no-space-flag 1
703 .nr an-no-space-flag 1
710 \fB\-W\fR, \fB\-\-windows\fR
712 List matching windows\&.
715 \fB\-D\fR, \fB\-\-desktops\fR
717 List matching desktops\&.
720 \fB\-M\fR, \fB\-\-monitors\fR
722 List matching monitors\&.
725 \fB\-T\fR, \fB\-\-tree\fR
727 Print tree rooted at query\&.
730 \fB\-H\fR, \fB\-\-history\fR
732 Print the history as it relates to the query\&.
735 \fB\-S\fR, \fB\-\-stack\fR
737 Print the window stacking order\&.
740 [\fB\-m\fR,\fB\-\-monitor\fR [\fIMONITOR_SEL\fR]] | [\fB\-d\fR,\fB\-\-desktop\fR [\fIDESKTOP_SEL\fR]] | [\fB\-w\fR, \fB\-\-window\fR [\fIWINDOW_SEL\fR]]
742 Constrain matches to the selected monitor, desktop or window\&.
748 .nr an-no-space-flag 1
755 restore \fIOPTIONS\fR
759 .nr an-no-space-flag 1
766 \fB\-T\fR, \fB\-\-tree\fR <file_path>
768 Load the desktop trees from the given file\&.
771 \fB\-H\fR, \fB\-\-history\fR <file_path>
773 Load the focus history from the given file\&.
776 \fB\-S\fR, \fB\-\-stack\fR <file_path>
778 Load the window stacking order from the given file\&.
784 .nr an-no-space-flag 1
791 control \fIOPTIONS\fR
795 .nr an-no-space-flag 1
802 \fB\-\-adopt\-orphans\fR
804 Manage all the unmanaged windows remaining from a previous session\&.
807 \fB\-\-toggle\-visibility\fR
809 Toggle the visibility of all the windows\&.
812 \fB\-\-record\-history\fR on|off
814 Enable or disable the recording of window focus history\&.
819 Continuously print status informations on standard output\&.
825 .nr an-no-space-flag 1
832 pointer \fIOPTIONS\fR
836 .nr an-no-space-flag 1
843 \fB\-g\fR, \fB\-\-grab\fR focus|move|resize_side|resize_corner
845 Initiate the given pointer action\&.
848 \fB\-t\fR, \fB\-\-track\fR <x> <y>
850 Pass the pointer root coordinates for the current pointer action\&.
853 \fB\-u\fR, \fB\-\-ungrab\fR
855 Terminate the current pointer action\&.
861 .nr an-no-space-flag 1
872 .nr an-no-space-flag 1
879 \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|locked|sticky|private|center|lower|follow|manage|focus)=(true|false)]
884 \fB\-r\fR, \fB\-\-remove\fR ^<n>|head|tail|<class_name>|<instance_name>|*\&...
886 Remove the given rules\&.
889 \fB\-l\fR, \fB\-\-list\fR [<class_name>|<instance_name>|*]
897 .nr an-no-space-flag 1
904 config [\-m \fIMONITOR_SEL\fR|\-d \fIDESKTOP_SEL\fR] <key> [<value>]
906 Get or set the value of <key>\&.
912 .nr an-no-space-flag 1
921 Quit with an optional exit status\&.
926 Colors are either X color names or \fI#RRGGBB\fR, booleans are \fItrue\fR or \fIfalse\fR\&.
928 All the boolean settings are \fIfalse\fR by default\&.
929 .SS "Global Settings"
931 \fIfocused_border_color\fR
933 Color of the border of a focused window of a focused monitor\&.
936 \fIactive_border_color\fR
938 Color of the border of a focused window of an unfocused monitor\&.
941 \fInormal_border_color\fR
943 Color of the border of an unfocused window\&.
946 \fIpresel_border_color\fR
953 \fIfocused_locked_border_color\fR
955 Color of the border of a focused locked window of a focused monitor\&.
958 \fIactive_locked_border_color\fR
960 Color of the border of a focused locked window of an unfocused monitor\&.
963 \fInormal_locked_border_color\fR
965 Color of the border of an unfocused locked window\&.
968 \fIfocused_sticky_border_color\fR
970 Color of the border of a focused sticky window of a focused monitor\&.
973 \fIactive_sticky_border_color\fR
975 Color of the border of a focused sticky window of an unfocused monitor\&.
978 \fInormal_sticky_border_color\fR
980 Color of the border of an unfocused sticky window\&.
983 \fIfocused_private_border_color\fR
985 Color of the border of a focused private window of a focused monitor\&.
988 \fIactive_private_border_color\fR
990 Color of the border of a focused private window of an unfocused monitor\&.
993 \fInormal_private_border_color\fR
995 Color of the border of an unfocused private window\&.
998 \fIurgent_border_color\fR
1000 Color of the border of an urgent window\&.
1005 Default split ratio\&.
1010 Intensity of the growth involved in pulling or pushing an edge\&.
1015 Prefix prepended to each of the status lines\&.
1018 \fIexternal_rules_command\fR
1020 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:
1021 \fBkey1=value1 key2=value2 \&...\fR
1022 (the valid key/value pairs are given in the description of the
1027 \fIhistory_aware_focus\fR
1029 Give priority to the focus history when focusing nodes\&.
1032 \fIborderless_monocle\fR
1034 Remove borders for tiled windows in monocle mode\&.
1037 \fIgapless_monocle\fR
1039 Remove gaps for tiled windows in monocle mode\&.
1042 \fIfocus_follows_pointer\fR
1044 Focus the window under the pointer\&.
1047 \fIpointer_follows_monitor\fR
1049 When focusing a monitor, put the pointer at its center\&.
1052 \fIauto_alternate\fR
1054 Interpret two consecutive identical
1063 Interpret two consecutive identical
1070 \fIapply_floating_atom\fR
1072 Set the value of the
1073 \fI_BSPWM_FLOATING_WINDOW\fR
1074 atom of each window according to its floating state\&.
1077 \fIignore_ewmh_focus\fR
1079 Ignore EWMH requests to focus a window\&.
1082 \fIremove_disabled_monitor\fR
1084 Consider disabled monitors as disconnected\&.
1086 .SS "Desktop Settings"
1090 Size of the gap that separates windows\&.
1093 \fItop_padding\fR, \fIright_padding\fR, \fIbottom_padding\fR, \fIleft_padding\fR
1095 Padding space added at the sides of the desktop\&.
1100 Window border width\&.
1104 Status informations are composed of items separated by colons\&.
1106 Each item has the form \fI<type><value>\fR where \fI<type>\fR is the first character of the item\&.
1108 \fIM<monitor_name>\fR
1113 \fIm<monitor_name>\fR
1115 Unfocused monitor\&.
1118 \fIO<desktop_name>\fR
1120 Occupied focused desktop\&.
1123 \fIo<desktop_name>\fR
1125 Occupied unfocused desktop\&.
1128 \fIF<desktop_name>\fR
1130 Free focused desktop\&.
1133 \fIf<desktop_name>\fR
1135 Free unfocused desktop\&.
1138 \fIU<desktop_name>\fR
1140 Urgent focused desktop\&.
1143 \fIu<desktop_name>\fR
1145 Urgent unfocused desktop\&.
1148 \fIL(tiled|monocle)\fR
1150 Layout of the focused desktop of the focused monitor\&.
1152 .SH "ENVIRONMENT VARIABLES"
1156 The path of the socket used for the communication between
1159 \fBbspwm\fR\&. If it isn\(cqt defined, then the following path is used:
1160 \fI/tmp/bspwm<display_name>\-socket\fR\&.
1166 \h'-04'\(bu\h'+03'\c
1172 Any EWMH compliant panel (e\&.g\&.:
1174 \fIbmpanel2\fR, etc\&.)\&.
1179 \h'-04'\(bu\h'+03'\c
1185 A custom panel if the
1187 flag is used (have a look at the files in
1188 \fIexamples/panel\fR)\&.
1194 \h'-04'\(bu\h'+03'\c
1200 Configured and controlled through messages\&.
1205 \h'-04'\(bu\h'+03'\c
1211 Multiple monitors support (via
1217 \h'-04'\(bu\h'+03'\c
1223 EWMH support (\fBtint2\fR
1229 \h'-04'\(bu\h'+03'\c
1241 \h'-04'\(bu\h'+03'\c
1247 Steven Allen <steven at stebalien\&.com>
1252 \h'-04'\(bu\h'+03'\c
1258 Thomas Adam <thomas at xteddy\&.org>
1263 \h'-04'\(bu\h'+03'\c
1269 Ivan Kanakarakis <ivan\&.kanak at gmail\&.com>
1273 Bastien Dejean <nihilhill at gmail\&.com>
1276 bspwm at librelist\&.com