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