]> git.lizzy.rs Git - bspwm.git/blob - doc/bspwm.1
*Frames* are unnecessary
[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: 12/27/2013
6 .\"    Manual: Bspwm Manual
7 .\"    Source: Bspwm 0.8.7
8 .\"  Language: English
9 .\"
10 .TH "BSPWM" "1" "12/27/2013" "Bspwm 0\&.8\&.7" "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 is 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 departure, 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 desktops nor monitors 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][\&.urgent][\&.local]
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 (see
251 \fB\-\-presel\fR)\&.
252 .RE
253 .PP
254 local
255 .RS 4
256 Only consider windows of the current desktop\&.
257 .RE
258 .PP
259 urgent
260 .RS 4
261 Only consider urgent windows\&.
262 .RE
263 .RE
264 .SS "Desktop"
265 .sp
266 Select a desktop\&.
267 .sp
268 .if n \{\
269 .RS 4
270 .\}
271 .nf
272 DESKTOP_SEL := <desktop_name>
273              | ^<n>
274              | (CYCLE_DIR|last|focused|older|newer)[\&.occupied|\&.free][\&.urgent][\&.local]
275 .fi
276 .if n \{\
277 .RE
278 .\}
279 .sp
280 .it 1 an-trap
281 .nr an-no-space-flag 1
282 .nr an-break-flag 1
283 .br
284 .ps +1
285 \fBPrimary Selectors\fR
286 .RS 4
287 .PP
288 <desktop_name>
289 .RS 4
290 Selects the desktop with the given name\&.
291 .RE
292 .PP
293 ^<n>
294 .RS 4
295 Selects the nth desktop\&.
296 .RE
297 .PP
298 \fICYCLE_DIR\fR
299 .RS 4
300 Selects the desktop in the given direction relative to the active desktop\&.
301 .RE
302 .PP
303 last
304 .RS 4
305 Selects the previously focused desktop\&.
306 .RE
307 .PP
308 focused
309 .RS 4
310 Selects the currently focused desktop\&.
311 .RE
312 .PP
313 older
314 .RS 4
315 Selects the desktop older than the focused desktop in the history\&.
316 .RE
317 .PP
318 newer
319 .RS 4
320 Selects the desktop newer than the focused desktop in the history\&.
321 .RE
322 .RE
323 .sp
324 .it 1 an-trap
325 .nr an-no-space-flag 1
326 .nr an-break-flag 1
327 .br
328 .ps +1
329 \fBModifiers\fR
330 .RS 4
331 .PP
332 occupied
333 .RS 4
334 Only consider occupied desktops\&.
335 .RE
336 .PP
337 free
338 .RS 4
339 Only consider free desktops\&.
340 .RE
341 .PP
342 urgent
343 .RS 4
344 Only consider urgent desktops\&.
345 .RE
346 .PP
347 local
348 .RS 4
349 Only consider desktops of the current monitor\&.
350 .RE
351 .RE
352 .SS "Monitor"
353 .sp
354 Select a monitor\&.
355 .sp
356 .if n \{\
357 .RS 4
358 .\}
359 .nf
360 MONITOR_SEL := <monitor_name>
361              | ^<n>
362              | (DIR|CYCLE_DIR|last|primary|focused|older|newer)[\&.occupied|\&.free]
363 .fi
364 .if n \{\
365 .RE
366 .\}
367 .sp
368 .it 1 an-trap
369 .nr an-no-space-flag 1
370 .nr an-break-flag 1
371 .br
372 .ps +1
373 \fBPrimary Selectors\fR
374 .RS 4
375 .PP
376 <monitor_name>
377 .RS 4
378 Selects the monitor with the given name\&.
379 .RE
380 .PP
381 ^<n>
382 .RS 4
383 Selects the nth monitor\&.
384 .RE
385 .PP
386 \fIDIR\fR
387 .RS 4
388 Selects the monitor in the given (spacial) direction relative to the active monitor\&.
389 .RE
390 .PP
391 \fICYCLE_DIR\fR
392 .RS 4
393 Selects the monitor in the given (cyclic) direction relative to the active monitor\&.
394 .RE
395 .PP
396 primary
397 .RS 4
398 Selects the primary monitor\&.
399 .RE
400 .PP
401 last
402 .RS 4
403 Selects the previously focused monitor\&.
404 .RE
405 .PP
406 focused
407 .RS 4
408 Selects the currently focused monitor\&.
409 .RE
410 .PP
411 older
412 .RS 4
413 Selects the monitor older than the focused monitor in the history\&.
414 .RE
415 .PP
416 newer
417 .RS 4
418 Selects the monitor newer than the focused monitor in the history\&.
419 .RE
420 .RE
421 .sp
422 .it 1 an-trap
423 .nr an-no-space-flag 1
424 .nr an-break-flag 1
425 .br
426 .ps +1
427 \fBModifiers\fR
428 .RS 4
429 .PP
430 occupied
431 .RS 4
432 Only consider monitors where the focused desktop is occupied\&.
433 .RE
434 .PP
435 free
436 .RS 4
437 Only consider monitors where the focused desktop is free\&.
438 .RE
439 .RE
440 .SH "WINDOW STATES"
441 .PP
442 floating
443 .RS 4
444 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\&.
445 .RE
446 .PP
447 fullscreen
448 .RS 4
449 Fills its monitor rectangle, is above all the other windows and has no borders\&.
450 .RE
451 .PP
452 locked
453 .RS 4
454 Ignores the
455 \fBclose\fR
456 message\&.
457 .RE
458 .PP
459 sticky
460 .RS 4
461 Stays in the focused desktop of its monitor\&.
462 .RE
463 .PP
464 private
465 .RS 4
466 Tries to keep the same tiling position/size\&.
467 .RE
468 .SH "COMMANDS"
469 .SS "Window"
470 .sp
471 .it 1 an-trap
472 .nr an-no-space-flag 1
473 .nr an-break-flag 1
474 .br
475 .ps +1
476 \fBGeneral Syntax\fR
477 .RS 4
478 .sp
479 window [\fIWINDOW_SEL\fR] \fIOPTIONS\fR
480 .RE
481 .sp
482 .it 1 an-trap
483 .nr an-no-space-flag 1
484 .nr an-break-flag 1
485 .br
486 .ps +1
487 \fBOptions\fR
488 .RS 4
489 .PP
490 \fB\-f\fR, \fB\-\-focus\fR [\fIWINDOW_SEL\fR]
491 .RS 4
492 Focus the selected or given window\&.
493 .RE
494 .PP
495 \fB\-d\fR, \fB\-\-to\-desktop\fR \fIDESKTOP_SEL\fR
496 .RS 4
497 Send the selected window to the given desktop\&.
498 .RE
499 .PP
500 \fB\-m\fR, \fB\-\-to\-monitor\fR \fIMONITOR_SEL\fR
501 .RS 4
502 Send the selected window to the given monitor\&.
503 .RE
504 .PP
505 \fB\-w\fR, \fB\-\-to\-window\fR \fIWINDOW_SEL\fR
506 .RS 4
507 Transplant the selected window to the given window\&.
508 .RE
509 .PP
510 \fB\-s\fR, \fB\-\-swap\fR \fIWINDOW_SEL\fR
511 .RS 4
512 Swap the selected window with the given window\&.
513 .RE
514 .PP
515 \fB\-p\fR, \fB\-\-presel\fR \fIDIR\fR|cancel
516 .RS 4
517 Preselect the splitting area of the selected window (or cancel the preselection)\&.
518 .RE
519 .PP
520 \fB\-r\fR, \fB\-\-ratio\fR \fIRATIO\fR
521 .RS 4
522 Set the splitting ratio of the selected window (0 <
523 \fIRATIO\fR
524 < 1)\&.
525 .RE
526 .PP
527 \fB\-e\fR, \fB\-\-edge\fR \fIDIR\fR \fIRATIO\fR|\(+-\fIPIXELS\fR|pull|push
528 .RS 4
529 Set and change the splitting ratio of (or pull, or push) the edge located in the given direction in relation to the selected window\&.
530 .RE
531 .PP
532 \fB\-R\fR, \fB\-\-rotate\fR \fIDIR\fR \fI90|270|180\fR
533 .RS 4
534 Rotate the tree holding the edge located in the given direction in relation to the selected window\&.
535 .RE
536 .PP
537 \fB\-t\fR, \fB\-\-toggle\fR floating|fullscreen|locked|sticky|private[=on|off]
538 .RS 4
539 Set or toggle the given state for the selected window\&.
540 .RE
541 .PP
542 \fB\-c\fR, \fB\-\-close\fR
543 .RS 4
544 Close the selected window\&.
545 .RE
546 .PP
547 \fB\-k\fR, \fB\-\-kill\fR
548 .RS 4
549 Kill the selected window\&.
550 .RE
551 .RE
552 .SS "Desktop"
553 .sp
554 .it 1 an-trap
555 .nr an-no-space-flag 1
556 .nr an-break-flag 1
557 .br
558 .ps +1
559 \fBGeneral Syntax\fR
560 .RS 4
561 .sp
562 desktop [\fIDESKTOP_SEL\fR] \fIOPTIONS\fR
563 .RE
564 .sp
565 .it 1 an-trap
566 .nr an-no-space-flag 1
567 .nr an-break-flag 1
568 .br
569 .ps +1
570 \fBOptions\fR
571 .RS 4
572 .PP
573 \fB\-f\fR, \fB\-\-focus\fR [\fIDESKTOP_SEL\fR]
574 .RS 4
575 Focus the selected or given desktop\&.
576 .RE
577 .PP
578 \fB\-m\fR, \fB\-\-to\-monitor\fR \fIMONITOR_SEL\fR
579 .RS 4
580 Send the selected desktop to the given monitor\&.
581 .RE
582 .PP
583 \fB\-l\fR, \fB\-\-layout\fR \fICYCLE_DIR\fR|monocle|tiled
584 .RS 4
585 Set or cycle the layout of the selected desktop\&.
586 .RE
587 .PP
588 \fB\-n\fR, \fB\-\-rename\fR <new_name>
589 .RS 4
590 Rename the selected desktop\&.
591 .RE
592 .PP
593 \fB\-s\fR, \fB\-\-swap\fR \fIDESKTOP_SEL\fR
594 .RS 4
595 Swap the selected desktop with the given desktop\&.
596 .RE
597 .PP
598 \fB\-r\fR, \fB\-\-remove\fR
599 .RS 4
600 Remove the selected desktop\&.
601 .RE
602 .PP
603 \fB\-c\fR, \fB\-\-cancel\-presel\fR
604 .RS 4
605 Cancel the preselection of all the windows of the selected desktop\&.
606 .RE
607 .PP
608 \fB\-F\fR, \fB\-\-flip\fR \fIhorizontal|vertical\fR
609 .RS 4
610 Flip the tree of the selected desktop\&.
611 .RE
612 .PP
613 \fB\-R\fR, \fB\-\-rotate\fR \fI90|270|180\fR
614 .RS 4
615 Rotate the tree of the selected desktop\&.
616 .RE
617 .PP
618 \fB\-B\fR, \fB\-\-balance\fR
619 .RS 4
620 Adjust the split ratios of the tree of the selected desktop so that all windows occupy the same area\&.
621 .RE
622 .PP
623 \fB\-C\fR, \fB\-\-circulate\fR forward|backward
624 .RS 4
625 Circulate the leaves of the tree of the selected desktop\&.
626 .RE
627 .PP
628 \fB\-t\fR, \fB\-\-toggle\fR floating[=on|off]
629 .RS 4
630 Set or toggle the given state for the selected desktop\&.
631 .RE
632 .RE
633 .SS "Monitor"
634 .sp
635 .it 1 an-trap
636 .nr an-no-space-flag 1
637 .nr an-break-flag 1
638 .br
639 .ps +1
640 \fBGeneral Syntax\fR
641 .RS 4
642 .sp
643 monitor [\fIMONITOR_SEL\fR] \fIOPTIONS\fR
644 .RE
645 .sp
646 .it 1 an-trap
647 .nr an-no-space-flag 1
648 .nr an-break-flag 1
649 .br
650 .ps +1
651 \fBOptions\fR
652 .RS 4
653 .PP
654 \fB\-f\fR, \fB\-\-focus\fR [\fIMONITOR_SEL\fR]
655 .RS 4
656 Focus the selected or given monitor\&.
657 .RE
658 .PP
659 \fB\-a\fR, \fB\-\-add\-desktops\fR <name>\&...
660 .RS 4
661 Create desktops with the given names in the selected monitor\&.
662 .RE
663 .PP
664 \fB\-r\fR, \fB\-\-remove\-desktops\fR <name>\&...
665 .RS 4
666 Remove desktops with the given names\&.
667 .RE
668 .PP
669 \fB\-o\fR, \fB\-\-reorder\-desktops\fR <name>\&...
670 .RS 4
671 Reorder the desktops of the selected monitor to match the given order\&.
672 .RE
673 .PP
674 \fB\-d\fR, \fB\-\-reset\-desktops\fR <name>\&...
675 .RS 4
676 Rename, add or remove desktops depending on whether the number of given names is equal, superior or inferior to the number of existing desktops\&.
677 .RE
678 .PP
679 \fB\-n\fR, \fB\-\-rename\fR <new_name>
680 .RS 4
681 Rename the selected monitor\&.
682 .RE
683 .PP
684 \fB\-s\fR, \fB\-\-swap\fR \fIMONITOR_SEL\fR
685 .RS 4
686 Swap the selected monitor with the given monitor\&.
687 .RE
688 .RE
689 .SS "Query"
690 .sp
691 .it 1 an-trap
692 .nr an-no-space-flag 1
693 .nr an-break-flag 1
694 .br
695 .ps +1
696 \fBGeneral Syntax\fR
697 .RS 4
698 .sp
699 query \fIOPTIONS\fR
700 .RE
701 .sp
702 .it 1 an-trap
703 .nr an-no-space-flag 1
704 .nr an-break-flag 1
705 .br
706 .ps +1
707 \fBOptions\fR
708 .RS 4
709 .PP
710 \fB\-W\fR, \fB\-\-windows\fR
711 .RS 4
712 List matching windows\&.
713 .RE
714 .PP
715 \fB\-D\fR, \fB\-\-desktops\fR
716 .RS 4
717 List matching desktops\&.
718 .RE
719 .PP
720 \fB\-M\fR, \fB\-\-monitors\fR
721 .RS 4
722 List matching monitors\&.
723 .RE
724 .PP
725 \fB\-T\fR, \fB\-\-tree\fR
726 .RS 4
727 Print tree rooted at query\&.
728 .RE
729 .PP
730 \fB\-H\fR, \fB\-\-history\fR
731 .RS 4
732 Print the history as it relates to the query\&.
733 .RE
734 .PP
735 \fB\-S\fR, \fB\-\-stack\fR
736 .RS 4
737 Print the window stacking order\&.
738 .RE
739 .PP
740 [\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]]
741 .RS 4
742 Constrain matches to the selected monitor, desktop or window\&.
743 .RE
744 .RE
745 .SS "Restore"
746 .sp
747 .it 1 an-trap
748 .nr an-no-space-flag 1
749 .nr an-break-flag 1
750 .br
751 .ps +1
752 \fBGeneral Syntax\fR
753 .RS 4
754 .sp
755 restore \fIOPTIONS\fR
756 .RE
757 .sp
758 .it 1 an-trap
759 .nr an-no-space-flag 1
760 .nr an-break-flag 1
761 .br
762 .ps +1
763 \fBOptions\fR
764 .RS 4
765 .PP
766 \fB\-T\fR, \fB\-\-tree\fR <file_path>
767 .RS 4
768 Load the desktop trees from the given file\&.
769 .RE
770 .PP
771 \fB\-H\fR, \fB\-\-history\fR <file_path>
772 .RS 4
773 Load the focus history from the given file\&.
774 .RE
775 .PP
776 \fB\-S\fR, \fB\-\-stack\fR <file_path>
777 .RS 4
778 Load the window stacking order from the given file\&.
779 .RE
780 .RE
781 .SS "Control"
782 .sp
783 .it 1 an-trap
784 .nr an-no-space-flag 1
785 .nr an-break-flag 1
786 .br
787 .ps +1
788 \fBGeneral Syntax\fR
789 .RS 4
790 .sp
791 control \fIOPTIONS\fR
792 .RE
793 .sp
794 .it 1 an-trap
795 .nr an-no-space-flag 1
796 .nr an-break-flag 1
797 .br
798 .ps +1
799 \fBOptions\fR
800 .RS 4
801 .PP
802 \fB\-\-adopt\-orphans\fR
803 .RS 4
804 Manage all the unmanaged windows remaining from a previous session\&.
805 .RE
806 .PP
807 \fB\-\-toggle\-visibility\fR
808 .RS 4
809 Toggle the visibility of all the windows\&.
810 .RE
811 .PP
812 \fB\-\-record\-history\fR on|off
813 .RS 4
814 Enable or disable the recording of window focus history\&.
815 .RE
816 .PP
817 \fB\-\-subscribe\fR
818 .RS 4
819 Continuously print status informations on standard output\&.
820 .RE
821 .RE
822 .SS "Pointer"
823 .sp
824 .it 1 an-trap
825 .nr an-no-space-flag 1
826 .nr an-break-flag 1
827 .br
828 .ps +1
829 \fBGeneral Syntax\fR
830 .RS 4
831 .sp
832 pointer \fIOPTIONS\fR
833 .RE
834 .sp
835 .it 1 an-trap
836 .nr an-no-space-flag 1
837 .nr an-break-flag 1
838 .br
839 .ps +1
840 \fBOptions\fR
841 .RS 4
842 .PP
843 \fB\-g\fR, \fB\-\-grab\fR focus|move|resize_side|resize_corner
844 .RS 4
845 Initiate the given pointer action\&.
846 .RE
847 .PP
848 \fB\-t\fR, \fB\-\-track\fR <x> <y>
849 .RS 4
850 Pass the pointer root coordinates for the current pointer action\&.
851 .RE
852 .PP
853 \fB\-u\fR, \fB\-\-ungrab\fR
854 .RS 4
855 Terminate the current pointer action\&.
856 .RE
857 .RE
858 .SS "Rule"
859 .sp
860 .it 1 an-trap
861 .nr an-no-space-flag 1
862 .nr an-break-flag 1
863 .br
864 .ps +1
865 \fBGeneral Syntax\fR
866 .RS 4
867 .sp
868 rule \fIOPTIONS\fR
869 .RE
870 .sp
871 .it 1 an-trap
872 .nr an-no-space-flag 1
873 .nr an-break-flag 1
874 .br
875 .ps +1
876 \fBOptions\fR
877 .RS 4
878 .PP
879 \fB\-a\fR, \fB\-\-add\fR <class_name>|<instance_name>|* [\fB\-o\fR|\fB\-\-one\-shot\fR] [desktop=DESKTOP_SEL|monitor=MONITOR_SEL] [(floating|fullscreen|locked|sticky|private|center|lower|follow|manage|focus)=(true|false)]
880 .RS 4
881 Create a new rule\&.
882 .RE
883 .PP
884 \fB\-r\fR, \fB\-\-remove\fR ^<n>|head|tail|<class_name>|<instance_name>|*\&...
885 .RS 4
886 Remove the given rules\&.
887 .RE
888 .PP
889 \fB\-l\fR, \fB\-\-list\fR [<class_name>|<instance_name>|*]
890 .RS 4
891 List the rules\&.
892 .RE
893 .RE
894 .SS "Config"
895 .sp
896 .it 1 an-trap
897 .nr an-no-space-flag 1
898 .nr an-break-flag 1
899 .br
900 .ps +1
901 \fBGeneral Syntax\fR
902 .RS 4
903 .PP
904 config [\-m \fIMONITOR_SEL\fR|\-d \fIDESKTOP_SEL\fR] <key> [<value>]
905 .RS 4
906 Get or set the value of <key>\&.
907 .RE
908 .RE
909 .SS "Quit"
910 .sp
911 .it 1 an-trap
912 .nr an-no-space-flag 1
913 .nr an-break-flag 1
914 .br
915 .ps +1
916 \fBGeneral Syntax\fR
917 .RS 4
918 .PP
919 quit [<status>]
920 .RS 4
921 Quit with an optional exit status\&.
922 .RE
923 .RE
924 .SH "SETTINGS"
925 .sp
926 Colors are either X color names or \fI#RRGGBB\fR, booleans are \fItrue\fR or \fIfalse\fR\&.
927 .sp
928 All the boolean settings are \fIfalse\fR by default\&.
929 .SS "Global Settings"
930 .PP
931 \fIfocused_border_color\fR
932 .RS 4
933 Color of the border of a focused window of a focused monitor\&.
934 .RE
935 .PP
936 \fIactive_border_color\fR
937 .RS 4
938 Color of the border of a focused window of an unfocused monitor\&.
939 .RE
940 .PP
941 \fInormal_border_color\fR
942 .RS 4
943 Color of the border of an unfocused window\&.
944 .RE
945 .PP
946 \fIpresel_border_color\fR
947 .RS 4
948 Color of the
949 \fBpresel\fR
950 message feedback\&.
951 .RE
952 .PP
953 \fIfocused_locked_border_color\fR
954 .RS 4
955 Color of the border of a focused locked window of a focused monitor\&.
956 .RE
957 .PP
958 \fIactive_locked_border_color\fR
959 .RS 4
960 Color of the border of a focused locked window of an unfocused monitor\&.
961 .RE
962 .PP
963 \fInormal_locked_border_color\fR
964 .RS 4
965 Color of the border of an unfocused locked window\&.
966 .RE
967 .PP
968 \fIfocused_sticky_border_color\fR
969 .RS 4
970 Color of the border of a focused sticky window of a focused monitor\&.
971 .RE
972 .PP
973 \fIactive_sticky_border_color\fR
974 .RS 4
975 Color of the border of a focused sticky window of an unfocused monitor\&.
976 .RE
977 .PP
978 \fInormal_sticky_border_color\fR
979 .RS 4
980 Color of the border of an unfocused sticky window\&.
981 .RE
982 .PP
983 \fIfocused_private_border_color\fR
984 .RS 4
985 Color of the border of a focused private window of a focused monitor\&.
986 .RE
987 .PP
988 \fIactive_private_border_color\fR
989 .RS 4
990 Color of the border of a focused private window of an unfocused monitor\&.
991 .RE
992 .PP
993 \fInormal_private_border_color\fR
994 .RS 4
995 Color of the border of an unfocused private window\&.
996 .RE
997 .PP
998 \fIurgent_border_color\fR
999 .RS 4
1000 Color of the border of an urgent window\&.
1001 .RE
1002 .PP
1003 \fIsplit_ratio\fR
1004 .RS 4
1005 Default split ratio\&.
1006 .RE
1007 .PP
1008 \fIgrowth_factor\fR
1009 .RS 4
1010 Intensity of the growth involved in pulling or pushing an edge\&.
1011 .RE
1012 .PP
1013 \fIstatus_prefix\fR
1014 .RS 4
1015 Prefix prepended to each of the status lines\&.
1016 .RE
1017 .PP
1018 \fIexternal_rules_command\fR
1019 .RS 4
1020 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:
1021 \fBkey1=value1 key2=value2 \&...\fR
1022 (the valid key/value pairs are given in the description of the
1023 \fIrule\fR
1024 command)\&.
1025 .RE
1026 .PP
1027 \fIhistory_aware_focus\fR
1028 .RS 4
1029 Give priority to the focus history when focusing nodes\&.
1030 .RE
1031 .PP
1032 \fIborderless_monocle\fR
1033 .RS 4
1034 Remove borders for tiled windows in monocle mode\&.
1035 .RE
1036 .PP
1037 \fIgapless_monocle\fR
1038 .RS 4
1039 Remove gaps for tiled windows in monocle mode\&.
1040 .RE
1041 .PP
1042 \fIfocus_follows_pointer\fR
1043 .RS 4
1044 Focus the window under the pointer\&.
1045 .RE
1046 .PP
1047 \fIpointer_follows_monitor\fR
1048 .RS 4
1049 When focusing a monitor, put the pointer at its center\&.
1050 .RE
1051 .PP
1052 \fIauto_alternate\fR
1053 .RS 4
1054 Interpret two consecutive identical
1055 \fBuse\fR
1056 messages as an
1057 \fBalternate\fR
1058 message\&.
1059 .RE
1060 .PP
1061 \fIauto_cancel\fR
1062 .RS 4
1063 Interpret two consecutive identical
1064 \fBpresel\fR
1065 messages as a
1066 \fBcancel\fR
1067 message\&.
1068 .RE
1069 .PP
1070 \fIapply_floating_atom\fR
1071 .RS 4
1072 Set the value of the
1073 \fI_BSPWM_FLOATING_WINDOW\fR
1074 atom of each window according to its floating state\&.
1075 .RE
1076 .PP
1077 \fIignore_ewmh_focus\fR
1078 .RS 4
1079 Ignore EWMH requests to focus a window\&.
1080 .RE
1081 .PP
1082 \fIremove_disabled_monitor\fR
1083 .RS 4
1084 Consider disabled monitors as disconnected\&.
1085 .RE
1086 .SS "Desktop Settings"
1087 .PP
1088 \fIwindow_gap\fR
1089 .RS 4
1090 Size of the gap that separates windows\&.
1091 .RE
1092 .PP
1093 \fItop_padding\fR, \fIright_padding\fR, \fIbottom_padding\fR, \fIleft_padding\fR
1094 .RS 4
1095 Padding space added at the sides of the desktop\&.
1096 .RE
1097 .PP
1098 \fIborder_width\fR
1099 .RS 4
1100 Window border width\&.
1101 .RE
1102 .SH "STATUS FORMAT"
1103 .sp
1104 Status informations are composed of items separated by colons\&.
1105 .sp
1106 Each item has the form \fI<type><value>\fR where \fI<type>\fR is the first character of the item\&.
1107 .PP
1108 \fIM<monitor_name>\fR
1109 .RS 4
1110 Focused monitor\&.
1111 .RE
1112 .PP
1113 \fIm<monitor_name>\fR
1114 .RS 4
1115 Unfocused monitor\&.
1116 .RE
1117 .PP
1118 \fIO<desktop_name>\fR
1119 .RS 4
1120 Occupied focused desktop\&.
1121 .RE
1122 .PP
1123 \fIo<desktop_name>\fR
1124 .RS 4
1125 Occupied unfocused desktop\&.
1126 .RE
1127 .PP
1128 \fIF<desktop_name>\fR
1129 .RS 4
1130 Free focused desktop\&.
1131 .RE
1132 .PP
1133 \fIf<desktop_name>\fR
1134 .RS 4
1135 Free unfocused desktop\&.
1136 .RE
1137 .PP
1138 \fIU<desktop_name>\fR
1139 .RS 4
1140 Urgent focused desktop\&.
1141 .RE
1142 .PP
1143 \fIu<desktop_name>\fR
1144 .RS 4
1145 Urgent unfocused desktop\&.
1146 .RE
1147 .PP
1148 \fIL(tiled|monocle)\fR
1149 .RS 4
1150 Layout of the focused desktop of the focused monitor\&.
1151 .RE
1152 .SH "ENVIRONMENT VARIABLES"
1153 .PP
1154 \fIBSPWM_SOCKET\fR
1155 .RS 4
1156 The path of the socket used for the communication between
1157 \fBbspc\fR
1158 and
1159 \fBbspwm\fR\&. If it isn\(cqt defined, then the following path is used:
1160 \fI/tmp/bspwm<display_name>\-socket\fR\&.
1161 .RE
1162 .SH "PANELS"
1163 .sp
1164 .RS 4
1165 .ie n \{\
1166 \h'-04'\(bu\h'+03'\c
1167 .\}
1168 .el \{\
1169 .sp -1
1170 .IP \(bu 2.3
1171 .\}
1172 Any EWMH compliant panel (e\&.g\&.:
1173 \fItint2\fR,
1174 \fIbmpanel2\fR, etc\&.)\&.
1175 .RE
1176 .sp
1177 .RS 4
1178 .ie n \{\
1179 \h'-04'\(bu\h'+03'\c
1180 .\}
1181 .el \{\
1182 .sp -1
1183 .IP \(bu 2.3
1184 .\}
1185 A custom panel if the
1186 \fI\-s\fR
1187 flag is used (have a look at the files in
1188 \fIexamples/panel\fR)\&.
1189 .RE
1190 .SH "KEY FEATURES"
1191 .sp
1192 .RS 4
1193 .ie n \{\
1194 \h'-04'\(bu\h'+03'\c
1195 .\}
1196 .el \{\
1197 .sp -1
1198 .IP \(bu 2.3
1199 .\}
1200 Configured and controlled through messages\&.
1201 .RE
1202 .sp
1203 .RS 4
1204 .ie n \{\
1205 \h'-04'\(bu\h'+03'\c
1206 .\}
1207 .el \{\
1208 .sp -1
1209 .IP \(bu 2.3
1210 .\}
1211 Multiple monitors support (via
1212 \fIRandR\fR)\&.
1213 .RE
1214 .sp
1215 .RS 4
1216 .ie n \{\
1217 \h'-04'\(bu\h'+03'\c
1218 .\}
1219 .el \{\
1220 .sp -1
1221 .IP \(bu 2.3
1222 .\}
1223 EWMH support (\fBtint2\fR
1224 works)\&.
1225 .RE
1226 .sp
1227 .RS 4
1228 .ie n \{\
1229 \h'-04'\(bu\h'+03'\c
1230 .\}
1231 .el \{\
1232 .sp -1
1233 .IP \(bu 2.3
1234 .\}
1235 Hybrid tiling\&.
1236 .RE
1237 .SH "CONTRIBUTORS"
1238 .sp
1239 .RS 4
1240 .ie n \{\
1241 \h'-04'\(bu\h'+03'\c
1242 .\}
1243 .el \{\
1244 .sp -1
1245 .IP \(bu 2.3
1246 .\}
1247 Steven Allen <steven at stebalien\&.com>
1248 .RE
1249 .sp
1250 .RS 4
1251 .ie n \{\
1252 \h'-04'\(bu\h'+03'\c
1253 .\}
1254 .el \{\
1255 .sp -1
1256 .IP \(bu 2.3
1257 .\}
1258 Thomas Adam <thomas at xteddy\&.org>
1259 .RE
1260 .sp
1261 .RS 4
1262 .ie n \{\
1263 \h'-04'\(bu\h'+03'\c
1264 .\}
1265 .el \{\
1266 .sp -1
1267 .IP \(bu 2.3
1268 .\}
1269 Ivan Kanakarakis <ivan\&.kanak at gmail\&.com>
1270 .RE
1271 .SH "AUTHOR"
1272 .sp
1273 Bastien Dejean <nihilhill at gmail\&.com>
1274 .SH "MAILING LIST"
1275 .sp
1276 bspwm at librelist\&.com