]> git.lizzy.rs Git - bspwm.git/blob - doc/bspwm.1
Handle preselection in pseudo-automatic mode example
[bspwm.git] / doc / bspwm.1
1 '\" t
2 .\"     Title: bspwm
3 .\"    Author: [see the "Author" section]
4 .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
5 .\"      Date: 05/26/2015
6 .\"    Manual: Bspwm Manual
7 .\"    Source: Bspwm 0.9
8 .\"  Language: English
9 .\"
10 .TH "BSPWM" "1" "05/26/2015" "Bspwm 0\&.9" "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 \fICOMMAND\fR [\fIARGUMENTS\fR]
37 .SH "DESCRIPTION"
38 .sp
39 \fBbspwm\fR is a tiling window manager that represents windows as the leaves of a full binary tree\&.
40 .sp
41 It is controlled and configured via \fBbspc\fR\&.
42 .SH "OPTIONS"
43 .PP
44 \fB\-h\fR
45 .RS 4
46 Print the synopsis and exit\&.
47 .RE
48 .PP
49 \fB\-v\fR
50 .RS 4
51 Print the version and exit\&.
52 .RE
53 .PP
54 \fB\-c\fR \fICONFIG_PATH\fR
55 .RS 4
56 Use the given configuration file\&.
57 .RE
58 .SH "CONFIGURATION"
59 .sp
60 \fBbspwm\fR has only two sources of informations: the X events it receives and the messages it reads on a dedicated socket\&.
61 .sp
62 The default configuration file is \fI$XDG_CONFIG_HOME/bspwm/bspwmrc\fR\&.
63 .sp
64 Keyboard and pointer bindings are defined with sxhkd\&.
65 .sp
66 Example configuration files can be found in the \fBexamples\fR directory\&.
67 .SH "SPLITTING MODES"
68 .sp
69 New windows are inserted in the tree as close as possible to the focused window\&.
70 .sp
71 There are only two splitting modes: \fIautomatic\fR and \fImanual\fR\&.
72 .sp
73 The default mode is \fIautomatic\fR\&. The \fImanual\fR mode is entered by sending a \fBpreselection\fR message\&.
74 .sp
75 Example: insertion of a new node (number 4) into the given tree in \fIautomatic\fR mode:
76 .sp
77 .if n \{\
78 .RS 4
79 .\}
80 .nf
81               b                                   c
82              / \e                                 / \e
83             3   a              \-\->              4   b
84             ^  / \e                              ^  / \e
85               2   1                               3   a
86                                                      / \e
87                                                     2   1
88  +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
89  |            |            |         |            |            |
90  |            |     2      |         |            |     3      |
91  |            |            |         |            |            |
92  |     3      |\-\-\-\-\-\-\-\-\-\-\-\-|   \-\->   |     4      |\-\-\-\-\-\-\-\-\-\-\-\-|
93  |     ^      |            |         |     ^      |     |      |
94  |            |     1      |         |            |  1  |  2   |
95  |            |            |         |            |     |      |
96  +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
97 .fi
98 .if n \{\
99 .RE
100 .\}
101 .sp
102 Same action, but the mode is \fImanual\fR, and a \fBwindow \-\-presel up\fR message was sent beforehand:
103 .sp
104 .if n \{\
105 .RS 4
106 .\}
107 .nf
108              b                                   b
109             / \e                                 / \e
110            3   a              \-\->              c   a
111            ^  / \e                             / \e / \e
112              2   1                           4  3 2  1
113                                              ^
114 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
115 |            |            |         |            |            |
116 |            |     2      |         |     4      |     2      |
117 |            |            |         |     ^      |            |
118 |     3      |\-\-\-\-\-\-\-\-\-\-\-\-|   \-\->   |\-\-\-\-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\-\-\-\-\-|
119 |     ^      |            |         |            |            |
120 |            |     1      |         |     3      |     1      |
121 |            |            |         |            |            |
122 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
123 .fi
124 .if n \{\
125 .RE
126 .\}
127 .SH "CONTAINERS"
128 .sp
129 Each monitor contains at least one desktop\&.
130 .sp
131 Each desktop contains at most one tree\&.
132 .SH "COMMON DEFINITIONS"
133 .sp
134 .if n \{\
135 .RS 4
136 .\}
137 .nf
138 DIR         := left | right | up | down
139 CYCLE_DIR   := next | prev
140 .fi
141 .if n \{\
142 .RE
143 .\}
144 .SH "SELECTORS"
145 .sp
146 Selectors are used to select a target window, desktop, or monitor\&. A selector can either describe the target relatively or name it globally\&.
147 .sp
148 Descriptive (relative) selectors consist of a primary selector and any number of non\-conflicting modifiers as follows:
149 .sp
150 .if n \{\
151 .RS 4
152 .\}
153 .nf
154 PRIMARY_SELECTOR[\&.MODIFIER]*
155 .fi
156 .if n \{\
157 .RE
158 .\}
159 .sp
160 For obvious reasons, neither desktop nor monitor names may be valid descriptive selectors\&.
161 .SS "Window"
162 .sp
163 Select a window\&.
164 .sp
165 .if n \{\
166 .RS 4
167 .\}
168 .nf
169 WINDOW_SEL := <window_id>
170             | (DIR|CYCLE_DIR|biggest|last|focused|older|newer)[\&.floating|\&.tiled][\&.like|\&.unlike][\&.manual|\&.automatic][\&.urgent][\&.local][\&.unfocused]
171 .fi
172 .if n \{\
173 .RE
174 .\}
175 .sp
176 .it 1 an-trap
177 .nr an-no-space-flag 1
178 .nr an-break-flag 1
179 .br
180 .ps +1
181 \fBPrimary Selectors\fR
182 .RS 4
183 .PP
184 \fIDIR\fR
185 .RS 4
186 Selects the window in the given (spacial) direction relative to the active window\&.
187 .RE
188 .PP
189 \fICYCLE_DIR\fR
190 .RS 4
191 Selects the window in the given (cyclic) direction\&.
192 .RE
193 .PP
194 biggest
195 .RS 4
196 Selects the biggest window on the current desktop\&.
197 .RE
198 .PP
199 last
200 .RS 4
201 Selects the previously focused window\&.
202 .RE
203 .PP
204 focused
205 .RS 4
206 Selects the currently focused window\&.
207 .RE
208 .PP
209 older
210 .RS 4
211 Selects the window older than the focused window in the history\&.
212 .RE
213 .PP
214 newer
215 .RS 4
216 Selects the window newer than the focused window in the history\&.
217 .RE
218 .RE
219 .sp
220 .it 1 an-trap
221 .nr an-no-space-flag 1
222 .nr an-break-flag 1
223 .br
224 .ps +1
225 \fBModifiers\fR
226 .RS 4
227 .PP
228 floating
229 .RS 4
230 Only consider floating windows\&.
231 .RE
232 .PP
233 tiled
234 .RS 4
235 Only consider tiled windows\&.
236 .RE
237 .PP
238 like
239 .RS 4
240 Only consider windows that have the same class as the current window\&.
241 .RE
242 .PP
243 unlike
244 .RS 4
245 Only consider windows that have a different class than the current window\&.
246 .RE
247 .PP
248 manual
249 .RS 4
250 Only consider windows in manual splitting mode\&.
251 .RE
252 .PP
253 automatic
254 .RS 4
255 Only consider windows in automatic splitting mode\&.
256 .RE
257 .PP
258 local
259 .RS 4
260 Only consider windows of the current desktop\&.
261 .RE
262 .PP
263 urgent
264 .RS 4
265 Only consider urgent windows\&.
266 .RE
267 .PP
268 unfocused
269 .RS 4
270 Only consider windows other than the focused window\&.
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_name>
282              | [MONITOR_SEL:]^<n>
283              | (CYCLE_DIR|last|[MONITOR_SEL:]focused|older|newer)[\&.occupied|\&.free][\&.urgent][\&.local]
284 .fi
285 .if n \{\
286 .RE
287 .\}
288 .sp
289 .it 1 an-trap
290 .nr an-no-space-flag 1
291 .nr an-break-flag 1
292 .br
293 .ps +1
294 \fBPrimary Selectors\fR
295 .RS 4
296 .PP
297 <desktop_name>
298 .RS 4
299 Selects the desktop with the given name\&.
300 .RE
301 .PP
302 ^<n>
303 .RS 4
304 Selects the nth desktop\&.
305 .RE
306 .PP
307 \fICYCLE_DIR\fR
308 .RS 4
309 Selects the desktop in the given direction relative to the active desktop\&.
310 .RE
311 .PP
312 last
313 .RS 4
314 Selects the previously focused desktop\&.
315 .RE
316 .PP
317 focused
318 .RS 4
319 Selects the currently focused desktop\&.
320 .RE
321 .PP
322 older
323 .RS 4
324 Selects the desktop older than the focused desktop in the history\&.
325 .RE
326 .PP
327 newer
328 .RS 4
329 Selects the desktop newer than the focused desktop in the history\&.
330 .RE
331 .RE
332 .sp
333 .it 1 an-trap
334 .nr an-no-space-flag 1
335 .nr an-break-flag 1
336 .br
337 .ps +1
338 \fBModifiers\fR
339 .RS 4
340 .PP
341 occupied
342 .RS 4
343 Only consider occupied desktops\&.
344 .RE
345 .PP
346 free
347 .RS 4
348 Only consider free desktops\&.
349 .RE
350 .PP
351 urgent
352 .RS 4
353 Only consider urgent desktops\&.
354 .RE
355 .PP
356 local
357 .RS 4
358 Only consider desktops of the current monitor\&.
359 .RE
360 .RE
361 .SS "Monitor"
362 .sp
363 Select a monitor\&.
364 .sp
365 .if n \{\
366 .RS 4
367 .\}
368 .nf
369 MONITOR_SEL := <monitor_name>
370              | ^<n>
371              | (DIR|CYCLE_DIR|last|primary|focused|older|newer)[\&.occupied|\&.free]
372 .fi
373 .if n \{\
374 .RE
375 .\}
376 .sp
377 .it 1 an-trap
378 .nr an-no-space-flag 1
379 .nr an-break-flag 1
380 .br
381 .ps +1
382 \fBPrimary Selectors\fR
383 .RS 4
384 .PP
385 <monitor_name>
386 .RS 4
387 Selects the monitor with the given name\&.
388 .RE
389 .PP
390 ^<n>
391 .RS 4
392 Selects the nth monitor\&.
393 .RE
394 .PP
395 \fIDIR\fR
396 .RS 4
397 Selects the monitor in the given (spacial) direction relative to the active monitor\&.
398 .RE
399 .PP
400 \fICYCLE_DIR\fR
401 .RS 4
402 Selects the monitor in the given (cyclic) direction relative to the active monitor\&.
403 .RE
404 .PP
405 primary
406 .RS 4
407 Selects the primary monitor\&.
408 .RE
409 .PP
410 last
411 .RS 4
412 Selects the previously focused monitor\&.
413 .RE
414 .PP
415 focused
416 .RS 4
417 Selects the currently focused monitor\&.
418 .RE
419 .PP
420 older
421 .RS 4
422 Selects the monitor older than the focused monitor in the history\&.
423 .RE
424 .PP
425 newer
426 .RS 4
427 Selects the monitor newer than the focused monitor in the history\&.
428 .RE
429 .RE
430 .sp
431 .it 1 an-trap
432 .nr an-no-space-flag 1
433 .nr an-break-flag 1
434 .br
435 .ps +1
436 \fBModifiers\fR
437 .RS 4
438 .PP
439 occupied
440 .RS 4
441 Only consider monitors where the focused desktop is occupied\&.
442 .RE
443 .PP
444 free
445 .RS 4
446 Only consider monitors where the focused desktop is free\&.
447 .RE
448 .RE
449 .SH "WINDOW STATES"
450 .PP
451 floating
452 .RS 4
453 Is above any tiled window and can be moved/resized freely\&. Although it doesn\(cqt occupy any tiling space, it is still part of the window tree\&.
454 .RE
455 .PP
456 pseudo_tiled
457 .RS 4
458 Has an unrestricted size while being centered in its tiling space\&.
459 .RE
460 .PP
461 fullscreen
462 .RS 4
463 Fills its monitor rectangle, is above all the other windows and has no borders\&.
464 .RE
465 .PP
466 locked
467 .RS 4
468 Ignores the
469 \fBclose\fR
470 message\&.
471 .RE
472 .PP
473 sticky
474 .RS 4
475 Stays in the focused desktop of its monitor\&.
476 .RE
477 .PP
478 private
479 .RS 4
480 Tries to keep the same tiling position/size\&.
481 .RE
482 .SH "COMMANDS"
483 .SS "Window"
484 .sp
485 .it 1 an-trap
486 .nr an-no-space-flag 1
487 .nr an-break-flag 1
488 .br
489 .ps +1
490 \fBGeneral Syntax\fR
491 .RS 4
492 .sp
493 window [\fIWINDOW_SEL\fR] \fIOPTIONS\fR
494 .RE
495 .sp
496 .it 1 an-trap
497 .nr an-no-space-flag 1
498 .nr an-break-flag 1
499 .br
500 .ps +1
501 \fBOptions\fR
502 .RS 4
503 .PP
504 \fB\-f\fR, \fB\-\-focus\fR [\fIWINDOW_SEL\fR]
505 .RS 4
506 Focus the selected or given window\&.
507 .RE
508 .PP
509 \fB\-d\fR, \fB\-\-to\-desktop\fR \fIDESKTOP_SEL\fR
510 .RS 4
511 Send the selected window to the given desktop\&.
512 .RE
513 .PP
514 \fB\-m\fR, \fB\-\-to\-monitor\fR \fIMONITOR_SEL\fR
515 .RS 4
516 Send the selected window to the given monitor\&.
517 .RE
518 .PP
519 \fB\-w\fR, \fB\-\-to\-window\fR \fIWINDOW_SEL\fR
520 .RS 4
521 Transplant the selected window to the given window\&.
522 .RE
523 .PP
524 \fB\-s\fR, \fB\-\-swap\fR \fIWINDOW_SEL\fR
525 .RS 4
526 Swap the selected window with the given window\&.
527 .RE
528 .PP
529 \fB\-p\fR, \fB\-\-presel\fR \fIDIR\fR|cancel
530 .RS 4
531 Preselect the splitting area of the selected window (or cancel the preselection)\&.
532 .RE
533 .PP
534 \fB\-r\fR, \fB\-\-ratio\fR \fIRATIO\fR
535 .RS 4
536 Set the splitting ratio of the selected window (0 <
537 \fIRATIO\fR
538 < 1)\&.
539 .RE
540 .PP
541 \fB\-e\fR, \fB\-\-edge\fR \fIDIR\fR \fIRATIO\fR|\(+-\fIPIXELS\fR
542 .RS 4
543 Set or change the splitting ratio of the edge located in the given direction in relation to the selected window\&.
544 .RE
545 .PP
546 \fB\-R\fR, \fB\-\-rotate\fR \fIDIR\fR \fI90|270|180\fR
547 .RS 4
548 Rotate the tree holding the edge located in the given direction in relation to the selected window\&.
549 .RE
550 .PP
551 \fB\-t\fR, \fB\-\-toggle\fR floating|fullscreen|pseudo_tiled|locked|sticky|private[=on|off]
552 .RS 4
553 Set or toggle the given state for the selected window\&.
554 .RE
555 .PP
556 \fB\-c\fR, \fB\-\-close\fR
557 .RS 4
558 Close the selected window\&.
559 .RE
560 .PP
561 \fB\-k\fR, \fB\-\-kill\fR
562 .RS 4
563 Kill the selected window\&.
564 .RE
565 .RE
566 .SS "Desktop"
567 .sp
568 .it 1 an-trap
569 .nr an-no-space-flag 1
570 .nr an-break-flag 1
571 .br
572 .ps +1
573 \fBGeneral Syntax\fR
574 .RS 4
575 .sp
576 desktop [\fIDESKTOP_SEL\fR] \fIOPTIONS\fR
577 .RE
578 .sp
579 .it 1 an-trap
580 .nr an-no-space-flag 1
581 .nr an-break-flag 1
582 .br
583 .ps +1
584 \fBOptions\fR
585 .RS 4
586 .PP
587 \fB\-f\fR, \fB\-\-focus\fR [\fIDESKTOP_SEL\fR]
588 .RS 4
589 Focus the selected or given desktop\&.
590 .RE
591 .PP
592 \fB\-m\fR, \fB\-\-to\-monitor\fR \fIMONITOR_SEL\fR
593 .RS 4
594 Send the selected desktop to the given monitor\&.
595 .RE
596 .PP
597 \fB\-l\fR, \fB\-\-layout\fR \fICYCLE_DIR\fR|monocle|tiled
598 .RS 4
599 Set or cycle the layout of the selected desktop\&.
600 .RE
601 .PP
602 \fB\-n\fR, \fB\-\-rename\fR <new_name>
603 .RS 4
604 Rename the selected desktop\&.
605 .RE
606 .PP
607 \fB\-s\fR, \fB\-\-swap\fR \fIDESKTOP_SEL\fR
608 .RS 4
609 Swap the selected desktop with the given desktop\&.
610 .RE
611 .PP
612 \fB\-b\fR, \fB\-\-bubble\fR \fICYCLE_DIR\fR
613 .RS 4
614 Bubble the selected desktop in the given direction\&.
615 .RE
616 .PP
617 \fB\-r\fR, \fB\-\-remove\fR
618 .RS 4
619 Remove the selected desktop\&.
620 .RE
621 .PP
622 \fB\-c\fR, \fB\-\-cancel\-presel\fR
623 .RS 4
624 Cancel the preselection of all the windows of the selected desktop\&.
625 .RE
626 .PP
627 \fB\-F\fR, \fB\-\-flip\fR \fIhorizontal|vertical\fR
628 .RS 4
629 Flip the tree of the selected desktop\&.
630 .RE
631 .PP
632 \fB\-R\fR, \fB\-\-rotate\fR \fI90|270|180\fR
633 .RS 4
634 Rotate the tree of the selected desktop\&.
635 .RE
636 .PP
637 \fB\-E\fR, \fB\-\-equalize\fR
638 .RS 4
639 Reset the split ratios of the tree of the selected desktop\&.
640 .RE
641 .PP
642 \fB\-B\fR, \fB\-\-balance\fR
643 .RS 4
644 Adjust the split ratios of the tree of the selected desktop so that all windows occupy the same area\&.
645 .RE
646 .PP
647 \fB\-C\fR, \fB\-\-circulate\fR forward|backward
648 .RS 4
649 Circulate the leaves of the tree of the selected desktop\&.
650 .RE
651 .PP
652 \fB\-t\fR, \fB\-\-toggle\fR floating[=on|off]
653 .RS 4
654 Set or toggle the given state for the selected desktop\&.
655 .RE
656 .RE
657 .SS "Monitor"
658 .sp
659 .it 1 an-trap
660 .nr an-no-space-flag 1
661 .nr an-break-flag 1
662 .br
663 .ps +1
664 \fBGeneral Syntax\fR
665 .RS 4
666 .sp
667 monitor [\fIMONITOR_SEL\fR] \fIOPTIONS\fR
668 .RE
669 .sp
670 .it 1 an-trap
671 .nr an-no-space-flag 1
672 .nr an-break-flag 1
673 .br
674 .ps +1
675 \fBOptions\fR
676 .RS 4
677 .PP
678 \fB\-f\fR, \fB\-\-focus\fR [\fIMONITOR_SEL\fR]
679 .RS 4
680 Focus the selected or given monitor\&.
681 .RE
682 .PP
683 \fB\-a\fR, \fB\-\-add\-desktops\fR <name>\&...
684 .RS 4
685 Create desktops with the given names in the selected monitor\&.
686 .RE
687 .PP
688 \fB\-r\fR, \fB\-\-remove\-desktops\fR <name>\&...
689 .RS 4
690 Remove desktops with the given names\&.
691 .RE
692 .PP
693 \fB\-o\fR, \fB\-\-reorder\-desktops\fR <name>\&...
694 .RS 4
695 Reorder the desktops of the selected monitor to match the given order\&.
696 .RE
697 .PP
698 \fB\-d\fR, \fB\-\-reset\-desktops\fR <name>\&...
699 .RS 4
700 Rename, add or remove desktops depending on whether the number of given names is equal, superior or inferior to the number of existing desktops\&. Incidentally reset the settings of the existing desktops\&.
701 .RE
702 .PP
703 \fB\-n\fR, \fB\-\-rename\fR <new_name>
704 .RS 4
705 Rename the selected monitor\&.
706 .RE
707 .PP
708 \fB\-s\fR, \fB\-\-swap\fR \fIMONITOR_SEL\fR
709 .RS 4
710 Swap the selected monitor with the given monitor\&.
711 .RE
712 .RE
713 .SS "Query"
714 .sp
715 .it 1 an-trap
716 .nr an-no-space-flag 1
717 .nr an-break-flag 1
718 .br
719 .ps +1
720 \fBGeneral Syntax\fR
721 .RS 4
722 .sp
723 query \fIOPTIONS\fR
724 .RE
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 \fBOptions\fR
732 .RS 4
733 .PP
734 \fB\-W\fR, \fB\-\-windows\fR
735 .RS 4
736 List matching windows\&.
737 .RE
738 .PP
739 \fB\-D\fR, \fB\-\-desktops\fR
740 .RS 4
741 List matching desktops\&.
742 .RE
743 .PP
744 \fB\-M\fR, \fB\-\-monitors\fR
745 .RS 4
746 List matching monitors\&.
747 .RE
748 .PP
749 \fB\-T\fR, \fB\-\-tree\fR
750 .RS 4
751 Print tree rooted at query\&.
752 .RE
753 .PP
754 \fB\-H\fR, \fB\-\-history\fR
755 .RS 4
756 Print the history as it relates to the query\&.
757 .RE
758 .PP
759 \fB\-S\fR, \fB\-\-stack\fR
760 .RS 4
761 Print the window stacking order\&.
762 .RE
763 .PP
764 [\fB\-m\fR,\fB\-\-monitor\fR [\fIMONITOR_SEL\fR]] | [\fB\-d\fR,\fB\-\-desktop\fR [\fIDESKTOP_SEL\fR]] | [\fB\-w\fR, \fB\-\-window\fR [\fIWINDOW_SEL\fR]]
765 .RS 4
766 Constrain matches to the selected monitor, desktop or window\&.
767 .RE
768 .RE
769 .SS "Restore"
770 .sp
771 .it 1 an-trap
772 .nr an-no-space-flag 1
773 .nr an-break-flag 1
774 .br
775 .ps +1
776 \fBGeneral Syntax\fR
777 .RS 4
778 .sp
779 restore \fIOPTIONS\fR
780 .RE
781 .sp
782 .it 1 an-trap
783 .nr an-no-space-flag 1
784 .nr an-break-flag 1
785 .br
786 .ps +1
787 \fBOptions\fR
788 .RS 4
789 .PP
790 \fB\-T\fR, \fB\-\-tree\fR <file_path>
791 .RS 4
792 Load the desktop trees from the given file\&.
793 .RE
794 .PP
795 \fB\-H\fR, \fB\-\-history\fR <file_path>
796 .RS 4
797 Load the focus history from the given file\&.
798 .RE
799 .PP
800 \fB\-S\fR, \fB\-\-stack\fR <file_path>
801 .RS 4
802 Load the window stacking order from the given file\&.
803 .RE
804 .RE
805 .SS "Control"
806 .sp
807 .it 1 an-trap
808 .nr an-no-space-flag 1
809 .nr an-break-flag 1
810 .br
811 .ps +1
812 \fBGeneral Syntax\fR
813 .RS 4
814 .sp
815 control \fIOPTIONS\fR
816 .RE
817 .sp
818 .it 1 an-trap
819 .nr an-no-space-flag 1
820 .nr an-break-flag 1
821 .br
822 .ps +1
823 \fBOptions\fR
824 .RS 4
825 .PP
826 \fB\-\-adopt\-orphans\fR
827 .RS 4
828 Manage all the unmanaged windows remaining from a previous session\&.
829 .RE
830 .PP
831 \fB\-\-toggle\-visibility\fR
832 .RS 4
833 Toggle the visibility of all the windows\&.
834 .RE
835 .PP
836 \fB\-\-record\-history\fR on|off
837 .RS 4
838 Enable or disable the recording of window focus history\&.
839 .RE
840 .PP
841 \fB\-\-subscribe\fR (all|report|monitor|desktop|window|\&...)*
842 .RS 4
843 Continuously print status information\&.
844 .RE
845 .PP
846 \fB\-\-get\-status\fR
847 .RS 4
848 Print the current status information\&.
849 .RE
850 .RE
851 .SS "Pointer"
852 .sp
853 .it 1 an-trap
854 .nr an-no-space-flag 1
855 .nr an-break-flag 1
856 .br
857 .ps +1
858 \fBGeneral Syntax\fR
859 .RS 4
860 .sp
861 pointer \fIOPTIONS\fR
862 .RE
863 .sp
864 .it 1 an-trap
865 .nr an-no-space-flag 1
866 .nr an-break-flag 1
867 .br
868 .ps +1
869 \fBOptions\fR
870 .RS 4
871 .PP
872 \fB\-g\fR, \fB\-\-grab\fR focus|move|resize_side|resize_corner
873 .RS 4
874 Initiate the given pointer action\&.
875 .RE
876 .PP
877 \fB\-t\fR, \fB\-\-track\fR <x> <y>
878 .RS 4
879 Pass the pointer root coordinates for the current pointer action\&.
880 .RE
881 .PP
882 \fB\-u\fR, \fB\-\-ungrab\fR
883 .RS 4
884 Terminate the current pointer action\&.
885 .RE
886 .RE
887 .SS "Rule"
888 .sp
889 .it 1 an-trap
890 .nr an-no-space-flag 1
891 .nr an-break-flag 1
892 .br
893 .ps +1
894 \fBGeneral Syntax\fR
895 .RS 4
896 .sp
897 rule \fIOPTIONS\fR
898 .RE
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 \fBOptions\fR
906 .RS 4
907 .PP
908 \fB\-a\fR, \fB\-\-add\fR <class_name>|<instance_name>|* [\fB\-o\fR|\fB\-\-one\-shot\fR] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|window=WINDOW_SEL] [(floating|fullscreen|pseudo_tiled|locked|sticky|private|center|follow|manage|focus|border)=(on|off)] [split_dir=DIR] [split_ratio=RATIO]
909 .RS 4
910 Create a new rule\&.
911 .RE
912 .PP
913 \fB\-r\fR, \fB\-\-remove\fR ^<n>|head|tail|<class_name>|<instance_name>|*\&...
914 .RS 4
915 Remove the given rules\&.
916 .RE
917 .PP
918 \fB\-l\fR, \fB\-\-list\fR [<class_name>|<instance_name>|*]
919 .RS 4
920 List the rules\&.
921 .RE
922 .RE
923 .SS "Config"
924 .sp
925 .it 1 an-trap
926 .nr an-no-space-flag 1
927 .nr an-break-flag 1
928 .br
929 .ps +1
930 \fBGeneral Syntax\fR
931 .RS 4
932 .PP
933 config [\-m \fIMONITOR_SEL\fR|\-d \fIDESKTOP_SEL\fR|\-w \fIWINDOW_SEL\fR] <key> [<value>]
934 .RS 4
935 Get or set the value of <key>\&.
936 .RE
937 .RE
938 .SS "Quit"
939 .sp
940 .it 1 an-trap
941 .nr an-no-space-flag 1
942 .nr an-break-flag 1
943 .br
944 .ps +1
945 \fBGeneral Syntax\fR
946 .RS 4
947 .PP
948 quit [<status>]
949 .RS 4
950 Quit with an optional exit status\&.
951 .RE
952 .RE
953 .SH "EXIT CODES"
954 .sp
955 If the server can\(cqt handle a message, \fBbspc\fR will return with one of the following exit codes:
956 .PP
957 1
958 .RS 4
959 Failure\&.
960 .RE
961 .PP
962 2
963 .RS 4
964 Syntax error\&.
965 .RE
966 .PP
967 3
968 .RS 4
969 Unknown command\&.
970 .RE
971 .SH "SETTINGS"
972 .sp
973 Colors are either \fI#RRGGBB\fR or X color names, booleans are \fItrue\fR, \fIon\fR, \fIfalse\fR or \fIoff\fR\&.
974 .sp
975 All the boolean settings are \fIfalse\fR by default unless stated otherwise\&.
976 .SS "Global Settings"
977 .PP
978 \fIfocused_border_color\fR
979 .RS 4
980 Color of the border of a focused window of a focused monitor\&.
981 .RE
982 .PP
983 \fIactive_border_color\fR
984 .RS 4
985 Color of the border of a focused window of an unfocused monitor\&.
986 .RE
987 .PP
988 \fInormal_border_color\fR
989 .RS 4
990 Color of the border of an unfocused window\&.
991 .RE
992 .PP
993 \fIpresel_border_color\fR
994 .RS 4
995 Color of the
996 \fBpresel\fR
997 message feedback\&.
998 .RE
999 .PP
1000 \fIfocused_locked_border_color\fR
1001 .RS 4
1002 Color of the border of a focused locked window of a focused monitor\&.
1003 .RE
1004 .PP
1005 \fIactive_locked_border_color\fR
1006 .RS 4
1007 Color of the border of a focused locked window of an unfocused monitor\&.
1008 .RE
1009 .PP
1010 \fInormal_locked_border_color\fR
1011 .RS 4
1012 Color of the border of an unfocused locked window\&.
1013 .RE
1014 .PP
1015 \fIfocused_sticky_border_color\fR
1016 .RS 4
1017 Color of the border of a focused sticky window of a focused monitor\&.
1018 .RE
1019 .PP
1020 \fIactive_sticky_border_color\fR
1021 .RS 4
1022 Color of the border of a focused sticky window of an unfocused monitor\&.
1023 .RE
1024 .PP
1025 \fInormal_sticky_border_color\fR
1026 .RS 4
1027 Color of the border of an unfocused sticky window\&.
1028 .RE
1029 .PP
1030 \fIfocused_private_border_color\fR
1031 .RS 4
1032 Color of the border of a focused private window of a focused monitor\&.
1033 .RE
1034 .PP
1035 \fIactive_private_border_color\fR
1036 .RS 4
1037 Color of the border of a focused private window of an unfocused monitor\&.
1038 .RE
1039 .PP
1040 \fInormal_private_border_color\fR
1041 .RS 4
1042 Color of the border of an unfocused private window\&.
1043 .RE
1044 .PP
1045 \fIurgent_border_color\fR
1046 .RS 4
1047 Color of the border of an urgent window\&.
1048 .RE
1049 .PP
1050 \fIsplit_ratio\fR
1051 .RS 4
1052 Default split ratio\&.
1053 .RE
1054 .PP
1055 \fIstatus_prefix\fR
1056 .RS 4
1057 Prefix prepended to each of the status lines\&.
1058 .RE
1059 .PP
1060 \fIexternal_rules_command\fR
1061 .RS 4
1062 External command used to retrieve rule consequences\&. The command will receive the the ID of the window being processed as its first argument and the class and instance names as second and third arguments\&. The output of that command must have the following format:
1063 \fBkey1=value1 key2=value2 \&...\fR
1064 (the valid key/value pairs are given in the description of the
1065 \fIrule\fR
1066 command)\&.
1067 .RE
1068 .PP
1069 \fIinitial_polarity\fR
1070 .RS 4
1071 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:
1072 \fBfirst_child\fR,
1073 \fBsecond_child\fR\&.
1074 .RE
1075 .PP
1076 \fIhistory_aware_focus\fR
1077 .RS 4
1078 Give priority to the focus history when focusing nodes\&.
1079 .RE
1080 .PP
1081 \fIfocus_by_distance\fR
1082 .RS 4
1083 Base focusing on distances between windows\&.
1084 .RE
1085 .PP
1086 \fIborderless_monocle\fR
1087 .RS 4
1088 Remove borders for tiled windows in monocle mode\&.
1089 .RE
1090 .PP
1091 \fIgapless_monocle\fR
1092 .RS 4
1093 Remove gaps for tiled windows in monocle mode\&.
1094 .RE
1095 .PP
1096 \fIfocus_follows_pointer\fR
1097 .RS 4
1098 Focus the window under the pointer\&.
1099 .RE
1100 .PP
1101 \fIpointer_follows_focus\fR
1102 .RS 4
1103 When focusing a window, put the pointer at its center\&.
1104 .RE
1105 .PP
1106 \fIpointer_follows_monitor\fR
1107 .RS 4
1108 When focusing a monitor, put the pointer at its center\&.
1109 .RE
1110 .PP
1111 \fIauto_alternate\fR
1112 .RS 4
1113 Interpret two consecutive identical
1114 \fBuse\fR
1115 messages as an
1116 \fBalternate\fR
1117 message\&.
1118 .RE
1119 .PP
1120 \fIauto_cancel\fR
1121 .RS 4
1122 Interpret two consecutive identical
1123 \fBpresel\fR
1124 messages as a
1125 \fBcancel\fR
1126 message\&.
1127 .RE
1128 .PP
1129 \fIapply_floating_atom\fR
1130 .RS 4
1131 Set the value of the
1132 \fI_BSPWM_FLOATING_WINDOW\fR
1133 atom of each window according to its floating state\&.
1134 .RE
1135 .PP
1136 \fIignore_ewmh_focus\fR
1137 .RS 4
1138 Ignore EWMH focus requests coming from applications\&.
1139 .RE
1140 .PP
1141 \fIcenter_pseudo_tiled\fR
1142 .RS 4
1143 Center pseudo tiled windows into their tiling rectangles\&. Defaults to
1144 \fItrue\fR\&.
1145 .RE
1146 .PP
1147 \fIremove_disabled_monitors\fR
1148 .RS 4
1149 Consider disabled monitors as disconnected\&.
1150 .RE
1151 .PP
1152 \fIremove_unplugged_monitors\fR
1153 .RS 4
1154 Remove unplugged monitors\&.
1155 .RE
1156 .PP
1157 \fImerge_overlapping_monitors\fR
1158 .RS 4
1159 Merge overlapping monitors (the bigger remains)\&.
1160 .RE
1161 .SS "Monitor and Desktop Settings"
1162 .PP
1163 \fItop_padding\fR, \fIright_padding\fR, \fIbottom_padding\fR, \fIleft_padding\fR
1164 .RS 4
1165 Padding space added at the sides of the monitor or desktop\&.
1166 .RE
1167 .SS "Default, Desktop Default and Window Settings"
1168 .PP
1169 \fIborder_width\fR
1170 .RS 4
1171 Window border width\&.
1172 .RE
1173 .SS "Default and Desktop Settings"
1174 .PP
1175 \fIwindow_gap\fR
1176 .RS 4
1177 Size of the gap that separates windows\&.
1178 .RE
1179 .SH "STATUS FORMAT"
1180 .sp
1181 Status information is composed of items separated by colons\&.
1182 .sp
1183 Each item has the form \fI<type><value>\fR where \fI<type>\fR is the first character of the item\&.
1184 .PP
1185 \fIM<monitor_name>\fR
1186 .RS 4
1187 Focused monitor\&.
1188 .RE
1189 .PP
1190 \fIm<monitor_name>\fR
1191 .RS 4
1192 Unfocused monitor\&.
1193 .RE
1194 .PP
1195 \fIO<desktop_name>\fR
1196 .RS 4
1197 Occupied focused desktop\&.
1198 .RE
1199 .PP
1200 \fIo<desktop_name>\fR
1201 .RS 4
1202 Occupied unfocused desktop\&.
1203 .RE
1204 .PP
1205 \fIF<desktop_name>\fR
1206 .RS 4
1207 Free focused desktop\&.
1208 .RE
1209 .PP
1210 \fIf<desktop_name>\fR
1211 .RS 4
1212 Free unfocused desktop\&.
1213 .RE
1214 .PP
1215 \fIU<desktop_name>\fR
1216 .RS 4
1217 Urgent focused desktop\&.
1218 .RE
1219 .PP
1220 \fIu<desktop_name>\fR
1221 .RS 4
1222 Urgent unfocused desktop\&.
1223 .RE
1224 .PP
1225 \fIL(T|M)\fR
1226 .RS 4
1227 Layout of the focused desktop of a monitor\&.
1228 .RE
1229 .SH "ENVIRONMENT VARIABLES"
1230 .PP
1231 \fIBSPWM_SOCKET\fR
1232 .RS 4
1233 The path of the socket used for the communication between
1234 \fBbspc\fR
1235 and
1236 \fBbspwm\fR\&. If it isn\(cqt defined, then the following path is used:
1237 \fI/tmp/bspwm<host_name>_<display_number>_<screen_number>\-socket\fR\&.
1238 .RE
1239 .SH "PANELS"
1240 .sp
1241 .RS 4
1242 .ie n \{\
1243 \h'-04'\(bu\h'+03'\c
1244 .\}
1245 .el \{\
1246 .sp -1
1247 .IP \(bu 2.3
1248 .\}
1249 Any EWMH compliant panel (e\&.g\&.:
1250 \fItint2\fR,
1251 \fIbmpanel2\fR, etc\&.)\&.
1252 .RE
1253 .sp
1254 .RS 4
1255 .ie n \{\
1256 \h'-04'\(bu\h'+03'\c
1257 .\}
1258 .el \{\
1259 .sp -1
1260 .IP \(bu 2.3
1261 .\}
1262 A custom panel (have a look at the files in
1263 \fIexamples/panel\fR)\&.
1264 .RE
1265 .SH "KEY FEATURES"
1266 .sp
1267 .RS 4
1268 .ie n \{\
1269 \h'-04'\(bu\h'+03'\c
1270 .\}
1271 .el \{\
1272 .sp -1
1273 .IP \(bu 2.3
1274 .\}
1275 Configured and controlled through messages\&.
1276 .RE
1277 .sp
1278 .RS 4
1279 .ie n \{\
1280 \h'-04'\(bu\h'+03'\c
1281 .\}
1282 .el \{\
1283 .sp -1
1284 .IP \(bu 2.3
1285 .\}
1286 Multiple monitors support\&.
1287 .RE
1288 .sp
1289 .RS 4
1290 .ie n \{\
1291 \h'-04'\(bu\h'+03'\c
1292 .\}
1293 .el \{\
1294 .sp -1
1295 .IP \(bu 2.3
1296 .\}
1297 EWMH support\&.
1298 .RE
1299 .sp
1300 .RS 4
1301 .ie n \{\
1302 \h'-04'\(bu\h'+03'\c
1303 .\}
1304 .el \{\
1305 .sp -1
1306 .IP \(bu 2.3
1307 .\}
1308 Hybrid tiling\&.
1309 .RE
1310 .SH "CONTRIBUTORS"
1311 .sp
1312 .RS 4
1313 .ie n \{\
1314 \h'-04'\(bu\h'+03'\c
1315 .\}
1316 .el \{\
1317 .sp -1
1318 .IP \(bu 2.3
1319 .\}
1320 Steven Allen <steven at stebalien\&.com>
1321 .RE
1322 .sp
1323 .RS 4
1324 .ie n \{\
1325 \h'-04'\(bu\h'+03'\c
1326 .\}
1327 .el \{\
1328 .sp -1
1329 .IP \(bu 2.3
1330 .\}
1331 Thomas Adam <thomas at xteddy\&.org>
1332 .RE
1333 .sp
1334 .RS 4
1335 .ie n \{\
1336 \h'-04'\(bu\h'+03'\c
1337 .\}
1338 .el \{\
1339 .sp -1
1340 .IP \(bu 2.3
1341 .\}
1342 Ivan Kanakarakis <ivan\&.kanak at gmail\&.com>
1343 .RE
1344 .SH "AUTHOR"
1345 .sp
1346 Bastien Dejean <nihilhill at gmail\&.com>
1347 .SH "MAILING LIST"
1348 .sp
1349 bspwm at librelist\&.com