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