]> git.lizzy.rs Git - bspwm.git/blob - doc/bspwm.1
527cbc064e4d9e91fd2af0d1070604fa9e030c30
[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: 10/06/2013
6 .\"    Manual: Bspwm Manual
7 .\"    Source: Bspwm 0.8.5
8 .\"  Language: English
9 .\"
10 .TH "BSPWM" "1" "10/06/2013" "Bspwm 0\&.8\&.5" "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|\fB\-s\fR \fIPANEL_FIFO\fR|\fB\-p\fR \fIPANEL_PREFIX\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 .PP
59 \fB\-s\fR \fIPANEL_FIFO\fR
60 .RS 4
61 Write the internal state to the given FIFO\&.
62 .RE
63 .PP
64 \fB\-p\fR \fIPANEL_PREFIX\fR
65 .RS 4
66 Start every line written to the
67 \fIPANEL_FIFO\fR
68 with the given prefix\&.
69 .RE
70 .SH "CONFIGURATION"
71 .sp
72 \fBbspwm\fR has only two sources of informations: the X events it receives and the messages it reads on a dedicated socket\&.
73 .sp
74 The default configuration file is \fI$XDG_CONFIG_HOME/bspwm/bspwmrc\fR\&.
75 .sp
76 Keyboard and pointer bindings are defined with sxhkd\&.
77 .sp
78 Example configuration files can be found in the \fBexamples\fR directory\&.
79 .SH "SPLITTING MODES"
80 .sp
81 New windows are inserted in the tree as close as possible to the focused window\&.
82 .sp
83 There is only two splitting modes: \fIautomatic\fR and \fImanual\fR\&.
84 .sp
85 The default mode is \fIautomatic\fR\&. The \fImanual\fR mode is entered by sending a \fBpreselection\fR message\&.
86 .sp
87 Example: insertion of a new node (number 4) into the given tree in \fIautomatic\fR mode:
88 .sp
89 .if n \{\
90 .RS 4
91 .\}
92 .nf
93               b                                   c
94              / \e                                 / \e
95             3   a              \-\->              4   b
96             ^  / \e                              ^  / \e
97               2   1                               3   a
98                                                      / \e
99                                                     2   1
100  +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
101  |            |            |         |            |            |
102  |            |     2      |         |            |     3      |
103  |            |            |         |            |            |
104  |     3      |\-\-\-\-\-\-\-\-\-\-\-\-|   \-\->   |     4      |\-\-\-\-\-\-\-\-\-\-\-\-|
105  |     ^      |            |         |     ^      |     |      |
106  |            |     1      |         |            |  1  |  2   |
107  |            |            |         |            |     |      |
108  +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
109 .fi
110 .if n \{\
111 .RE
112 .\}
113 .sp
114 Same departure, but the mode is \fImanual\fR, and a \fBwindow \-\-presel up\fR message was sent beforehand:
115 .sp
116 .if n \{\
117 .RS 4
118 .\}
119 .nf
120              b                                   b
121             / \e                                 / \e
122            3   a              \-\->              c   a
123            ^  / \e                             / \e / \e
124              2   1                           4  3 2  1
125                                              ^
126 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
127 |            |            |         |            |            |
128 |            |     2      |         |     4      |     2      |
129 |            |            |         |     ^      |            |
130 |     3      |\-\-\-\-\-\-\-\-\-\-\-\-|   \-\->   |\-\-\-\-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\-\-\-\-\-|
131 |     ^      |            |         |            |            |
132 |            |     1      |         |     3      |     1      |
133 |            |            |         |            |            |
134 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
135 .fi
136 .if n \{\
137 .RE
138 .\}
139 .SH "CONTAINERS"
140 .sp
141 Each monitor contains at least one desktop\&.
142 .sp
143 Each desktop contains at most one tree\&.
144 .SH "COMMON DEFINITIONS"
145 .sp
146 .if n \{\
147 .RS 4
148 .\}
149 .nf
150 DIR         := left | right | up | down
151 CYCLE_DIR   := next | prev
152 .fi
153 .if n \{\
154 .RE
155 .\}
156 .SH "SELECTORS"
157 .sp
158 Selectors are used to select a target window, desktop, or monitor\&. A selector can either describe the target relatively or name it globally\&.
159 .sp
160 Descriptive (relative) selectors consist of a primary selector and any number of non\-conflicting modifiers as follows:
161 .sp
162 .if n \{\
163 .RS 4
164 .\}
165 .nf
166 PRIMARY_SELECTOR[\&.MODIFIER]*
167 .fi
168 .if n \{\
169 .RE
170 .\}
171 .sp
172 For obvious reasons, neither desktops nor monitors names may be valid descriptive selectors\&.
173 .SS "Window"
174 .sp
175 Select a window\&.
176 .sp
177 .if n \{\
178 .RS 4
179 .\}
180 .nf
181 WINDOW_SEL := <window_id>
182             | (DIR|CYCLE_DIR|biggest|last|last_local|focused)[\&.floating|\&.tiled][\&.like|\&.unlike][\&.automatic|\&.manual][\&.urgent|\&.nonurgent]
183 .fi
184 .if n \{\
185 .RE
186 .\}
187 .sp
188 .it 1 an-trap
189 .nr an-no-space-flag 1
190 .nr an-break-flag 1
191 .br
192 .ps +1
193 \fBPrimary Selectors\fR
194 .RS 4
195 .PP
196 \fIDIR\fR
197 .RS 4
198 Selects the window in the given (spacial) direction relative to the active window\&.
199 .RE
200 .PP
201 \fICYCLE_DIR\fR
202 .RS 4
203 Selects the window in the given (cyclic) direction\&.
204 .RE
205 .PP
206 biggest
207 .RS 4
208 Selects the biggest window on the current desktop\&.
209 .RE
210 .PP
211 last
212 .RS 4
213 Selects the previously focused window\&.
214 .RE
215 .PP
216 last_local
217 .RS 4
218 Selects the previously focused window on the current desktop\&.
219 .RE
220 .PP
221 focused
222 .RS 4
223 Selects the currently focused window\&.
224 .RE
225 .RE
226 .sp
227 .it 1 an-trap
228 .nr an-no-space-flag 1
229 .nr an-break-flag 1
230 .br
231 .ps +1
232 \fBModifiers\fR
233 .RS 4
234 .PP
235 floating
236 .RS 4
237 Only consider floating windows\&.
238 .RE
239 .PP
240 tiled
241 .RS 4
242 Only consider tiled windows\&.
243 .RE
244 .PP
245 like
246 .RS 4
247 Only consider windows that have the same class as the current window\&.
248 .RE
249 .PP
250 unlike
251 .RS 4
252 Only consider windows that have a different class than the current window\&.
253 .RE
254 .PP
255 automatic
256 .RS 4
257 Only consider windows in automatic splitting mode\&.
258 .RE
259 .PP
260 manual
261 .RS 4
262 Only consider windows in manual splitting mode (see
263 \fB\-\-presel\fR)\&.
264 .RE
265 .PP
266 urgent
267 .RS 4
268 Only consider urgent windows\&.
269 .RE
270 .PP
271 nonurgent
272 .RS 4
273 Only consider nonurgent windows\&.
274 .RE
275 .RE
276 .SS "Desktop"
277 .sp
278 Select a desktop\&.
279 .sp
280 .if n \{\
281 .RS 4
282 .\}
283 .nf
284 DESKTOP_SEL := <desktop_name>
285              | ^<n>
286              | (CYCLE_DIR|last|last_local|focused)[\&.occupied|\&.free][\&.urgent|\&.nonurgent]
287 .fi
288 .if n \{\
289 .RE
290 .\}
291 .sp
292 .it 1 an-trap
293 .nr an-no-space-flag 1
294 .nr an-break-flag 1
295 .br
296 .ps +1
297 \fBPrimary Selectors\fR
298 .RS 4
299 .PP
300 <desktop_name>
301 .RS 4
302 Selects the desktop with the given name\&.
303 .RE
304 .PP
305 ^<n>
306 .RS 4
307 Selects the nth desktop\&.
308 .RE
309 .PP
310 \fICYCLE_DIR\fR
311 .RS 4
312 Selects the desktop in the given direction relative to the active desktop\&.
313 .RE
314 .PP
315 last
316 .RS 4
317 Selects the previously focused desktop\&.
318 .RE
319 .PP
320 last_local
321 .RS 4
322 Selects the previously focused desktop on the current monitor\&.
323 .RE
324 .PP
325 focused
326 .RS 4
327 Selects the currently focused desktop\&.
328 .RE
329 .RE
330 .sp
331 .it 1 an-trap
332 .nr an-no-space-flag 1
333 .nr an-break-flag 1
334 .br
335 .ps +1
336 \fBModifiers\fR
337 .RS 4
338 .PP
339 occupied
340 .RS 4
341 Only consider occupied desktops\&.
342 .RE
343 .PP
344 free
345 .RS 4
346 Only consider free desktops\&.
347 .RE
348 .PP
349 urgent
350 .RS 4
351 Only consider urgent desktops\&.
352 .RE
353 .PP
354 nonurgent
355 .RS 4
356 Only consider nonurgent desktops\&.
357 .RE
358 .RE
359 .SS "Monitor"
360 .sp
361 Select a monitor\&.
362 .sp
363 .if n \{\
364 .RS 4
365 .\}
366 .nf
367 MONITOR_SEL := <monitor_name>
368              | ^<n>
369              | (DIR|CYCLE_DIR|last|primary|focused)[\&.occupied|\&.free]
370 .fi
371 .if n \{\
372 .RE
373 .\}
374 .sp
375 .it 1 an-trap
376 .nr an-no-space-flag 1
377 .nr an-break-flag 1
378 .br
379 .ps +1
380 \fBPrimary Selectors\fR
381 .RS 4
382 .PP
383 <monitor_name>
384 .RS 4
385 Selects the monitor with the given name\&.
386 .RE
387 .PP
388 ^<n>
389 .RS 4
390 Selects the nth monitor\&.
391 .RE
392 .PP
393 \fIDIR\fR
394 .RS 4
395 Selects the monitor in the given (spacial) direction relative to the active monitor\&.
396 .RE
397 .PP
398 \fICYCLE_DIR\fR
399 .RS 4
400 Selects the monitor in the given (cyclic) direction relative to the active monitor\&.
401 .RE
402 .PP
403 primary
404 .RS 4
405 Selects the primary monitor\&.
406 .RE
407 .PP
408 last
409 .RS 4
410 Selects the previously focused monitor\&.
411 .RE
412 .PP
413 focused
414 .RS 4
415 Selects the currently focused monitor\&.
416 .RE
417 .RE
418 .sp
419 .it 1 an-trap
420 .nr an-no-space-flag 1
421 .nr an-break-flag 1
422 .br
423 .ps +1
424 \fBModifiers\fR
425 .RS 4
426 .PP
427 occupied
428 .RS 4
429 Only consider monitors where the focused desktop is occupied\&.
430 .RE
431 .PP
432 free
433 .RS 4
434 Only consider monitors where the focused desktop is free\&.
435 .RE
436 .RE
437 .SH "COMMANDS"
438 .SS "Window"
439 .sp
440 .it 1 an-trap
441 .nr an-no-space-flag 1
442 .nr an-break-flag 1
443 .br
444 .ps +1
445 \fBGeneral Syntax\fR
446 .RS 4
447 .sp
448 window [\fIWINDOW_SEL\fR] \fIOPTIONS\fR
449 .RE
450 .sp
451 .it 1 an-trap
452 .nr an-no-space-flag 1
453 .nr an-break-flag 1
454 .br
455 .ps +1
456 \fBOptions\fR
457 .RS 4
458 .PP
459 \fB\-f\fR, \fB\-\-focus\fR [\fIWINDOW_SEL\fR]
460 .RS 4
461 Focus the selected or given window\&.
462 .RE
463 .PP
464 \fB\-d\fR, \fB\-\-to\-desktop\fR \fIDESKTOP_SEL\fR
465 .RS 4
466 Send the selected window to the given desktop\&.
467 .RE
468 .PP
469 \fB\-m\fR, \fB\-\-to\-monitor\fR \fIMONITOR_SEL\fR
470 .RS 4
471 Send the selected window to the given monitor\&.
472 .RE
473 .PP
474 \fB\-w\fR, \fB\-\-to\-window\fR \fIWINDOW_SEL\fR
475 .RS 4
476 Transplant the selected window to the given window\&.
477 .RE
478 .PP
479 \fB\-s\fR, \fB\-\-swap\fR \fIWINDOW_SEL\fR
480 .RS 4
481 Swap the selected window with the given window\&.
482 .RE
483 .PP
484 \fB\-p\fR, \fB\-\-presel\fR \fIDIR\fR|cancel
485 .RS 4
486 Preselect the splitting area of the selected window (or cancel the preselection)\&.
487 .RE
488 .PP
489 \fB\-r\fR, \fB\-\-ratio\fR \fIRATIO\fR
490 .RS 4
491 Set the splitting ratio of the selected window (0 <
492 \fIRATIO\fR
493 < 1)\&.
494 .RE
495 .PP
496 \fB\-e\fR, \fB\-\-edge\fR \fIDIR\fR \fIRATIO\fR|pull|push
497 .RS 4
498 Set the splitting ratio (or pull, or push) the edge located in the given direction in relation to the selected window\&.
499 .RE
500 .PP
501 \fB\-R\fR, \fB\-\-rotate\fR \fIDIR\fR \fI90|270|180\fR
502 .RS 4
503 Rotate the tree holding the edge located in the given direction in relation to the selected window\&.
504 .RE
505 .PP
506 \fB\-t\fR, \fB\-\-toggle\fR floating|fullscreen|locked|sticky|visible[=on|off]
507 .RS 4
508 Set or toggle the given state for the selected window\&.
509 .RE
510 .PP
511 \fB\-c\fR, \fB\-\-close\fR
512 .RS 4
513 Close the selected window\&.
514 .RE
515 .PP
516 \fB\-k\fR, \fB\-\-kill\fR
517 .RS 4
518 Kill the selected window\&.
519 .RE
520 .RE
521 .SS "Desktop"
522 .sp
523 .it 1 an-trap
524 .nr an-no-space-flag 1
525 .nr an-break-flag 1
526 .br
527 .ps +1
528 \fBGeneral Syntax\fR
529 .RS 4
530 .sp
531 desktop [\fIDESKTOP_SEL\fR] \fIOPTIONS\fR
532 .RE
533 .sp
534 .it 1 an-trap
535 .nr an-no-space-flag 1
536 .nr an-break-flag 1
537 .br
538 .ps +1
539 \fBOptions\fR
540 .RS 4
541 .PP
542 \fB\-f\fR, \fB\-\-focus\fR [\fIDESKTOP_SEL\fR]
543 .RS 4
544 Focus the selected or given desktop\&.
545 .RE
546 .PP
547 \fB\-m\fR, \fB\-\-to\-monitor\fR \fIMONITOR_SEL\fR
548 .RS 4
549 Send the selected desktop to the given monitor\&.
550 .RE
551 .PP
552 \fB\-l\fR, \fB\-\-layout\fR \fICYCLE_DIR\fR|monocle|tiled
553 .RS 4
554 Set or cycle the layout of the selected desktop\&.
555 .RE
556 .PP
557 \fB\-n\fR, \fB\-\-rename\fR <new_name>
558 .RS 4
559 Rename the selected desktop\&.
560 .RE
561 .PP
562 \fB\-s\fR, \fB\-\-swap\fR \fIDESKTOP_SEL\fR
563 .RS 4
564 Swap the selected desktop with the given desktop\&.
565 .RE
566 .PP
567 \fB\-r\fR, \fB\-\-remove\fR
568 .RS 4
569 Remove the selected desktop\&.
570 .RE
571 .PP
572 \fB\-c\fR, \fB\-\-cancel\-presel\fR
573 .RS 4
574 Cancel the preselection of all the windows of the selected desktop\&.
575 .RE
576 .PP
577 \fB\-F\fR, \fB\-\-flip\fR \fIhorizontal|vertical\fR
578 .RS 4
579 Flip the tree of the selected desktop\&.
580 .RE
581 .PP
582 \fB\-R\fR, \fB\-\-rotate\fR \fI90|270|180\fR
583 .RS 4
584 Rotate the tree of the selected desktop\&.
585 .RE
586 .PP
587 \fB\-B\fR, \fB\-\-balance\fR
588 .RS 4
589 Adjust the split ratios of the tree of the selected desktop so that all windows occupy the same area\&.
590 .RE
591 .PP
592 \fB\-C\fR, \fB\-\-circulate\fR forward|backward
593 .RS 4
594 Circulate the leaves of the tree of the selected desktop\&.
595 .RE
596 .RE
597 .SS "Monitor"
598 .sp
599 .it 1 an-trap
600 .nr an-no-space-flag 1
601 .nr an-break-flag 1
602 .br
603 .ps +1
604 \fBGeneral Syntax\fR
605 .RS 4
606 .sp
607 monitor [\fIMONITOR_SEL\fR] \fIOPTIONS\fR
608 .RE
609 .sp
610 .it 1 an-trap
611 .nr an-no-space-flag 1
612 .nr an-break-flag 1
613 .br
614 .ps +1
615 \fBOptions\fR
616 .RS 4
617 .PP
618 \fB\-f\fR, \fB\-\-focus\fR [\fIMONITOR_SEL\fR]
619 .RS 4
620 Focus the selected or given monitor\&.
621 .RE
622 .PP
623 \fB\-a\fR, \fB\-\-add\-desktops\fR <name>\&...
624 .RS 4
625 Create desktops with the given names in the selected monitor\&.
626 .RE
627 .PP
628 \fB\-r\fR, \fB\-\-remove\-desktops\fR <name>\&...
629 .RS 4
630 Remove desktops with the given names\&.
631 .RE
632 .PP
633 \fB\-n\fR, \fB\-\-rename\fR <new_name>
634 .RS 4
635 Rename the selected monitor\&.
636 .RE
637 .PP
638 \fB\-d\fR, \fB\-\-reset\-desktops\fR <name>\&...
639 .RS 4
640 Rename, add or remove desktops depending on whether the number of given names is equal, superior or inferior to the number of existing desktops\&.
641 .RE
642 .PP
643 \fB\-s\fR, \fB\-\-swap\fR \fIMONITOR_SEL\fR
644 .RS 4
645 Swap the selected monitor with the given monitor\&.
646 .RE
647 .RE
648 .SS "Tag"
649 .sp
650 .it 1 an-trap
651 .nr an-no-space-flag 1
652 .nr an-break-flag 1
653 .br
654 .ps +1
655 \fBGeneral Syntax\fR
656 .RS 4
657 .sp
658 tag \fIOPTIONS\fR
659 .RE
660 .sp
661 .it 1 an-trap
662 .nr an-no-space-flag 1
663 .nr an-break-flag 1
664 .br
665 .ps +1
666 \fBOptions\fR
667 .RS 4
668 .PP
669 \fB\-l\fR, \fB\-\-list\fR
670 .RS 4
671 List the tags\&.
672 .RE
673 .PP
674 \fB\-a\fR, \fB\-\-add\fR <name>\&...
675 .RS 4
676 Create tags with the given names\&.
677 .RE
678 .PP
679 \fB\-r\fR, \fB\-\-remove\fR <name>|^<n>\&...
680 .RS 4
681 Remove tags with the given names or indexes\&.
682 .RE
683 .PP
684 \fB\-e\fR, \fB\-\-enumerate\-tags\fR <name>\&...
685 .RS 4
686 Rename, add or remove tags depending on whether the number of given names is equal, superior or inferior to the number of existing tags\&.
687 .RE
688 .PP
689 \fB\-d\fR, \fB\-\-desktop\fR \fIDESKTOP_SEL\fR
690 .RS 4
691 Select the given desktop as target for the
692 \fB\-s\fR
693 and
694 \fB\-t\fR
695 options\&.
696 .RE
697 .PP
698 \fB\-w\fR, \fB\-\-window\fR \fIWINDOW_SEL\fR
699 .RS 4
700 Select the given window as target for the
701 \fB\-s\fR
702 and
703 \fB\-t\fR
704 options\&.
705 .RE
706 .PP
707 \fB\-s\fR, \fB\-\-set\-tags\fR (<name>|^<n>\&...)|all
708 .RS 4
709 Set the tags of the selected object\&.
710 .RE
711 .PP
712 \fB\-t\fR, \fB\-\-toggle\-tags\fR (<name>|^<n>)[=on|off]\&...
713 .RS 4
714 Toggle the tags of the selected object\&.
715 .RE
716 .RE
717 .SS "Query"
718 .sp
719 .it 1 an-trap
720 .nr an-no-space-flag 1
721 .nr an-break-flag 1
722 .br
723 .ps +1
724 \fBGeneral Syntax\fR
725 .RS 4
726 .sp
727 query \fIOPTIONS\fR
728 .RE
729 .sp
730 .it 1 an-trap
731 .nr an-no-space-flag 1
732 .nr an-break-flag 1
733 .br
734 .ps +1
735 \fBOptions\fR
736 .RS 4
737 .PP
738 \fB\-W\fR, \fB\-\-windows\fR
739 .RS 4
740 List matching windows\&.
741 .RE
742 .PP
743 \fB\-D\fR, \fB\-\-desktops\fR
744 .RS 4
745 List matching desktops\&.
746 .RE
747 .PP
748 \fB\-M\fR, \fB\-\-monitors\fR
749 .RS 4
750 List matching monitors\&.
751 .RE
752 .PP
753 \fB\-T\fR, \fB\-\-tree\fR
754 .RS 4
755 Print tree rooted at query\&.
756 .RE
757 .PP
758 \fB\-H\fR, \fB\-\-history\fR
759 .RS 4
760 Print the history as it relates to the query\&.
761 .RE
762 .PP
763 \fB\-S\fR, \fB\-\-stack\fR
764 .RS 4
765 Print the window stacking order\&.
766 .RE
767 .PP
768 [\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]]
769 .RS 4
770 Constrain matches to the selected monitor, desktop or window\&.
771 .RE
772 .RE
773 .SS "Restore"
774 .sp
775 .it 1 an-trap
776 .nr an-no-space-flag 1
777 .nr an-break-flag 1
778 .br
779 .ps +1
780 \fBGeneral Syntax\fR
781 .RS 4
782 .sp
783 restore \fIOPTIONS\fR
784 .RE
785 .sp
786 .it 1 an-trap
787 .nr an-no-space-flag 1
788 .nr an-break-flag 1
789 .br
790 .ps +1
791 \fBOptions\fR
792 .RS 4
793 .PP
794 \fB\-T\fR, \fB\-\-tree\fR <file_path>
795 .RS 4
796 Load the desktop trees from the given file\&.
797 .RE
798 .PP
799 \fB\-H\fR, \fB\-\-history\fR <file_path>
800 .RS 4
801 Load the focus history from the given file\&.
802 .RE
803 .PP
804 \fB\-S\fR, \fB\-\-stack\fR <file_path>
805 .RS 4
806 Load the window stacking order from the given file\&.
807 .RE
808 .RE
809 .SS "Control"
810 .sp
811 .it 1 an-trap
812 .nr an-no-space-flag 1
813 .nr an-break-flag 1
814 .br
815 .ps +1
816 \fBGeneral Syntax\fR
817 .RS 4
818 .sp
819 control \fIOPTIONS\fR
820 .RE
821 .sp
822 .it 1 an-trap
823 .nr an-no-space-flag 1
824 .nr an-break-flag 1
825 .br
826 .ps +1
827 \fBOptions\fR
828 .RS 4
829 .PP
830 \fB\-\-adopt\-orphans\fR
831 .RS 4
832 Manage all the unmanaged windows remaining from a previous session\&.
833 .RE
834 .PP
835 \fB\-\-put\-status\fR
836 .RS 4
837 Write the current internal state to the panel FIFO\&.
838 .RE
839 .PP
840 \fB\-\-toggle\-visibility\fR
841 .RS 4
842 Toggle the visibility of all the windows\&.
843 .RE
844 .RE
845 .SS "Pointer"
846 .sp
847 .it 1 an-trap
848 .nr an-no-space-flag 1
849 .nr an-break-flag 1
850 .br
851 .ps +1
852 \fBGeneral Syntax\fR
853 .RS 4
854 .sp
855 pointer \fIOPTIONS\fR
856 .RE
857 .sp
858 .it 1 an-trap
859 .nr an-no-space-flag 1
860 .nr an-break-flag 1
861 .br
862 .ps +1
863 \fBOptions\fR
864 .RS 4
865 .PP
866 \fB\-t\fR, \fB\-\-track\fR <x> <y>
867 .RS 4
868 Pass the pointer root coordinates for the current pointer action\&.
869 .RE
870 .PP
871 \fB\-g\fR, \fB\-\-grab\fR focus|move|resize_side|resize_corner
872 .RS 4
873 Perform the given pointer action\&.
874 .RE
875 .RE
876 .SS "Rule"
877 .sp
878 .it 1 an-trap
879 .nr an-no-space-flag 1
880 .nr an-break-flag 1
881 .br
882 .ps +1
883 \fBGeneral Syntax\fR
884 .RS 4
885 .sp
886 rule \fIOPTIONS\fR
887 .RE
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 \fBOptions\fR
895 .RS 4
896 .PP
897 \fB\-a\fR, \fB\-\-add\fR <class_name>|<instance_name> [\-d \fIDESKTOP_SEL\fR [\-\-follow]] [\-\-tags <name>|^<n>[,\&...]][\-\-floating] [\-\-fullscreen] [\-\-locked] [\-\-sticky] [\-\-focus] [\-\-unmanage] [\-\-one\-shot]
898 .RS 4
899 Create a new rule\&.
900 .RE
901 .PP
902 \fB\-r\fR, \fB\-\-remove\fR <name>|^<n>|tail|head\&...
903 .RS 4
904 Remove the rules with the given names or indexes\&.
905 .RE
906 .PP
907 \fB\-l\fR, \fB\-\-list\fR [<name>]
908 .RS 4
909 List the rules\&.
910 .RE
911 .RE
912 .SS "Config"
913 .sp
914 .it 1 an-trap
915 .nr an-no-space-flag 1
916 .nr an-break-flag 1
917 .br
918 .ps +1
919 \fBGeneral Syntax\fR
920 .RS 4
921 .PP
922 config [\-m \fIMONITOR_SEL\fR|\-d \fIDESKTOP_SEL\fR] <key> [<value>]
923 .RS 4
924 Get or set the value of <key>\&.
925 .RE
926 .RE
927 .SS "Quit"
928 .sp
929 .it 1 an-trap
930 .nr an-no-space-flag 1
931 .nr an-break-flag 1
932 .br
933 .ps +1
934 \fBGeneral Syntax\fR
935 .RS 4
936 .PP
937 quit [<status>]
938 .RS 4
939 Quit with an optional exit status\&.
940 .RE
941 .RE
942 .SH "SETTINGS"
943 .sp
944 Colors are either X color names or \fI#RRGGBB\fR, booleans are \fItrue\fR or \fIfalse\fR\&.
945 .sp
946 All the boolean settings are \fIfalse\fR by default\&.
947 .SS "Global Settings"
948 .PP
949 \fIfocused_border_color\fR
950 .RS 4
951 Color of the border of a focused window of a focused monitor\&.
952 .RE
953 .PP
954 \fIactive_border_color\fR
955 .RS 4
956 Color of the border of a focused window of an unfocused monitor\&.
957 .RE
958 .PP
959 \fInormal_border_color\fR
960 .RS 4
961 Color of the border of an unfocused window\&.
962 .RE
963 .PP
964 \fIpresel_border_color\fR
965 .RS 4
966 Color of the
967 \fBpresel\fR
968 message feedback\&.
969 .RE
970 .PP
971 \fIfocused_locked_border_color\fR
972 .RS 4
973 Color of the border of a focused locked window of a focused monitor\&.
974 .RE
975 .PP
976 \fIactive_locked_border_color\fR
977 .RS 4
978 Color of the border of a focused locked window of an unfocused monitor\&.
979 .RE
980 .PP
981 \fInormal_locked_border_color\fR
982 .RS 4
983 Color of the border of an unfocused locked window\&.
984 .RE
985 .PP
986 \fIfocused_sticky_border_color\fR
987 .RS 4
988 Color of the border of a focused sticky window of a focused monitor\&.
989 .RE
990 .PP
991 \fIactive_sticky_border_color\fR
992 .RS 4
993 Color of the border of a focused sticky window of an unfocused monitor\&.
994 .RE
995 .PP
996 \fInormal_sticky_border_color\fR
997 .RS 4
998 Color of the border of an unfocused sticky window\&.
999 .RE
1000 .PP
1001 \fIurgent_border_color\fR
1002 .RS 4
1003 Color of the border of an urgent window\&.
1004 .RE
1005 .PP
1006 \fIsplit_ratio\fR
1007 .RS 4
1008 Default split ratio\&.
1009 .RE
1010 .PP
1011 \fIgrowth_factor\fR
1012 .RS 4
1013 Intensity of the growth involved in pulling or pushing an edge\&.
1014 .RE
1015 .PP
1016 \fIhistory_aware_focus\fR
1017 .RS 4
1018 Give priority to the focus history when focusing nodes\&.
1019 .RE
1020 .PP
1021 \fIborderless_monocle\fR
1022 .RS 4
1023 Remove borders for tiled windows in monocle mode\&.
1024 .RE
1025 .PP
1026 \fIgapless_monocle\fR
1027 .RS 4
1028 Remove gaps for tiled windows in monocle mode\&.
1029 .RE
1030 .PP
1031 \fIfocus_follows_pointer\fR
1032 .RS 4
1033 Focus the window under the pointer\&.
1034 .RE
1035 .PP
1036 \fIpointer_follows_monitor\fR
1037 .RS 4
1038 When focusing a monitor, put the pointer at its center\&.
1039 .RE
1040 .PP
1041 \fIauto_alternate\fR
1042 .RS 4
1043 Interpret two consecutive identical
1044 \fBuse\fR
1045 messages as an
1046 \fBalternate\fR
1047 message\&.
1048 .RE
1049 .PP
1050 \fIauto_cancel\fR
1051 .RS 4
1052 Interpret two consecutive identical
1053 \fBpresel\fR
1054 messages as a
1055 \fBcancel\fR
1056 message\&.
1057 .RE
1058 .PP
1059 \fIapply_floating_atom\fR
1060 .RS 4
1061 Set the value of the
1062 \fI_BSPWM_FLOATING_WINDOW\fR
1063 atom of each window according to its floating state\&.
1064 .RE
1065 .PP
1066 \fIhonor_ewmh_focus\fR
1067 .RS 4
1068 Honor EWMH requests to focus a window\&.
1069 .RE
1070 .SS "Monitor Settings"
1071 .PP
1072 \fItop_padding\fR, \fIright_padding\fR, \fIbottom_padding\fR, \fIleft_padding\fR
1073 .RS 4
1074 Padding space added at the sides of the monitor\&.
1075 .RE
1076 .SS "Desktop Settings"
1077 .PP
1078 \fIwindow_gap\fR
1079 .RS 4
1080 Size of the gap that separates windows\&.
1081 .RE
1082 .PP
1083 \fIborder_width\fR
1084 .RS 4
1085 Window border width\&.
1086 .RE
1087 .SH "ENVIRONMENT VARIABLES"
1088 .PP
1089 \fIBSPWM_SOCKET\fR
1090 .RS 4
1091 The path of the socket used for the communication between
1092 \fBbspc\fR
1093 and
1094 \fBbspwm\fR\&. If it isn\(cqt defined, then the following path is used:
1095 \fI/tmp/bspwm\-socket\fR\&.
1096 .RE
1097 .SH "PANELS"
1098 .sp
1099 .RS 4
1100 .ie n \{\
1101 \h'-04'\(bu\h'+03'\c
1102 .\}
1103 .el \{\
1104 .sp -1
1105 .IP \(bu 2.3
1106 .\}
1107 Any EWMH compliant panel (e\&.g\&.:
1108 \fItint2\fR,
1109 \fIbmpanel2\fR, etc\&.)\&.
1110 .RE
1111 .sp
1112 .RS 4
1113 .ie n \{\
1114 \h'-04'\(bu\h'+03'\c
1115 .\}
1116 .el \{\
1117 .sp -1
1118 .IP \(bu 2.3
1119 .\}
1120 A custom panel if the
1121 \fI\-s\fR
1122 flag is used (have a look at the files in
1123 \fIexamples/panel\fR)\&.
1124 .RE
1125 .SH "KEY FEATURES"
1126 .sp
1127 .RS 4
1128 .ie n \{\
1129 \h'-04'\(bu\h'+03'\c
1130 .\}
1131 .el \{\
1132 .sp -1
1133 .IP \(bu 2.3
1134 .\}
1135 Configured and controlled through messages\&.
1136 .RE
1137 .sp
1138 .RS 4
1139 .ie n \{\
1140 \h'-04'\(bu\h'+03'\c
1141 .\}
1142 .el \{\
1143 .sp -1
1144 .IP \(bu 2.3
1145 .\}
1146 Multiple monitors support (via
1147 \fIRandR\fR)\&.
1148 .RE
1149 .sp
1150 .RS 4
1151 .ie n \{\
1152 \h'-04'\(bu\h'+03'\c
1153 .\}
1154 .el \{\
1155 .sp -1
1156 .IP \(bu 2.3
1157 .\}
1158 EWMH support (\fBtint2\fR
1159 works)\&.
1160 .RE
1161 .sp
1162 .RS 4
1163 .ie n \{\
1164 \h'-04'\(bu\h'+03'\c
1165 .\}
1166 .el \{\
1167 .sp -1
1168 .IP \(bu 2.3
1169 .\}
1170 Hybrid tiling\&.
1171 .RE
1172 .SH "CONTRIBUTORS"
1173 .sp
1174 .RS 4
1175 .ie n \{\
1176 \h'-04'\(bu\h'+03'\c
1177 .\}
1178 .el \{\
1179 .sp -1
1180 .IP \(bu 2.3
1181 .\}
1182 Steven Allen <steven at stebalien\&.com>
1183 .RE
1184 .sp
1185 .RS 4
1186 .ie n \{\
1187 \h'-04'\(bu\h'+03'\c
1188 .\}
1189 .el \{\
1190 .sp -1
1191 .IP \(bu 2.3
1192 .\}
1193 Thomas Adam <thomas at xteddy\&.org>
1194 .RE
1195 .sp
1196 .RS 4
1197 .ie n \{\
1198 \h'-04'\(bu\h'+03'\c
1199 .\}
1200 .el \{\
1201 .sp -1
1202 .IP \(bu 2.3
1203 .\}
1204 Ivan Kanakarakis <ivan\&.kanak at gmail\&.com>
1205 .RE
1206 .SH "AUTHOR"
1207 .sp
1208 Bastien Dejean <nihilhill at gmail\&.com>
1209 .SH "MAILING LIST"
1210 .sp
1211 bspwm at librelist\&.com