]> git.lizzy.rs Git - bspwm.git/blob - doc/bspwm.1
104223a7ebce88bf7eaf8603ae63e57afb4f7e20
[bspwm.git] / doc / bspwm.1
1 '\" t
2 .\"     Title: bspwm
3 .\"    Author: [see the "Author" section]
4 .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
5 .\"      Date: 03/07/2018
6 .\"    Manual: Bspwm Manual
7 .\"    Source: Bspwm 0.9.3-55-g7d639d1
8 .\"  Language: English
9 .\"
10 .TH "BSPWM" "1" "03/07/2018" "Bspwm 0\&.9\&.3\-55\-g7d639d1" "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 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18 .ie \n(.g .ds Aq \(aq
19 .el       .ds Aq '
20 .\" -----------------------------------------------------------------
21 .\" * set default formatting
22 .\" -----------------------------------------------------------------
23 .\" disable hyphenation
24 .nh
25 .\" disable justification (adjust text to left margin only)
26 .ad l
27 .\" -----------------------------------------------------------------
28 .\" * MAIN CONTENT STARTS HERE *
29 .\" -----------------------------------------------------------------
30 .SH "NAME"
31 bspwm \- Binary space partitioning window manager
32 .SH "SYNOPSIS"
33 .sp
34 \fBbspwm\fR [\fB\-h\fR|\fB\-v\fR|\fB\-c\fR \fICONFIG_PATH\fR]
35 .sp
36 \fBbspc\fR \fIDOMAIN\fR [\fISELECTOR\fR] \fICOMMANDS\fR
37 .sp
38 \fBbspc\fR \fICOMMAND\fR [\fIOPTIONS\fR] [\fIARGUMENTS\fR]
39 .SH "DESCRIPTION"
40 .sp
41 \fBbspwm\fR is a tiling window manager that represents windows as the leaves of a full binary tree\&.
42 .sp
43 It is controlled and configured via \fBbspc\fR\&.
44 .SH "OPTIONS"
45 .PP
46 \fB\-h\fR
47 .RS 4
48 Print the synopsis and exit\&.
49 .RE
50 .PP
51 \fB\-v\fR
52 .RS 4
53 Print the version and exit\&.
54 .RE
55 .PP
56 \fB\-c\fR \fICONFIG_PATH\fR
57 .RS 4
58 Use the given configuration file\&.
59 .RE
60 .SH "COMMON DEFINITIONS"
61 .sp
62 .if n \{\
63 .RS 4
64 .\}
65 .nf
66 DIR         := north | west | south | east
67 CYCLE_DIR   := next | prev
68 .fi
69 .if n \{\
70 .RE
71 .\}
72 .SH "SELECTORS"
73 .sp
74 Selectors are used to select a target node, desktop, or monitor\&. A selector can either describe the target relatively or name it globally\&.
75 .sp
76 Selectors consist of an optional reference, a descriptor and any number of non\-conflicting modifiers as follows:
77 .sp
78 .if n \{\
79 .RS 4
80 .\}
81 .nf
82 [REFERENCE#]DESCRIPTOR(\&.MODIFIER)*
83 .fi
84 .if n \{\
85 .RE
86 .\}
87 .sp
88 The relative targets are computed in relation to the given reference (the default reference value is \fBfocused\fR)\&.
89 .sp
90 An exclamation mark can be prepended to any modifier in order to reverse its meaning\&.
91 .sp
92 The following characters cannot be used in monitor or desktop names: \fB#\fR, \fB:\fR, \fB\&.\fR\&.
93 .sp
94 The special selector \fB%<name>\fR can be used to select a monitor or a desktop with an invalid name\&.
95 .SS "Node"
96 .sp
97 Select a node\&.
98 .sp
99 .if n \{\
100 .RS 4
101 .\}
102 .nf
103 NODE_SEL := [NODE_SEL#](DIR|CYCLE_DIR|PATH|any|last|newest|
104                         older|newer|focused|pointed|
105                         biggest|<node_id>)[\&.[!]focused][\&.[!]automatic][\&.[!]local][\&.[!]active]
106                                           [\&.[!]leaf][\&.[!]window][\&.[!]STATE][\&.[!]FLAG][\&.[!]LAYER]
107                                           [\&.[!]same_class][\&.[!]descendant_of][\&.[!]ancestor_of]
108
109 STATE := tiled|pseudo_tiled|floating|fullscreen
110
111 FLAG := hidden|sticky|private|locked|marked|urgent
112
113 LAYER := below|normal|above
114
115 PATH := @[DESKTOP_SEL:][[/]JUMP](/JUMP)*
116
117 JUMP := first|1|second|2|brother|parent|DIR
118 .fi
119 .if n \{\
120 .RE
121 .\}
122 .sp
123 .it 1 an-trap
124 .nr an-no-space-flag 1
125 .nr an-break-flag 1
126 .br
127 .ps +1
128 \fBDescriptors\fR
129 .RS 4
130 .PP
131 \fIDIR\fR
132 .RS 4
133 Selects the window in the given (spacial) direction relative to the reference node\&.
134 .RE
135 .PP
136 \fICYCLE_DIR\fR
137 .RS 4
138 Selects the window in the given (cyclic) direction relative to the reference node\&.
139 .RE
140 .PP
141 \fIPATH\fR
142 .RS 4
143 Selects the node at the given path\&.
144 .RE
145 .PP
146 any
147 .RS 4
148 Selects the first node that matches the given selectors\&.
149 .RE
150 .PP
151 last
152 .RS 4
153 Selects the previously focused node relative to the reference node\&.
154 .RE
155 .PP
156 newest
157 .RS 4
158 Selects the newest node in the history of the focused node\&.
159 .RE
160 .PP
161 older
162 .RS 4
163 Selects the node older than the reference node in the history\&.
164 .RE
165 .PP
166 newer
167 .RS 4
168 Selects the node newer than the reference node in the history\&.
169 .RE
170 .PP
171 focused
172 .RS 4
173 Selects the currently focused node\&.
174 .RE
175 .PP
176 pointed
177 .RS 4
178 Selects the window under the pointer\&.
179 .RE
180 .PP
181 biggest
182 .RS 4
183 Selects the biggest window\&.
184 .RE
185 .PP
186 <node_id>
187 .RS 4
188 Selects the node with the given ID\&.
189 .RE
190 .RE
191 .sp
192 .it 1 an-trap
193 .nr an-no-space-flag 1
194 .nr an-break-flag 1
195 .br
196 .ps +1
197 \fBPath Jumps\fR
198 .RS 4
199 .sp
200 The initial node is the focused node (or the root if the path starts with \fI/\fR) of the reference desktop (or the selected desktop if the path has a \fIDESKTOP_SEL\fR prefix)\&.
201 .PP
202 1|first
203 .RS 4
204 Jumps to the first child\&.
205 .RE
206 .PP
207 2|second
208 .RS 4
209 Jumps to the second child\&.
210 .RE
211 .PP
212 brother
213 .RS 4
214 Jumps to the brother node\&.
215 .RE
216 .PP
217 parent
218 .RS 4
219 Jumps to the parent node\&.
220 .RE
221 .PP
222 \fIDIR\fR
223 .RS 4
224 Jumps to the node holding the edge in the given direction\&.
225 .RE
226 .RE
227 .sp
228 .it 1 an-trap
229 .nr an-no-space-flag 1
230 .nr an-break-flag 1
231 .br
232 .ps +1
233 \fBModifiers\fR
234 .RS 4
235 .PP
236 [!]focused
237 .RS 4
238 Only consider focused or unfocused nodes\&.
239 .RE
240 .PP
241 [!]automatic
242 .RS 4
243 Only consider nodes in automatic or manual insertion mode\&. See also
244 \fB\-\-presel\-dir\fR
245 under
246 \fBNode\fR
247 in the
248 \fBDOMAINS\fR
249 section below\&.
250 .RE
251 .PP
252 [!]local
253 .RS 4
254 Only consider nodes in or not in the reference desktop\&.
255 .RE
256 .PP
257 [!]active
258 .RS 4
259 Only consider nodes in or not in the active desktop of their monitor\&.
260 .RE
261 .PP
262 [!]leaf
263 .RS 4
264 Only consider leaves or internal nodes\&.
265 .RE
266 .PP
267 [!]window
268 .RS 4
269 Only consider nodes that hold or don\(cqt hold a window\&.
270 .RE
271 .PP
272 [!](tiled|pseudo_tiled|floating|fullscreen)
273 .RS 4
274 Only consider windows in or not in the given state\&.
275 .RE
276 .PP
277 [!]same_class
278 .RS 4
279 Only consider windows that have or don\(cqt have the same class as the reference window\&.
280 .RE
281 .PP
282 [!]descendant_of
283 .RS 4
284 Only consider nodes that are or aren\(cqt descendants of the reference node\&.
285 .RE
286 .PP
287 [!]ancestor_of
288 .RS 4
289 Only consider nodes that are or aren\(cqt ancestors of the reference node\&.
290 .RE
291 .PP
292 [!](hidden|sticky|private|locked|marked|urgent)
293 .RS 4
294 Only consider windows that have or don\(cqt have the given flag set\&.
295 .RE
296 .PP
297 [!](below|normal|above)
298 .RS 4
299 Only consider windows in or not in the given layer\&.
300 .RE
301 .RE
302 .SS "Desktop"
303 .sp
304 Select a desktop\&.
305 .sp
306 .if n \{\
307 .RS 4
308 .\}
309 .nf
310 DESKTOP_SEL := [DESKTOP_SEL#](CYCLE_DIR|any|last|newest|older|newer|
311                               [MONITOR_SEL:](focused|^<n>)|
312                               <desktop_id>|<desktop_name>)[\&.[!]occupied][\&.[!]focused][\&.[!]urgent][\&.[!]local]
313 .fi
314 .if n \{\
315 .RE
316 .\}
317 .sp
318 .it 1 an-trap
319 .nr an-no-space-flag 1
320 .nr an-break-flag 1
321 .br
322 .ps +1
323 \fBDescriptors\fR
324 .RS 4
325 .PP
326 \fICYCLE_DIR\fR
327 .RS 4
328 Selects the desktop in the given direction relative to the reference desktop\&.
329 .RE
330 .PP
331 any
332 .RS 4
333 Selects the first desktop that matches the given selectors\&.
334 .RE
335 .PP
336 last
337 .RS 4
338 Selects the previously focused desktop relative to the reference desktop\&.
339 .RE
340 .PP
341 newest
342 .RS 4
343 Selects the newest desktop in the history of the focused desktops\&.
344 .RE
345 .PP
346 older
347 .RS 4
348 Selects the desktop older than the reference desktop in the history\&.
349 .RE
350 .PP
351 newer
352 .RS 4
353 Selects the desktop newer than the reference desktop in the history\&.
354 .RE
355 .PP
356 focused
357 .RS 4
358 Selects the currently focused desktop\&.
359 .RE
360 .PP
361 ^<n>
362 .RS 4
363 Selects the nth desktop\&. If
364 \fBMONITOR_SEL\fR
365 is given, selects the nth desktop on the selected monitor\&.
366 .RE
367 .PP
368 <desktop_id>
369 .RS 4
370 Selects the desktop with the given ID\&.
371 .RE
372 .PP
373 <desktop_name>
374 .RS 4
375 Selects the desktop with the given name\&.
376 .RE
377 .RE
378 .sp
379 .it 1 an-trap
380 .nr an-no-space-flag 1
381 .nr an-break-flag 1
382 .br
383 .ps +1
384 \fBModifiers\fR
385 .RS 4
386 .PP
387 [!]occupied
388 .RS 4
389 Only consider occupied or free desktops\&.
390 .RE
391 .PP
392 [!]focused
393 .RS 4
394 Only consider focused or unfocused desktops\&.
395 .RE
396 .PP
397 [!]urgent
398 .RS 4
399 Only consider urgent or non urgent desktops\&.
400 .RE
401 .PP
402 [!]local
403 .RS 4
404 Only consider desktops inside or outside of the reference monitor\&.
405 .RE
406 .RE
407 .SS "Monitor"
408 .sp
409 Select a monitor\&.
410 .sp
411 .if n \{\
412 .RS 4
413 .\}
414 .nf
415 MONITOR_SEL := [MONITOR_SEL#](DIR|CYCLE_DIR|any|last|newest|older|newer|
416                               focused|pointed|primary|^<n>|
417                               <monitor_id>|<monitor_name>)[\&.[!]occupied][\&.[!]focused]
418 .fi
419 .if n \{\
420 .RE
421 .\}
422 .sp
423 .it 1 an-trap
424 .nr an-no-space-flag 1
425 .nr an-break-flag 1
426 .br
427 .ps +1
428 \fBDescriptors\fR
429 .RS 4
430 .PP
431 \fIDIR\fR
432 .RS 4
433 Selects the monitor in the given (spacial) direction relative to the reference monitor\&.
434 .RE
435 .PP
436 \fICYCLE_DIR\fR
437 .RS 4
438 Selects the monitor in the given (cyclic) direction relative to the reference monitor\&.
439 .RE
440 .PP
441 any
442 .RS 4
443 Selects the first monitor that matches the given selectors\&.
444 .RE
445 .PP
446 last
447 .RS 4
448 Selects the previously focused monitor relative to the reference monitor\&.
449 .RE
450 .PP
451 newest
452 .RS 4
453 Selects the newest monitor in the history of the focused monitors\&.
454 .RE
455 .PP
456 older
457 .RS 4
458 Selects the monitor older than the reference monitor in the history\&.
459 .RE
460 .PP
461 newer
462 .RS 4
463 Selects the monitor newer than the reference monitor in the history\&.
464 .RE
465 .PP
466 focused
467 .RS 4
468 Selects the currently focused monitor\&.
469 .RE
470 .PP
471 pointed
472 .RS 4
473 Selects the monitor under the pointer\&.
474 .RE
475 .PP
476 primary
477 .RS 4
478 Selects the primary monitor\&.
479 .RE
480 .PP
481 ^<n>
482 .RS 4
483 Selects the nth monitor\&.
484 .RE
485 .PP
486 <monitor_id>
487 .RS 4
488 Selects the monitor with the given ID\&.
489 .RE
490 .PP
491 <monitor_name>
492 .RS 4
493 Selects the monitor with the given name\&.
494 .RE
495 .RE
496 .sp
497 .it 1 an-trap
498 .nr an-no-space-flag 1
499 .nr an-break-flag 1
500 .br
501 .ps +1
502 \fBModifiers\fR
503 .RS 4
504 .PP
505 [!]occupied
506 .RS 4
507 Only consider monitors where the focused desktop is occupied or free\&.
508 .RE
509 .PP
510 [!]focused
511 .RS 4
512 Only consider focused or unfocused monitors\&.
513 .RE
514 .RE
515 .SH "WINDOW STATES"
516 .PP
517 tiled
518 .RS 4
519 Its size and position are determined by the splitting type and ratio of each node of its path in the window tree\&.
520 .RE
521 .PP
522 pseudo_tiled
523 .RS 4
524 Has an unrestricted size while being centered in its tiling space\&.
525 .RE
526 .PP
527 floating
528 .RS 4
529 Can be moved/resized freely\&. Although it doesn\(cqt occupy any tiling space, it is still part of the window tree\&.
530 .RE
531 .PP
532 fullscreen
533 .RS 4
534 Fills its monitor rectangle and has no borders\&. It is send in the ABOVE layer by default\&.
535 .RE
536 .SH "NODE FLAGS"
537 .PP
538 hidden
539 .RS 4
540 Is hidden and doesn\(cqt occupy any tiling space\&.
541 .RE
542 .PP
543 sticky
544 .RS 4
545 Stays in the focused desktop of its monitor\&.
546 .RE
547 .PP
548 private
549 .RS 4
550 Tries to keep the same tiling position/size\&.
551 .RE
552 .PP
553 locked
554 .RS 4
555 Ignores the
556 \fBnode \-\-close\fR
557 message\&.
558 .RE
559 .PP
560 marked
561 .RS 4
562 Is marked (useful for deferred operations)\&.
563 .RE
564 .PP
565 urgent
566 .RS 4
567 Has its urgency hint set\&. This flag is set externally\&.
568 .RE
569 .SH "STACKING LAYERS"
570 .sp
571 There\(cqs three stacking layers: BELOW, NORMAL and ABOVE\&.
572 .sp
573 In each layer, the window are orderered as follow: tiled & pseudo\-tiled < fullscreen < floating\&.
574 .SH "RECEPTACLES"
575 .sp
576 A leaf node that doesn\(cqt hold any window is called a receptacle\&. When a node is inserted on a receptacle in automatic mode, it will replace the receptacle\&. A receptacle can be inserted on a node and preselected\&. Receptacles can therefore be used to build a tree whose leaves are receptacles\&. Using the appropriate rules, one can then send windows on the leaves of this tree\&. This feature is used in \fIexamples/receptacles\fR to store and recreate layouts\&.
577 .SH "DOMAINS"
578 .SS "Node"
579 .sp
580 .it 1 an-trap
581 .nr an-no-space-flag 1
582 .nr an-break-flag 1
583 .br
584 .ps +1
585 \fBGeneral Syntax\fR
586 .RS 4
587 .sp
588 node [\fINODE_SEL\fR] \fICOMMANDS\fR
589 .sp
590 If \fINODE_SEL\fR is omitted, \fBfocused\fR is assumed\&.
591 .RE
592 .sp
593 .it 1 an-trap
594 .nr an-no-space-flag 1
595 .nr an-break-flag 1
596 .br
597 .ps +1
598 \fBCommands\fR
599 .RS 4
600 .PP
601 \fB\-f\fR, \fB\-\-focus\fR [\fINODE_SEL\fR]
602 .RS 4
603 Focus the selected or given node\&.
604 .RE
605 .PP
606 \fB\-a\fR, \fB\-\-activate\fR [\fINODE_SEL\fR]
607 .RS 4
608 Activate the selected or given node\&.
609 .RE
610 .PP
611 \fB\-d\fR, \fB\-\-to\-desktop\fR \fIDESKTOP_SEL\fR [\fB\-\-follow\fR]
612 .RS 4
613 Send the selected node to the given desktop\&. If
614 \fB\-\-follow\fR
615 is passed, the focused node will stay focused\&.
616 .RE
617 .PP
618 \fB\-m\fR, \fB\-\-to\-monitor\fR \fIMONITOR_SEL\fR [\fB\-\-follow\fR]
619 .RS 4
620 Send the selected node to the given monitor\&. If
621 \fB\-\-follow\fR
622 is passed, the focused node will stay focused\&.
623 .RE
624 .PP
625 \fB\-n\fR, \fB\-\-to\-node\fR \fINODE_SEL\fR [\fB\-\-follow\fR]
626 .RS 4
627 Send the selected node on the given node\&. If
628 \fB\-\-follow\fR
629 is passed, the focused node will stay focused\&.
630 .RE
631 .PP
632 \fB\-s\fR, \fB\-\-swap\fR \fINODE_SEL\fR [\fB\-\-follow\fR]
633 .RS 4
634 Swap the selected node with the given node\&. If
635 \fB\-\-follow\fR
636 is passed, the focused node will stay focused\&.
637 .RE
638 .PP
639 \fB\-p\fR, \fB\-\-presel\-dir\fR [~]\fIDIR\fR|cancel
640 .RS 4
641 Preselect the splitting area of the selected node (or cancel the preselection)\&. If
642 \fB~\fR
643 is prepended to
644 \fIDIR\fR
645 and the current preselection direction matches
646 \fIDIR\fR, then the argument is interpreted as
647 \fBcancel\fR\&. A node with a preselected area is said to be in "manual insertion mode"\&.
648 .RE
649 .PP
650 \fB\-o\fR, \fB\-\-presel\-ratio\fR \fIRATIO\fR
651 .RS 4
652 Set the splitting ratio of the preselection area\&.
653 .RE
654 .PP
655 \fB\-v\fR, \fB\-\-move\fR \fIdx\fR \fIdy\fR
656 .RS 4
657 Move the selected window by
658 \fIdx\fR
659 pixels horizontally and
660 \fIdy\fR
661 pixels vertically\&.
662 .RE
663 .PP
664 \fB\-z\fR, \fB\-\-resize\fR top|left|bottom|right|top_left|top_right|bottom_right|bottom_left \fIdx\fR \fIdy\fR
665 .RS 4
666 Resize the selected window by moving the given handle by
667 \fIdx\fR
668 pixels horizontally and
669 \fIdy\fR
670 pixels vertically\&.
671 .RE
672 .PP
673 \fB\-r\fR, \fB\-\-ratio\fR \fIRATIO\fR|(+|\-)(\fIPIXELS\fR|\fIFRACTION\fR)
674 .RS 4
675 Set the splitting ratio of the selected node (0 <
676 \fIRATIO\fR
677 < 1)\&.
678 .RE
679 .PP
680 \fB\-R\fR, \fB\-\-rotate\fR \fI90|270|180\fR
681 .RS 4
682 Rotate the tree rooted at the selected node\&.
683 .RE
684 .PP
685 \fB\-F\fR, \fB\-\-flip\fR \fIhorizontal|vertical\fR
686 .RS 4
687 Flip the the tree rooted at selected node\&.
688 .RE
689 .PP
690 \fB\-E\fR, \fB\-\-equalize\fR
691 .RS 4
692 Reset the split ratios of the tree rooted at the selected node to their default value\&.
693 .RE
694 .PP
695 \fB\-B\fR, \fB\-\-balance\fR
696 .RS 4
697 Adjust the split ratios of the tree rooted at the selected node so that all windows occupy the same area\&.
698 .RE
699 .PP
700 \fB\-C\fR, \fB\-\-circulate\fR forward|backward
701 .RS 4
702 Circulate the windows of the tree rooted at the selected node\&.
703 .RE
704 .PP
705 \fB\-t\fR, \fB\-\-state\fR [~](tiled|pseudo_tiled|floating|fullscreen)
706 .RS 4
707 Set the state of the selected window\&. If
708 \fB~\fR
709 is present and the current state matches the given state, then the argument is interpreted as the last state\&.
710 .RE
711 .PP
712 \fB\-g\fR, \fB\-\-flag\fR hidden|sticky|private|locked|marked[=on|off]
713 .RS 4
714 Set or toggle the given flag for the selected node\&.
715 .RE
716 .PP
717 \fB\-l\fR, \fB\-\-layer\fR below|normal|above
718 .RS 4
719 Set the stacking layer of the selected window\&.
720 .RE
721 .PP
722 \fB\-i\fR, \fB\-\-insert\-receptacle\fR
723 .RS 4
724 Insert a receptacle node at the selected node\&.
725 .RE
726 .PP
727 \fB\-c\fR, \fB\-\-close\fR
728 .RS 4
729 Close the windows rooted at the selected node\&.
730 .RE
731 .PP
732 \fB\-k\fR, \fB\-\-kill\fR
733 .RS 4
734 Kill the windows rooted at the selected node\&.
735 .RE
736 .RE
737 .SS "Desktop"
738 .sp
739 .it 1 an-trap
740 .nr an-no-space-flag 1
741 .nr an-break-flag 1
742 .br
743 .ps +1
744 \fBGeneral Syntax\fR
745 .RS 4
746 .sp
747 desktop [\fIDESKTOP_SEL\fR] \fICOMMANDS\fR
748 .sp
749 If \fIDESKTOP_SEL\fR is omitted, \fBfocused\fR is assumed\&.
750 .RE
751 .sp
752 .it 1 an-trap
753 .nr an-no-space-flag 1
754 .nr an-break-flag 1
755 .br
756 .ps +1
757 \fBCOMMANDS\fR
758 .RS 4
759 .PP
760 \fB\-f\fR, \fB\-\-focus\fR [\fIDESKTOP_SEL\fR]
761 .RS 4
762 Focus the selected or given desktop\&.
763 .RE
764 .PP
765 \fB\-a\fR, \fB\-\-activate\fR [\fIDESKTOP_SEL\fR]
766 .RS 4
767 Activate the selected or given desktop\&.
768 .RE
769 .PP
770 \fB\-m\fR, \fB\-\-to\-monitor\fR \fIMONITOR_SEL\fR [\fB\-\-follow\fR]
771 .RS 4
772 Send the selected desktop to the given monitor\&. If
773 \fB\-\-follow\fR
774 is passed, the focused desktop will stay focused\&.
775 .RE
776 .PP
777 \fB\-s\fR, \fB\-\-swap\fR \fIDESKTOP_SEL\fR [\fB\-\-follow\fR]
778 .RS 4
779 Swap the selected desktop with the given desktop\&. If
780 \fB\-\-follow\fR
781 is passed, the focused desktop will stay focused\&.
782 .RE
783 .PP
784 \fB\-l\fR, \fB\-\-layout\fR \fICYCLE_DIR\fR|monocle|tiled
785 .RS 4
786 Set or cycle the layout of the selected desktop\&.
787 .RE
788 .PP
789 \fB\-n\fR, \fB\-\-rename\fR <new_name>
790 .RS 4
791 Rename the selected desktop\&.
792 .RE
793 .PP
794 \fB\-b\fR, \fB\-\-bubble\fR \fICYCLE_DIR\fR
795 .RS 4
796 Bubble the selected desktop in the given direction\&.
797 .RE
798 .PP
799 \fB\-r\fR, \fB\-\-remove\fR
800 .RS 4
801 Remove the selected desktop\&.
802 .RE
803 .RE
804 .SS "Monitor"
805 .sp
806 .it 1 an-trap
807 .nr an-no-space-flag 1
808 .nr an-break-flag 1
809 .br
810 .ps +1
811 \fBGeneral Syntax\fR
812 .RS 4
813 .sp
814 monitor [\fIMONITOR_SEL\fR] \fICOMMANDS\fR
815 .sp
816 If \fIMONITOR_SEL\fR is omitted, \fBfocused\fR is assumed\&.
817 .RE
818 .sp
819 .it 1 an-trap
820 .nr an-no-space-flag 1
821 .nr an-break-flag 1
822 .br
823 .ps +1
824 \fBCommands\fR
825 .RS 4
826 .PP
827 \fB\-f\fR, \fB\-\-focus\fR [\fIMONITOR_SEL\fR]
828 .RS 4
829 Focus the selected or given monitor\&.
830 .RE
831 .PP
832 \fB\-s\fR, \fB\-\-swap\fR \fIMONITOR_SEL\fR
833 .RS 4
834 Swap the selected monitor with the given monitor\&.
835 .RE
836 .PP
837 \fB\-a\fR, \fB\-\-add\-desktops\fR <name>\&...
838 .RS 4
839 Create desktops with the given names in the selected monitor\&.
840 .RE
841 .PP
842 \fB\-o\fR, \fB\-\-reorder\-desktops\fR <name>\&...
843 .RS 4
844 Reorder the desktops of the selected monitor to match the given order\&.
845 .RE
846 .PP
847 \fB\-d\fR, \fB\-\-reset\-desktops\fR <name>\&...
848 .RS 4
849 Rename, add or remove desktops depending on whether the number of given names is equal, superior or inferior to the number of existing desktops\&.
850 .RE
851 .PP
852 \fB\-g\fR, \fB\-\-rectangle\fR WxH+X+Y
853 .RS 4
854 Set the rectangle of the selected monitor\&.
855 .RE
856 .PP
857 \fB\-n\fR, \fB\-\-rename\fR <new_name>
858 .RS 4
859 Rename the selected monitor\&.
860 .RE
861 .PP
862 \fB\-r\fR, \fB\-\-remove\fR
863 .RS 4
864 Remove the selected monitor\&.
865 .RE
866 .RE
867 .SS "Query"
868 .sp
869 .it 1 an-trap
870 .nr an-no-space-flag 1
871 .nr an-break-flag 1
872 .br
873 .ps +1
874 \fBGeneral Syntax\fR
875 .RS 4
876 .sp
877 query \fICOMMANDS\fR [\fIOPTIONS\fR]
878 .RE
879 .sp
880 .it 1 an-trap
881 .nr an-no-space-flag 1
882 .nr an-break-flag 1
883 .br
884 .ps +1
885 \fBCommands\fR
886 .RS 4
887 .sp
888 The optional selectors are references\&.
889 .PP
890 \fB\-N\fR, \fB\-\-nodes\fR [\fINODE_SEL\fR]
891 .RS 4
892 List the IDs of the matching nodes\&.
893 .RE
894 .PP
895 \fB\-D\fR, \fB\-\-desktops\fR [\fIDESKTOP_SEL\fR]
896 .RS 4
897 List the IDs (or names) of the matching desktops\&.
898 .RE
899 .PP
900 \fB\-M\fR, \fB\-\-monitors\fR [\fIMONITOR_SEL\fR]
901 .RS 4
902 List the IDs (or names) of the matching monitors\&.
903 .RE
904 .PP
905 \fB\-T\fR, \fB\-\-tree\fR
906 .RS 4
907 Print a JSON representation of the matching item\&.
908 .RE
909 .RE
910 .sp
911 .it 1 an-trap
912 .nr an-no-space-flag 1
913 .nr an-break-flag 1
914 .br
915 .ps +1
916 \fBOptions\fR
917 .RS 4
918 .PP
919 \fB\-m\fR,\fB\-\-monitor\fR [\fIMONITOR_SEL\fR], \fB\-d\fR,\fB\-\-desktop\fR [\fIDESKTOP_SEL\fR], \fB\-n\fR, \fB\-\-node\fR [\fINODE_SEL\fR]
920 .RS 4
921 Constrain matches to the selected monitor, desktop or node\&. The descriptor can be omitted for
922 \fI\-M\fR,
923 \fI\-D\fR
924 and
925 \fI\-N\fR\&.
926 .RE
927 .PP
928 \fB\-\-names\fR
929 .RS 4
930 Print names instead of IDs\&. Can only be used with
931 \fI\-M\fR
932 and
933 \fI\-D\fR\&.
934 .RE
935 .RE
936 .SS "Wm"
937 .sp
938 .it 1 an-trap
939 .nr an-no-space-flag 1
940 .nr an-break-flag 1
941 .br
942 .ps +1
943 \fBGeneral Syntax\fR
944 .RS 4
945 .sp
946 wm \fICOMMANDS\fR
947 .RE
948 .sp
949 .it 1 an-trap
950 .nr an-no-space-flag 1
951 .nr an-break-flag 1
952 .br
953 .ps +1
954 \fBCommands\fR
955 .RS 4
956 .PP
957 \fB\-d\fR, \fB\-\-dump\-state\fR
958 .RS 4
959 Dump the current world state on standard output\&.
960 .RE
961 .PP
962 \fB\-l\fR, \fB\-\-load\-state\fR <file_path>
963 .RS 4
964 Load a world state from the given file\&.
965 .RE
966 .PP
967 \fB\-a\fR, \fB\-\-add\-monitor\fR <name> WxH+X+Y
968 .RS 4
969 Add a monitor for the given name and rectangle\&.
970 .RE
971 .PP
972 \fB\-O\fR, \fB\-\-reorder\-monitors\fR <name>\&...
973 .RS 4
974 Reorder the list of monitors to match the given order\&.
975 .RE
976 .PP
977 \fB\-o\fR, \fB\-\-adopt\-orphans\fR
978 .RS 4
979 Manage all the unmanaged windows remaining from a previous session\&.
980 .RE
981 .PP
982 \fB\-h\fR, \fB\-\-record\-history\fR on|off
983 .RS 4
984 Enable or disable the recording of node focus history\&.
985 .RE
986 .PP
987 \fB\-g\fR, \fB\-\-get\-status\fR
988 .RS 4
989 Print the current status information\&.
990 .RE
991 .RE
992 .SS "Rule"
993 .sp
994 .it 1 an-trap
995 .nr an-no-space-flag 1
996 .nr an-break-flag 1
997 .br
998 .ps +1
999 \fBGeneral Syntax\fR
1000 .RS 4
1001 .sp
1002 rule \fICOMMANDS\fR
1003 .RE
1004 .sp
1005 .it 1 an-trap
1006 .nr an-no-space-flag 1
1007 .nr an-break-flag 1
1008 .br
1009 .ps +1
1010 \fBCommands\fR
1011 .RS 4
1012 .PP
1013 \fB\-a\fR, \fB\-\-add\fR (<class_name>|*)[:(<instance_name>|*)] [\fB\-o\fR|\fB\-\-one\-shot\fR] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|node=NODE_SEL] [state=STATE] [layer=LAYER] [split_dir=DIR] [split_ratio=RATIO] [(hidden|sticky|private|locked|marked|center|follow|manage|focus|border)=(on|off)] [rectangle=WxH+X+Y]
1014 .RS 4
1015 Create a new rule\&.
1016 .RE
1017 .PP
1018 \fB\-r\fR, \fB\-\-remove\fR ^<n>|head|tail|(<class_name>|*)[:(<instance_name>|*)]\&...
1019 .RS 4
1020 Remove the given rules\&.
1021 .RE
1022 .PP
1023 \fB\-l\fR, \fB\-\-list\fR
1024 .RS 4
1025 List the rules\&.
1026 .RE
1027 .RE
1028 .SS "Config"
1029 .sp
1030 .it 1 an-trap
1031 .nr an-no-space-flag 1
1032 .nr an-break-flag 1
1033 .br
1034 .ps +1
1035 \fBGeneral Syntax\fR
1036 .RS 4
1037 .PP
1038 config [\-m \fIMONITOR_SEL\fR|\-d \fIDESKTOP_SEL\fR|\-n \fINODE_SEL\fR] <setting> [<value>]
1039 .RS 4
1040 Get or set the value of <setting>\&.
1041 .RE
1042 .RE
1043 .SS "Subscribe"
1044 .sp
1045 .it 1 an-trap
1046 .nr an-no-space-flag 1
1047 .nr an-break-flag 1
1048 .br
1049 .ps +1
1050 \fBGeneral Syntax\fR
1051 .RS 4
1052 .PP
1053 subscribe [\fIOPTIONS\fR] (all|report|monitor|desktop|node|\&...)*
1054 .RS 4
1055 Continuously print events\&. See the
1056 \fBEVENTS\fR
1057 section for the description of each event\&.
1058 .RE
1059 .RE
1060 .sp
1061 .it 1 an-trap
1062 .nr an-no-space-flag 1
1063 .nr an-break-flag 1
1064 .br
1065 .ps +1
1066 \fBOptions\fR
1067 .RS 4
1068 .PP
1069 \fB\-f\fR, \fB\-\-fifo\fR
1070 .RS 4
1071 Print a path to a FIFO from which events can be read and return\&.
1072 .RE
1073 .PP
1074 \fB\-c\fR, \fB\-\-count\fR \fICOUNT\fR
1075 .RS 4
1076 Stop the corresponding
1077 \fBbspc\fR
1078 process after having received
1079 \fICOUNT\fR
1080 events\&.
1081 .RE
1082 .RE
1083 .SS "Quit"
1084 .sp
1085 .it 1 an-trap
1086 .nr an-no-space-flag 1
1087 .nr an-break-flag 1
1088 .br
1089 .ps +1
1090 \fBGeneral Syntax\fR
1091 .RS 4
1092 .PP
1093 quit [<status>]
1094 .RS 4
1095 Quit with an optional exit status\&.
1096 .RE
1097 .RE
1098 .SH "EXIT CODES"
1099 .sp
1100 If the server can\(cqt handle a message, \fBbspc\fR will return with a non\-zero exit code\&.
1101 .SH "SETTINGS"
1102 .sp
1103 Colors are in the form \fI#RRGGBB\fR, booleans are \fItrue\fR, \fIon\fR, \fIfalse\fR or \fIoff\fR\&.
1104 .sp
1105 All the boolean settings are \fIfalse\fR by default unless stated otherwise\&.
1106 .SS "Global Settings"
1107 .PP
1108 \fInormal_border_color\fR
1109 .RS 4
1110 Color of the border of an unfocused window\&.
1111 .RE
1112 .PP
1113 \fIactive_border_color\fR
1114 .RS 4
1115 Color of the border of a focused window of an unfocused monitor\&.
1116 .RE
1117 .PP
1118 \fIfocused_border_color\fR
1119 .RS 4
1120 Color of the border of a focused window of a focused monitor\&.
1121 .RE
1122 .PP
1123 \fIpresel_feedback_color\fR
1124 .RS 4
1125 Color of the
1126 \fBnode \-\-presel\-{dir,ratio}\fR
1127 message feedback area\&.
1128 .RE
1129 .PP
1130 \fIsplit_ratio\fR
1131 .RS 4
1132 Default split ratio\&.
1133 .RE
1134 .PP
1135 \fIstatus_prefix\fR
1136 .RS 4
1137 Prefix prepended to each of the status lines\&.
1138 .RE
1139 .PP
1140 \fIexternal_rules_command\fR
1141 .RS 4
1142 External command used to retrieve rule consequences\&. The command will receive the following arguments: window ID, class name, instance name, and intermediate consequences\&. The output of that command must have the following format:
1143 \fBkey1=value1 key2=value2 \&...\fR
1144 (the valid key/value pairs are given in the description of the
1145 \fIrule\fR
1146 command)\&.
1147 .RE
1148 .PP
1149 \fIinitial_polarity\fR
1150 .RS 4
1151 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:
1152 \fBfirst_child\fR,
1153 \fBsecond_child\fR\&.
1154 .RE
1155 .PP
1156 \fIdirectional_focus_tightness\fR
1157 .RS 4
1158 The tightness of the algorithm used to decide whether a window is on the
1159 \fIDIR\fR
1160 side of another window\&. Accept the following values:
1161 \fBhigh\fR,
1162 \fBlow\fR\&.
1163 .RE
1164 .PP
1165 \fIborderless_monocle\fR
1166 .RS 4
1167 Remove borders of tiled windows for the
1168 \fBmonocle\fR
1169 desktop layout\&.
1170 .RE
1171 .PP
1172 \fIgapless_monocle\fR
1173 .RS 4
1174 Remove gaps of tiled windows for the
1175 \fBmonocle\fR
1176 desktop layout\&.
1177 .RE
1178 .PP
1179 \fIpaddingless_monocle\fR
1180 .RS 4
1181 Remove padding space for the
1182 \fBmonocle\fR
1183 desktop layout\&.
1184 .RE
1185 .PP
1186 \fIsingle_monocle\fR
1187 .RS 4
1188 Set the desktop layout to
1189 \fBmonocle\fR
1190 if there\(cqs only one tiled window in the tree\&.
1191 .RE
1192 .PP
1193 \fIpointer_motion_interval\fR
1194 .RS 4
1195 The minimum interval, in milliseconds, between two motion notify events\&.
1196 .RE
1197 .PP
1198 \fIpointer_modifier\fR
1199 .RS 4
1200 Keyboard modifier used for moving or resizing windows\&. Accept the following values:
1201 \fBshift\fR,
1202 \fBcontrol\fR,
1203 \fBlock\fR,
1204 \fBmod1\fR,
1205 \fBmod2\fR,
1206 \fBmod3\fR,
1207 \fBmod4\fR,
1208 \fBmod5\fR\&.
1209 .RE
1210 .PP
1211 \fIpointer_action1\fR, \fIpointer_action2\fR, \fIpointer_action3\fR
1212 .RS 4
1213 Action performed when pressing
1214 \fIpointer_modifier\fR
1215 +
1216 \fIbutton<n>\fR\&. Accept the following values:
1217 \fBmove\fR,
1218 \fBresize_side\fR,
1219 \fBresize_corner\fR,
1220 \fBfocus\fR,
1221 \fBnone\fR\&.
1222 .RE
1223 .PP
1224 \fIclick_to_focus\fR
1225 .RS 4
1226 Button used for focusing a window (or a monitor)\&. The possible values are:
1227 \fBbutton1\fR,
1228 \fBbutton2\fR,
1229 \fBbutton3\fR,
1230 \fBany\fR,
1231 \fBnone\fR\&.
1232 .RE
1233 .PP
1234 \fIswallow_first_click\fR
1235 .RS 4
1236 Don\(cqt replay the click that makes a window focused if
1237 \fIclick_to_focus\fR
1238 isn\(cqt
1239 \fBnone\fR\&.
1240 .RE
1241 .PP
1242 \fIfocus_follows_pointer\fR
1243 .RS 4
1244 Focus the window under the pointer\&.
1245 .RE
1246 .PP
1247 \fIpointer_follows_focus\fR
1248 .RS 4
1249 When focusing a window, put the pointer at its center\&.
1250 .RE
1251 .PP
1252 \fIpointer_follows_monitor\fR
1253 .RS 4
1254 When focusing a monitor, put the pointer at its center\&.
1255 .RE
1256 .PP
1257 \fIignore_ewmh_focus\fR
1258 .RS 4
1259 Ignore EWMH focus requests coming from applications\&.
1260 .RE
1261 .PP
1262 \fIcenter_pseudo_tiled\fR
1263 .RS 4
1264 Center pseudo tiled windows into their tiling rectangles\&. Defaults to
1265 \fItrue\fR\&.
1266 .RE
1267 .PP
1268 \fIhonor_size_hints\fR
1269 .RS 4
1270 Apply ICCCM window size hints\&.
1271 .RE
1272 .PP
1273 \fIremove_disabled_monitors\fR
1274 .RS 4
1275 Consider disabled monitors as disconnected\&.
1276 .RE
1277 .PP
1278 \fIremove_unplugged_monitors\fR
1279 .RS 4
1280 Remove unplugged monitors\&.
1281 .RE
1282 .PP
1283 \fImerge_overlapping_monitors\fR
1284 .RS 4
1285 Merge overlapping monitors (the bigger remains)\&.
1286 .RE
1287 .SS "Monitor and Desktop Settings"
1288 .PP
1289 \fItop_padding\fR, \fIright_padding\fR, \fIbottom_padding\fR, \fIleft_padding\fR
1290 .RS 4
1291 Padding space added at the sides of the monitor or desktop\&.
1292 .RE
1293 .SS "Desktop Settings"
1294 .PP
1295 \fIwindow_gap\fR
1296 .RS 4
1297 Size of the gap that separates windows\&.
1298 .RE
1299 .SS "Node Settings"
1300 .PP
1301 \fIborder_width\fR
1302 .RS 4
1303 Window border width\&.
1304 .RE
1305 .SH "POINTER BINDINGS"
1306 .PP
1307 \fIclick_to_focus\fR
1308 .RS 4
1309 Focus the window (or the monitor) under the pointer if the value isn\(cqt
1310 \fBnone\fR\&.
1311 .RE
1312 .PP
1313 \fIpointer_modifier\fR + \fIbutton1\fR
1314 .RS 4
1315 Move the window under the pointer\&.
1316 .RE
1317 .PP
1318 \fIpointer_modifier\fR + \fIbutton2\fR
1319 .RS 4
1320 Resize the window under the pointer by dragging the nearest side\&.
1321 .RE
1322 .PP
1323 \fIpointer_modifier\fR + \fIbutton3\fR
1324 .RS 4
1325 Resize the window under the pointer by dragging the nearest corner\&.
1326 .RE
1327 .sp
1328 The behavior of \fIpointer_modifier\fR + \fIbutton<n>\fR can be modified through the \fIpointer_action<n>\fR setting\&.
1329 .SH "EVENTS"
1330 .PP
1331 \fIreport\fR
1332 .RS 4
1333 See the next section for the description of the format\&.
1334 .RE
1335 .PP
1336 \fImonitor_add <monitor_id> <monitor_name> <monitor_geometry>\fR
1337 .RS 4
1338 A monitor is added\&.
1339 .RE
1340 .PP
1341 \fImonitor_rename <monitor_id> <old_name> <new_name>\fR
1342 .RS 4
1343 A monitor is renamed\&.
1344 .RE
1345 .PP
1346 \fImonitor_remove <monitor_id>\fR
1347 .RS 4
1348 A monitor is removed\&.
1349 .RE
1350 .PP
1351 \fImonitor_swap <src_monitor_id> <dst_monitor_id>\fR
1352 .RS 4
1353 A monitor is swapped\&.
1354 .RE
1355 .PP
1356 \fImonitor_focus <monitor_id>\fR
1357 .RS 4
1358 A monitor is focused\&.
1359 .RE
1360 .PP
1361 \fImonitor_geometry <monitor_id> <monitor_geometry>\fR
1362 .RS 4
1363 The geometry of a monitor changed\&.
1364 .RE
1365 .PP
1366 \fIdesktop_add <monitor_id> <desktop_id> <desktop_name>\fR
1367 .RS 4
1368 A desktop is added\&.
1369 .RE
1370 .PP
1371 \fIdesktop_rename <monitor_id> <desktop_id> <old_name> <new_name>\fR
1372 .RS 4
1373 A desktop is renamed\&.
1374 .RE
1375 .PP
1376 \fIdesktop_remove <monitor_id> <desktop_id>\fR
1377 .RS 4
1378 A desktop is removed\&.
1379 .RE
1380 .PP
1381 \fIdesktop_swap <src_monitor_id> <src_desktop_id> <dst_monitor_id> <dst_desktop_id>\fR
1382 .RS 4
1383 A desktop is swapped\&.
1384 .RE
1385 .PP
1386 \fIdesktop_transfer <src_monitor_id> <src_desktop_id> <dst_monitor_id>\fR
1387 .RS 4
1388 A desktop is transferred\&.
1389 .RE
1390 .PP
1391 \fIdesktop_focus <monitor_id> <desktop_id>\fR
1392 .RS 4
1393 A desktop is focused\&.
1394 .RE
1395 .PP
1396 \fIdesktop_activate <monitor_id> <desktop_id>\fR
1397 .RS 4
1398 A desktop is activated\&.
1399 .RE
1400 .PP
1401 \fIdesktop_layout <monitor_id> <desktop_id> tiled|monocle\fR
1402 .RS 4
1403 The layout of a desktop changed\&.
1404 .RE
1405 .PP
1406 \fInode_add <monitor_id> <desktop_id> <ip_id> <node_id>\fR
1407 .RS 4
1408 A node is added\&.
1409 .RE
1410 .PP
1411 \fInode_remove <monitor_id> <desktop_id> <node_id>\fR
1412 .RS 4
1413 A node is removed\&.
1414 .RE
1415 .PP
1416 \fInode_swap <src_monitor_id> <src_desktop_id> <src_node_id> <dst_monitor_id> <dst_desktop_id> <dst_node_id>\fR
1417 .RS 4
1418 A node is swapped\&.
1419 .RE
1420 .PP
1421 \fInode_transfer <src_monitor_id> <src_desktop_id> <src_node_id> <dst_monitor_id> <dst_desktop_id> <dst_node_id>\fR
1422 .RS 4
1423 A node is transferred\&.
1424 .RE
1425 .PP
1426 \fInode_focus <monitor_id> <desktop_id> <node_id>\fR
1427 .RS 4
1428 A node is focused\&.
1429 .RE
1430 .PP
1431 \fInode_activate <monitor_id> <desktop_id> <node_id>\fR
1432 .RS 4
1433 A node is activated\&.
1434 .RE
1435 .PP
1436 \fInode_presel <monitor_id> <desktop_id> <node_id> (dir DIR|ratio RATIO|cancel)\fR
1437 .RS 4
1438 A node is preselected\&.
1439 .RE
1440 .PP
1441 \fInode_stack <node_id_1> below|above <node_id_2>\fR
1442 .RS 4
1443 A node is stacked below or above another node\&.
1444 .RE
1445 .PP
1446 \fInode_geometry <monitor_id> <desktop_id> <node_id> <node_geometry>\fR
1447 .RS 4
1448 The geometry of a window changed\&.
1449 .RE
1450 .PP
1451 \fInode_state <monitor_id> <desktop_id> <node_id> tiled|pseudo_tiled|floating|fullscreen on|off\fR
1452 .RS 4
1453 The state of a window changed\&.
1454 .RE
1455 .PP
1456 \fInode_flag <monitor_id> <desktop_id> <node_id> hidden|sticky|private|locked|marked|urgent on|off\fR
1457 .RS 4
1458 One of the flags of a node changed\&.
1459 .RE
1460 .PP
1461 \fInode_layer <monitor_id> <desktop_id> <node_id> below|normal|above\fR
1462 .RS 4
1463 The layer of a window changed\&.
1464 .RE
1465 .PP
1466 \fIpointer_action <monitor_id> <desktop_id> <node_id> move|resize_corner|resize_side begin|end\fR
1467 .RS 4
1468 A pointer action occured\&.
1469 .RE
1470 .sp
1471 Please note that \fBbspwm\fR initializes monitors before it reads messages on its socket, therefore the initial monitor events can\(cqt be received\&.
1472 .SH "REPORT FORMAT"
1473 .sp
1474 Each report event message is composed of items separated by colons\&.
1475 .sp
1476 Each item has the form \fI<type><value>\fR where \fI<type>\fR is the first character of the item\&.
1477 .PP
1478 \fIM<monitor_name>\fR
1479 .RS 4
1480 Focused monitor\&.
1481 .RE
1482 .PP
1483 \fIm<monitor_name>\fR
1484 .RS 4
1485 Unfocused monitor\&.
1486 .RE
1487 .PP
1488 \fIO<desktop_name>\fR
1489 .RS 4
1490 Occupied focused desktop\&.
1491 .RE
1492 .PP
1493 \fIo<desktop_name>\fR
1494 .RS 4
1495 Occupied unfocused desktop\&.
1496 .RE
1497 .PP
1498 \fIF<desktop_name>\fR
1499 .RS 4
1500 Free focused desktop\&.
1501 .RE
1502 .PP
1503 \fIf<desktop_name>\fR
1504 .RS 4
1505 Free unfocused desktop\&.
1506 .RE
1507 .PP
1508 \fIU<desktop_name>\fR
1509 .RS 4
1510 Urgent focused desktop\&.
1511 .RE
1512 .PP
1513 \fIu<desktop_name>\fR
1514 .RS 4
1515 Urgent unfocused desktop\&.
1516 .RE
1517 .PP
1518 \fIL(T|M)\fR
1519 .RS 4
1520 Layout of the focused desktop of a monitor\&.
1521 .RE
1522 .PP
1523 \fIT(T|P|F|=|@)\fR
1524 .RS 4
1525 State of the focused node of a focused desktop\&.
1526 .RE
1527 .PP
1528 \fIG(S?P?L?)\fR
1529 .RS 4
1530 Active flags of the focused node of a focused desktop\&.
1531 .RE
1532 .SH "ENVIRONMENT VARIABLES"
1533 .PP
1534 \fIBSPWM_SOCKET\fR
1535 .RS 4
1536 The path of the socket used for the communication between
1537 \fBbspc\fR
1538 and
1539 \fBbspwm\fR\&. If it isn\(cqt defined, then the following path is used:
1540 \fI/tmp/bspwm<host_name>_<display_number>_<screen_number>\-socket\fR\&.
1541 .RE
1542 .SH "CONTRIBUTORS"
1543 .sp
1544 .RS 4
1545 .ie n \{\
1546 \h'-04'\(bu\h'+03'\c
1547 .\}
1548 .el \{\
1549 .sp -1
1550 .IP \(bu 2.3
1551 .\}
1552 Steven Allen <steven at stebalien\&.com>
1553 .RE
1554 .sp
1555 .RS 4
1556 .ie n \{\
1557 \h'-04'\(bu\h'+03'\c
1558 .\}
1559 .el \{\
1560 .sp -1
1561 .IP \(bu 2.3
1562 .\}
1563 Thomas Adam <thomas at xteddy\&.org>
1564 .RE
1565 .sp
1566 .RS 4
1567 .ie n \{\
1568 \h'-04'\(bu\h'+03'\c
1569 .\}
1570 .el \{\
1571 .sp -1
1572 .IP \(bu 2.3
1573 .\}
1574 Ivan Kanakarakis <ivan\&.kanak at gmail\&.com>
1575 .RE
1576 .SH "AUTHOR"
1577 .sp
1578 Bastien Dejean <nihilhill at gmail\&.com>