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