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