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