]> git.lizzy.rs Git - bspwm.git/blob - doc/bspwm.1
New setting: center_pseudo_tiled
[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: 01/15/2015
6 .\"    Manual: Bspwm Manual
7 .\"    Source: Bspwm 0.8.9
8 .\"  Language: English
9 .\"
10 .TH "BSPWM" "1" "01/15/2015" "Bspwm 0\&.8\&.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\-r\fR, \fB\-\-remove\fR
613 .RS 4
614 Remove the selected desktop\&.
615 .RE
616 .PP
617 \fB\-c\fR, \fB\-\-cancel\-presel\fR
618 .RS 4
619 Cancel the preselection of all the windows of the selected desktop\&.
620 .RE
621 .PP
622 \fB\-F\fR, \fB\-\-flip\fR \fIhorizontal|vertical\fR
623 .RS 4
624 Flip the tree of the selected desktop\&.
625 .RE
626 .PP
627 \fB\-R\fR, \fB\-\-rotate\fR \fI90|270|180\fR
628 .RS 4
629 Rotate the tree of the selected desktop\&.
630 .RE
631 .PP
632 \fB\-E\fR, \fB\-\-equalize\fR
633 .RS 4
634 Reset the split ratios of the tree of the selected desktop\&.
635 .RE
636 .PP
637 \fB\-B\fR, \fB\-\-balance\fR
638 .RS 4
639 Adjust the split ratios of the tree of the selected desktop so that all windows occupy the same area\&.
640 .RE
641 .PP
642 \fB\-C\fR, \fB\-\-circulate\fR forward|backward
643 .RS 4
644 Circulate the leaves of the tree of the selected desktop\&.
645 .RE
646 .PP
647 \fB\-t\fR, \fB\-\-toggle\fR floating[=on|off]
648 .RS 4
649 Set or toggle the given state for the selected desktop\&.
650 .RE
651 .RE
652 .SS "Monitor"
653 .sp
654 .it 1 an-trap
655 .nr an-no-space-flag 1
656 .nr an-break-flag 1
657 .br
658 .ps +1
659 \fBGeneral Syntax\fR
660 .RS 4
661 .sp
662 monitor [\fIMONITOR_SEL\fR] \fIOPTIONS\fR
663 .RE
664 .sp
665 .it 1 an-trap
666 .nr an-no-space-flag 1
667 .nr an-break-flag 1
668 .br
669 .ps +1
670 \fBOptions\fR
671 .RS 4
672 .PP
673 \fB\-f\fR, \fB\-\-focus\fR [\fIMONITOR_SEL\fR]
674 .RS 4
675 Focus the selected or given monitor\&.
676 .RE
677 .PP
678 \fB\-a\fR, \fB\-\-add\-desktops\fR <name>\&...
679 .RS 4
680 Create desktops with the given names in the selected monitor\&.
681 .RE
682 .PP
683 \fB\-r\fR, \fB\-\-remove\-desktops\fR <name>\&...
684 .RS 4
685 Remove desktops with the given names\&.
686 .RE
687 .PP
688 \fB\-o\fR, \fB\-\-reorder\-desktops\fR <name>\&...
689 .RS 4
690 Reorder the desktops of the selected monitor to match the given order\&.
691 .RE
692 .PP
693 \fB\-d\fR, \fB\-\-reset\-desktops\fR <name>\&...
694 .RS 4
695 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\&.
696 .RE
697 .PP
698 \fB\-n\fR, \fB\-\-rename\fR <new_name>
699 .RS 4
700 Rename the selected monitor\&.
701 .RE
702 .PP
703 \fB\-s\fR, \fB\-\-swap\fR \fIMONITOR_SEL\fR
704 .RS 4
705 Swap the selected monitor with the given monitor\&.
706 .RE
707 .RE
708 .SS "Query"
709 .sp
710 .it 1 an-trap
711 .nr an-no-space-flag 1
712 .nr an-break-flag 1
713 .br
714 .ps +1
715 \fBGeneral Syntax\fR
716 .RS 4
717 .sp
718 query \fIOPTIONS\fR
719 .RE
720 .sp
721 .it 1 an-trap
722 .nr an-no-space-flag 1
723 .nr an-break-flag 1
724 .br
725 .ps +1
726 \fBOptions\fR
727 .RS 4
728 .PP
729 \fB\-W\fR, \fB\-\-windows\fR
730 .RS 4
731 List matching windows\&.
732 .RE
733 .PP
734 \fB\-D\fR, \fB\-\-desktops\fR
735 .RS 4
736 List matching desktops\&.
737 .RE
738 .PP
739 \fB\-M\fR, \fB\-\-monitors\fR
740 .RS 4
741 List matching monitors\&.
742 .RE
743 .PP
744 \fB\-T\fR, \fB\-\-tree\fR
745 .RS 4
746 Print tree rooted at query\&.
747 .RE
748 .PP
749 \fB\-H\fR, \fB\-\-history\fR
750 .RS 4
751 Print the history as it relates to the query\&.
752 .RE
753 .PP
754 \fB\-S\fR, \fB\-\-stack\fR
755 .RS 4
756 Print the window stacking order\&.
757 .RE
758 .PP
759 [\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]]
760 .RS 4
761 Constrain matches to the selected monitor, desktop or window\&.
762 .RE
763 .RE
764 .SS "Restore"
765 .sp
766 .it 1 an-trap
767 .nr an-no-space-flag 1
768 .nr an-break-flag 1
769 .br
770 .ps +1
771 \fBGeneral Syntax\fR
772 .RS 4
773 .sp
774 restore \fIOPTIONS\fR
775 .RE
776 .sp
777 .it 1 an-trap
778 .nr an-no-space-flag 1
779 .nr an-break-flag 1
780 .br
781 .ps +1
782 \fBOptions\fR
783 .RS 4
784 .PP
785 \fB\-T\fR, \fB\-\-tree\fR <file_path>
786 .RS 4
787 Load the desktop trees from the given file\&.
788 .RE
789 .PP
790 \fB\-H\fR, \fB\-\-history\fR <file_path>
791 .RS 4
792 Load the focus history from the given file\&.
793 .RE
794 .PP
795 \fB\-S\fR, \fB\-\-stack\fR <file_path>
796 .RS 4
797 Load the window stacking order from the given file\&.
798 .RE
799 .RE
800 .SS "Control"
801 .sp
802 .it 1 an-trap
803 .nr an-no-space-flag 1
804 .nr an-break-flag 1
805 .br
806 .ps +1
807 \fBGeneral Syntax\fR
808 .RS 4
809 .sp
810 control \fIOPTIONS\fR
811 .RE
812 .sp
813 .it 1 an-trap
814 .nr an-no-space-flag 1
815 .nr an-break-flag 1
816 .br
817 .ps +1
818 \fBOptions\fR
819 .RS 4
820 .PP
821 \fB\-\-adopt\-orphans\fR
822 .RS 4
823 Manage all the unmanaged windows remaining from a previous session\&.
824 .RE
825 .PP
826 \fB\-\-toggle\-visibility\fR
827 .RS 4
828 Toggle the visibility of all the windows\&.
829 .RE
830 .PP
831 \fB\-\-record\-history\fR on|off
832 .RS 4
833 Enable or disable the recording of window focus history\&.
834 .RE
835 .PP
836 \fB\-\-subscribe\fR
837 .RS 4
838 Continuously print status information\&.
839 .RE
840 .PP
841 \fB\-\-get\-status\fR
842 .RS 4
843 Print the current status information\&.
844 .RE
845 .RE
846 .SS "Pointer"
847 .sp
848 .it 1 an-trap
849 .nr an-no-space-flag 1
850 .nr an-break-flag 1
851 .br
852 .ps +1
853 \fBGeneral Syntax\fR
854 .RS 4
855 .sp
856 pointer \fIOPTIONS\fR
857 .RE
858 .sp
859 .it 1 an-trap
860 .nr an-no-space-flag 1
861 .nr an-break-flag 1
862 .br
863 .ps +1
864 \fBOptions\fR
865 .RS 4
866 .PP
867 \fB\-g\fR, \fB\-\-grab\fR focus|move|resize_side|resize_corner
868 .RS 4
869 Initiate the given pointer action\&.
870 .RE
871 .PP
872 \fB\-t\fR, \fB\-\-track\fR <x> <y>
873 .RS 4
874 Pass the pointer root coordinates for the current pointer action\&.
875 .RE
876 .PP
877 \fB\-u\fR, \fB\-\-ungrab\fR
878 .RS 4
879 Terminate the current pointer action\&.
880 .RE
881 .RE
882 .SS "Rule"
883 .sp
884 .it 1 an-trap
885 .nr an-no-space-flag 1
886 .nr an-break-flag 1
887 .br
888 .ps +1
889 \fBGeneral Syntax\fR
890 .RS 4
891 .sp
892 rule \fIOPTIONS\fR
893 .RE
894 .sp
895 .it 1 an-trap
896 .nr an-no-space-flag 1
897 .nr an-break-flag 1
898 .br
899 .ps +1
900 \fBOptions\fR
901 .RS 4
902 .PP
903 \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]
904 .RS 4
905 Create a new rule\&.
906 .RE
907 .PP
908 \fB\-r\fR, \fB\-\-remove\fR ^<n>|head|tail|<class_name>|<instance_name>|*\&...
909 .RS 4
910 Remove the given rules\&.
911 .RE
912 .PP
913 \fB\-l\fR, \fB\-\-list\fR [<class_name>|<instance_name>|*]
914 .RS 4
915 List the rules\&.
916 .RE
917 .RE
918 .SS "Config"
919 .sp
920 .it 1 an-trap
921 .nr an-no-space-flag 1
922 .nr an-break-flag 1
923 .br
924 .ps +1
925 \fBGeneral Syntax\fR
926 .RS 4
927 .PP
928 config [\-m \fIMONITOR_SEL\fR|\-d \fIDESKTOP_SEL\fR|\-w \fIWINDOW_SEL\fR] <key> [<value>]
929 .RS 4
930 Get or set the value of <key>\&.
931 .RE
932 .RE
933 .SS "Quit"
934 .sp
935 .it 1 an-trap
936 .nr an-no-space-flag 1
937 .nr an-break-flag 1
938 .br
939 .ps +1
940 \fBGeneral Syntax\fR
941 .RS 4
942 .PP
943 quit [<status>]
944 .RS 4
945 Quit with an optional exit status\&.
946 .RE
947 .RE
948 .SH "EXIT CODES"
949 .sp
950 If the server can\(cqt handle a message, \fBbspc\fR will return with one of the following exit codes:
951 .PP
952 1
953 .RS 4
954 Failure\&.
955 .RE
956 .PP
957 2
958 .RS 4
959 Syntax error\&.
960 .RE
961 .PP
962 3
963 .RS 4
964 Unknown command\&.
965 .RE
966 .SH "SETTINGS"
967 .sp
968 Colors are either \fI#RRGGBB\fR or X color names, booleans are \fItrue\fR, \fIon\fR, \fIfalse\fR or \fIoff\fR\&.
969 .sp
970 All the boolean settings are \fIfalse\fR by default unless stated otherwise\&.
971 .SS "Global Settings"
972 .PP
973 \fIfocused_border_color\fR
974 .RS 4
975 Color of the border of a focused window of a focused monitor\&.
976 .RE
977 .PP
978 \fIactive_border_color\fR
979 .RS 4
980 Color of the border of a focused window of an unfocused monitor\&.
981 .RE
982 .PP
983 \fInormal_border_color\fR
984 .RS 4
985 Color of the border of an unfocused window\&.
986 .RE
987 .PP
988 \fIpresel_border_color\fR
989 .RS 4
990 Color of the
991 \fBpresel\fR
992 message feedback\&.
993 .RE
994 .PP
995 \fIfocused_locked_border_color\fR
996 .RS 4
997 Color of the border of a focused locked window of a focused monitor\&.
998 .RE
999 .PP
1000 \fIactive_locked_border_color\fR
1001 .RS 4
1002 Color of the border of a focused locked window of an unfocused monitor\&.
1003 .RE
1004 .PP
1005 \fInormal_locked_border_color\fR
1006 .RS 4
1007 Color of the border of an unfocused locked window\&.
1008 .RE
1009 .PP
1010 \fIfocused_sticky_border_color\fR
1011 .RS 4
1012 Color of the border of a focused sticky window of a focused monitor\&.
1013 .RE
1014 .PP
1015 \fIactive_sticky_border_color\fR
1016 .RS 4
1017 Color of the border of a focused sticky window of an unfocused monitor\&.
1018 .RE
1019 .PP
1020 \fInormal_sticky_border_color\fR
1021 .RS 4
1022 Color of the border of an unfocused sticky window\&.
1023 .RE
1024 .PP
1025 \fIfocused_private_border_color\fR
1026 .RS 4
1027 Color of the border of a focused private window of a focused monitor\&.
1028 .RE
1029 .PP
1030 \fIactive_private_border_color\fR
1031 .RS 4
1032 Color of the border of a focused private window of an unfocused monitor\&.
1033 .RE
1034 .PP
1035 \fInormal_private_border_color\fR
1036 .RS 4
1037 Color of the border of an unfocused private window\&.
1038 .RE
1039 .PP
1040 \fIurgent_border_color\fR
1041 .RS 4
1042 Color of the border of an urgent window\&.
1043 .RE
1044 .PP
1045 \fIsplit_ratio\fR
1046 .RS 4
1047 Default split ratio\&.
1048 .RE
1049 .PP
1050 \fIstatus_prefix\fR
1051 .RS 4
1052 Prefix prepended to each of the status lines\&.
1053 .RE
1054 .PP
1055 \fIexternal_rules_command\fR
1056 .RS 4
1057 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:
1058 \fBkey1=value1 key2=value2 \&...\fR
1059 (the valid key/value pairs are given in the description of the
1060 \fIrule\fR
1061 command)\&.
1062 .RE
1063 .PP
1064 \fIinitial_polarity\fR
1065 .RS 4
1066 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:
1067 \fBfirst_child\fR,
1068 \fBsecond_child\fR\&.
1069 .RE
1070 .PP
1071 \fIhistory_aware_focus\fR
1072 .RS 4
1073 Give priority to the focus history when focusing nodes\&.
1074 .RE
1075 .PP
1076 \fIfocus_by_distance\fR
1077 .RS 4
1078 Base focusing on distances between windows\&.
1079 .RE
1080 .PP
1081 \fIborderless_monocle\fR
1082 .RS 4
1083 Remove borders for tiled windows in monocle mode\&.
1084 .RE
1085 .PP
1086 \fIgapless_monocle\fR
1087 .RS 4
1088 Remove gaps for tiled windows in monocle mode\&.
1089 .RE
1090 .PP
1091 \fIfocus_follows_pointer\fR
1092 .RS 4
1093 Focus the window under the pointer\&.
1094 .RE
1095 .PP
1096 \fIpointer_follows_focus\fR
1097 .RS 4
1098 When focusing a window, put the pointer at its center\&.
1099 .RE
1100 .PP
1101 \fIpointer_follows_monitor\fR
1102 .RS 4
1103 When focusing a monitor, put the pointer at its center\&.
1104 .RE
1105 .PP
1106 \fIauto_alternate\fR
1107 .RS 4
1108 Interpret two consecutive identical
1109 \fBuse\fR
1110 messages as an
1111 \fBalternate\fR
1112 message\&.
1113 .RE
1114 .PP
1115 \fIauto_cancel\fR
1116 .RS 4
1117 Interpret two consecutive identical
1118 \fBpresel\fR
1119 messages as a
1120 \fBcancel\fR
1121 message\&.
1122 .RE
1123 .PP
1124 \fIapply_floating_atom\fR
1125 .RS 4
1126 Set the value of the
1127 \fI_BSPWM_FLOATING_WINDOW\fR
1128 atom of each window according to its floating state\&.
1129 .RE
1130 .PP
1131 \fIignore_ewmh_focus\fR
1132 .RS 4
1133 Ignore EWMH focus requests coming from applications\&.
1134 .RE
1135 .PP
1136 \fIcenter_pseudo_tiled\fR
1137 .RS 4
1138 Center pseudo tiled windows into their tiling rectangles\&. Defaults to
1139 \fItrue\fR\&.
1140 .RE
1141 .PP
1142 \fIremove_disabled_monitors\fR
1143 .RS 4
1144 Consider disabled monitors as disconnected\&.
1145 .RE
1146 .PP
1147 \fIremove_unplugged_monitors\fR
1148 .RS 4
1149 Remove unplugged monitors\&.
1150 .RE
1151 .PP
1152 \fImerge_overlapping_monitors\fR
1153 .RS 4
1154 Merge overlapping monitors (the bigger remains)\&.
1155 .RE
1156 .SS "Monitor and Desktop Settings"
1157 .PP
1158 \fItop_padding\fR, \fIright_padding\fR, \fIbottom_padding\fR, \fIleft_padding\fR
1159 .RS 4
1160 Padding space added at the sides of the monitor or desktop\&.
1161 .RE
1162 .SS "Default, Desktop Default and Window Settings"
1163 .PP
1164 \fIborder_width\fR
1165 .RS 4
1166 Window border width\&.
1167 .RE
1168 .SS "Default and Desktop Settings"
1169 .PP
1170 \fIwindow_gap\fR
1171 .RS 4
1172 Size of the gap that separates windows\&.
1173 .RE
1174 .SH "STATUS FORMAT"
1175 .sp
1176 Status information is composed of items separated by colons\&.
1177 .sp
1178 Each item has the form \fI<type><value>\fR where \fI<type>\fR is the first character of the item\&.
1179 .PP
1180 \fIM<monitor_name>\fR
1181 .RS 4
1182 Focused monitor\&.
1183 .RE
1184 .PP
1185 \fIm<monitor_name>\fR
1186 .RS 4
1187 Unfocused monitor\&.
1188 .RE
1189 .PP
1190 \fIO<desktop_name>\fR
1191 .RS 4
1192 Occupied focused desktop\&.
1193 .RE
1194 .PP
1195 \fIo<desktop_name>\fR
1196 .RS 4
1197 Occupied unfocused desktop\&.
1198 .RE
1199 .PP
1200 \fIF<desktop_name>\fR
1201 .RS 4
1202 Free focused desktop\&.
1203 .RE
1204 .PP
1205 \fIf<desktop_name>\fR
1206 .RS 4
1207 Free unfocused desktop\&.
1208 .RE
1209 .PP
1210 \fIU<desktop_name>\fR
1211 .RS 4
1212 Urgent focused desktop\&.
1213 .RE
1214 .PP
1215 \fIu<desktop_name>\fR
1216 .RS 4
1217 Urgent unfocused desktop\&.
1218 .RE
1219 .PP
1220 \fIL(T|M)\fR
1221 .RS 4
1222 Layout of the focused desktop of a monitor\&.
1223 .RE
1224 .SH "ENVIRONMENT VARIABLES"
1225 .PP
1226 \fIBSPWM_SOCKET\fR
1227 .RS 4
1228 The path of the socket used for the communication between
1229 \fBbspc\fR
1230 and
1231 \fBbspwm\fR\&. If it isn\(cqt defined, then the following path is used:
1232 \fI/tmp/bspwm<host_name>_<display_number>_<screen_number>\-socket\fR\&.
1233 .RE
1234 .SH "PANELS"
1235 .sp
1236 .RS 4
1237 .ie n \{\
1238 \h'-04'\(bu\h'+03'\c
1239 .\}
1240 .el \{\
1241 .sp -1
1242 .IP \(bu 2.3
1243 .\}
1244 Any EWMH compliant panel (e\&.g\&.:
1245 \fItint2\fR,
1246 \fIbmpanel2\fR, etc\&.)\&.
1247 .RE
1248 .sp
1249 .RS 4
1250 .ie n \{\
1251 \h'-04'\(bu\h'+03'\c
1252 .\}
1253 .el \{\
1254 .sp -1
1255 .IP \(bu 2.3
1256 .\}
1257 A custom panel (have a look at the files in
1258 \fIexamples/panel\fR)\&.
1259 .RE
1260 .SH "KEY FEATURES"
1261 .sp
1262 .RS 4
1263 .ie n \{\
1264 \h'-04'\(bu\h'+03'\c
1265 .\}
1266 .el \{\
1267 .sp -1
1268 .IP \(bu 2.3
1269 .\}
1270 Configured and controlled through messages\&.
1271 .RE
1272 .sp
1273 .RS 4
1274 .ie n \{\
1275 \h'-04'\(bu\h'+03'\c
1276 .\}
1277 .el \{\
1278 .sp -1
1279 .IP \(bu 2.3
1280 .\}
1281 Multiple monitors support\&.
1282 .RE
1283 .sp
1284 .RS 4
1285 .ie n \{\
1286 \h'-04'\(bu\h'+03'\c
1287 .\}
1288 .el \{\
1289 .sp -1
1290 .IP \(bu 2.3
1291 .\}
1292 EWMH support\&.
1293 .RE
1294 .sp
1295 .RS 4
1296 .ie n \{\
1297 \h'-04'\(bu\h'+03'\c
1298 .\}
1299 .el \{\
1300 .sp -1
1301 .IP \(bu 2.3
1302 .\}
1303 Hybrid tiling\&.
1304 .RE
1305 .SH "CONTRIBUTORS"
1306 .sp
1307 .RS 4
1308 .ie n \{\
1309 \h'-04'\(bu\h'+03'\c
1310 .\}
1311 .el \{\
1312 .sp -1
1313 .IP \(bu 2.3
1314 .\}
1315 Steven Allen <steven at stebalien\&.com>
1316 .RE
1317 .sp
1318 .RS 4
1319 .ie n \{\
1320 \h'-04'\(bu\h'+03'\c
1321 .\}
1322 .el \{\
1323 .sp -1
1324 .IP \(bu 2.3
1325 .\}
1326 Thomas Adam <thomas at xteddy\&.org>
1327 .RE
1328 .sp
1329 .RS 4
1330 .ie n \{\
1331 \h'-04'\(bu\h'+03'\c
1332 .\}
1333 .el \{\
1334 .sp -1
1335 .IP \(bu 2.3
1336 .\}
1337 Ivan Kanakarakis <ivan\&.kanak at gmail\&.com>
1338 .RE
1339 .SH "AUTHOR"
1340 .sp
1341 Bastien Dejean <nihilhill at gmail\&.com>
1342 .SH "MAILING LIST"
1343 .sp
1344 bspwm at librelist\&.com