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