]> git.lizzy.rs Git - bspwm.git/blob - doc/bspwm.1
New option for `cancel`: --all
[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: 06/27/2013
6 .\"    Manual: Bspwm Manual
7 .\"    Source: Bspwm 0.7
8 .\"  Language: English
9 .\"
10 .TH "BSPWM" "1" "06/27/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 \fIMESSAGE\fR [\fIARGUMENTS\fR] [\fIOPTIONS\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 "CONFIGURATION"
43 .sp
44 \fBbspwm\fR have only two sources of informations: the X events it receives and the messages it reads on a dedicated socket\&.
45 .sp
46 Its configuration file is \fI$XDG_CONFIG_HOME/bspwm/autostart\fR\&.
47 .sp
48 Keyboard and pointer bindings are defined with sxhkd\&.
49 .sp
50 Example configuration files can be found in the \fBexamples\fR directory\&.
51 .SH "SPLITTING MODES"
52 .sp
53 There is only two splitting modes: \fIautomatic\fR and \fImanual\fR\&.
54 .sp
55 The default mode is \fIautomatic\fR\&. The \fImanual\fR mode is entered by sending a \fBpresel\fR message\&.
56 .sp
57 Example: insertion of a new node (number 4) into the given tree in \fIautomatic\fR mode:
58 .sp
59 .if n \{\
60 .RS 4
61 .\}
62 .nf
63               b                                   c
64              / \e                                 / \e
65             3   a              \-\->              4   b
66             ^  / \e                              ^  / \e
67               2   1                               3   a
68                                                      / \e
69                                                     2   1
70  +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
71  |            |            |         |            |            |
72  |            |     2      |         |            |     3      |
73  |            |            |         |            |            |
74  |     3      |\-\-\-\-\-\-\-\-\-\-\-\-|   \-\->   |     4      |\-\-\-\-\-\-\-\-\-\-\-\-|
75  |     ^      |            |         |     ^      |     |      |
76  |            |     1      |         |            |  1  |  2   |
77  |            |            |         |            |     |      |
78  +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
79 .fi
80 .if n \{\
81 .RE
82 .\}
83 .sp
84 Same departure, but the mode is \fImanual\fR, and a \fBpresel\fR \fIup\fR message was sent beforehand:
85 .sp
86 .if n \{\
87 .RS 4
88 .\}
89 .nf
90              b                                   b
91             / \e                                 / \e
92            3   a              \-\->              c   a
93            ^  / \e                             / \e / \e
94              2   1                           4  3 2  1
95                                              ^
96 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
97 |            |            |         |            |            |
98 |            |     2      |         |     4      |     2      |
99 |            |            |         |     ^      |            |
100 |     3      |\-\-\-\-\-\-\-\-\-\-\-\-|   \-\->   |\-\-\-\-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\-\-\-\-\-|
101 |     ^      |            |         |            |            |
102 |            |     1      |         |     3      |     1      |
103 |            |            |         |            |            |
104 +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
105 .fi
106 .if n \{\
107 .RE
108 .\}
109 .SH "CONTAINERS"
110 .sp
111 Each monitor contains at least one desktop\&.
112 .sp
113 Each desktop contains at most one tree\&.
114 .SH "MESSAGES"
115 .PP
116 \fBget\fR \fISETTING\fR
117 .RS 4
118 Return the value of the given setting\&.
119 .RE
120 .PP
121 \fBset\fR \fISETTING\fR \fIVALUE\fR
122 .RS 4
123 Set the value of the given setting\&.
124 .RE
125 .PP
126 \fBlist\fR [\fIDESKTOP_NAME\fR]
127 .RS 4
128 Output the internal representation of the window tree\&.
129 .RE
130 .PP
131 \fBlist_desktops\fR [\fB\-\-quiet\fR]
132 .RS 4
133 Perform a dump of each desktop for the current monitor\&.
134 .RE
135 .PP
136 \fBlist_monitors\fR [\fB\-\-quiet\fR]
137 .RS 4
138 Perform a dump of each monitor\&.
139 .RE
140 .PP
141 \fBlist_history\fR
142 .RS 4
143 Return the node focus history of each desktop\&.
144 .RE
145 .PP
146 \fBlist_windows\fR
147 .RS 4
148 Return the list of managed windows (i\&.e\&. their identifiers)\&.
149 .RE
150 .PP
151 \fBlist_rules\fR
152 .RS 4
153 Return the list of rules\&.
154 .RE
155 .PP
156 \fBpresel\fR \fIleft\fR|\fIright\fR|\fIup\fR|\fIdown\fR [\fISPLIT_RATIO\fR]
157 .RS 4
158 Switch to manual mode and select the splitting direction\&.
159 .RE
160 .PP
161 \fBcancel\fR [\fB\-\-all\fR]
162 .RS 4
163 Switch to automatic mode\&.
164 .RE
165 .PP
166 \fBratio\fR \fIVALUE\fR
167 .RS 4
168 Set the splitting ratio of the focused window\&.
169 .RE
170 .PP
171 \fBpad\fR \fIMONITOR_NAME\fR [\fITOP_PADDING\fR [\fIRIGHT_PADDING\fR [\fIBOTTOM_PADDING\fR [\fILEFT_PADDING\fR]]]]
172 .RS 4
173 Set the padding of the given monitor\&.
174 .RE
175 .PP
176 \fBfocus\fR \fIleft\fR|\fIright\fR|\fIup\fR|\fIdown\fR
177 .RS 4
178 Focus the neighbor window situated in the given direction\&.
179 .RE
180 .PP
181 \fBshift\fR \fIleft\fR|\fIright\fR|\fIup\fR|\fIdown\fR
182 .RS 4
183 Exchange the current window with the given neighbor\&.
184 .RE
185 .PP
186 \fBswap\fR [\fB\-\-keep\-focus\fR]
187 .RS 4
188 Swap the focused window with the last focused window\&.
189 .RE
190 .PP
191 \fBpush\fR \fIleft\fR|\fIright\fR|\fIup\fR|\fIdown\fR
192 .RS 4
193 Push the fence located in the given direction\&.
194 .RE
195 .PP
196 \fBpull\fR \fIleft\fR|\fIright\fR|\fIup\fR|\fIdown\fR
197 .RS 4
198 Pull the fence located in the given direction\&.
199 .RE
200 .PP
201 \fBfence_ratio\fR \fIleft\fR|\fIright\fR|\fIup\fR|\fIdown\fR
202 .RS 4
203 Set the splitting ratio of the fence located in the given direction\&.
204 .RE
205 .PP
206 \fBcycle\fR \fInext\fR|\fIprev\fR [\fB\-\-skip\-floating\fR|\fB\-\-skip\-tiled\fR|\fB\-\-skip\-class\-equal\fR|\fB\-\-skip\-class\-differ\fR]
207 .RS 4
208 Focus the next or previous window matching the given constraints\&.
209 .RE
210 .PP
211 \fBnearest\fR \fIolder\fR|\fInewer\fR [\fB\-\-skip\-floating\fR|\fB\-\-skip\-tiled\fR|\fB\-\-skip\-class\-equal\fR|\fB\-\-skip\-class\-differ\fR]
212 .RS 4
213 Focus the nearest window matching the given constraints\&.
214 .RE
215 .PP
216 \fBbiggest\fR
217 .RS 4
218 Return the ID of the biggest tiled window\&.
219 .RE
220 .PP
221 \fBcirculate\fR \fIforward\fR|\fIbackward\fR
222 .RS 4
223 Circulate the leaves in the given direction\&.
224 .RE
225 .PP
226 \fBgrab_pointer\fR \fIfocus\fR|\fImove\fR|\fIresize_side\fR|\fIresize_corner\fR
227 .RS 4
228 Begin the specified pointer action\&.
229 .RE
230 .PP
231 \fBtrack_pointer\fR \fIROOT_X\fR \fIROOT_Y\fR
232 .RS 4
233 Pass the pointer root coordinates for the current pointer action\&.
234 .RE
235 .PP
236 \fBungrab_pointer\fR
237 .RS 4
238 End the current pointer action\&.
239 .RE
240 .PP
241 \fBtoggle_fullscreen\fR
242 .RS 4
243 Toggle the fullscreen state of the current window\&.
244 .RE
245 .PP
246 \fBtoggle_floating\fR
247 .RS 4
248 Toggle the floating state of the current window\&.
249 .RE
250 .PP
251 \fBtoggle_locked\fR
252 .RS 4
253 Toggle the locked state of the current window (locked windows will not respond to the
254 \fBclose\fR
255 message)\&.
256 .RE
257 .PP
258 \fBtoggle_visibility\fR
259 .RS 4
260 Toggle the visibility of all the managed windows\&.
261 .RE
262 .PP
263 \fBclose\fR
264 .RS 4
265 Close the focused window\&.
266 .RE
267 .PP
268 \fBkill\fR
269 .RS 4
270 Kill the focused window\&.
271 .RE
272 .PP
273 \fBsend_to\fR \fIDESKTOP_NAME\fR [\fB\-\-follow\fR]
274 .RS 4
275 Send the focused window to the given desktop\&.
276 .RE
277 .PP
278 \fBdrop_to\fR \fInext\fR|\fIprev\fR [\fB\-\-follow\fR]
279 .RS 4
280 Send the focused window to the next or previous desktop\&.
281 .RE
282 .PP
283 \fBsend_to_monitor\fR \fIMONITOR_NAME\fR [\fB\-\-follow\fR]
284 .RS 4
285 Send the focused window to the given monitor\&.
286 .RE
287 .PP
288 \fBdrop_to_monitor\fR \fInext\fR|\fIprev\fR [\fB\-\-follow\fR]
289 .RS 4
290 Send the focused window to the next or previous monitor\&.
291 .RE
292 .PP
293 \fBuse\fR \fIDESKTOP_NAME\fR
294 .RS 4
295 Select the given desktop\&.
296 .RE
297 .PP
298 \fBuse_monitor\fR \fIMONITOR_NAME\fR
299 .RS 4
300 Select the given monitor\&.
301 .RE
302 .PP
303 \fBalternate\fR
304 .RS 4
305 Alternate between the current and the last focused window\&.
306 .RE
307 .PP
308 \fBalternate_desktop\fR
309 .RS 4
310 Alternate between the current and the last focused desktop\&.
311 .RE
312 .PP
313 \fBalternate_monitor\fR
314 .RS 4
315 Alternate between the current and the last focused monitor\&.
316 .RE
317 .PP
318 \fBadd\fR \fIDESKTOP_NAME\fR \&...
319 .RS 4
320 Make new desktops with the given names\&.
321 .RE
322 .PP
323 \fBadd_in\fR \fIMONITOR_NAME\fR \fIDESKTOP_NAME\fR \&...
324 .RS 4
325 Make new desktops with the given names in the given monitor\&.
326 .RE
327 .PP
328 \fBrename_monitor\fR \fICURRENT_NAME\fR \fINEW_NAME\fR
329 .RS 4
330 Rename the monitor named
331 \fICURRENT_NAME\fR
332 to
333 \fINEW_NAME\fR\&.
334 .RE
335 .PP
336 \fBrename\fR \fICURRENT_NAME\fR \fINEW_NAME\fR
337 .RS 4
338 Rename the desktop named
339 \fICURRENT_NAME\fR
340 to
341 \fINEW_NAME\fR\&.
342 .RE
343 .PP
344 \fBremove_desktop\fR \fIDESKTOP_NAME\fR \&...
345 .RS 4
346 Remove the given desktops\&.
347 .RE
348 .PP
349 \fBsend_desktop_to\fR \fIMONITOR_NAME\fR [\fB\-\-follow\fR]
350 .RS 4
351 Send the current desktop to the given monitor\&.
352 .RE
353 .PP
354 \fBcycle_monitor\fR \fInext\fR|\fIprev\fR
355 .RS 4
356 Select the next or previous monitor\&.
357 .RE
358 .PP
359 \fBcycle_desktop\fR \fInext\fR|\fIprev\fR [\fB\-\-skip\-free\fR|\fB\-\-skip\-occupied\fR]
360 .RS 4
361 Select the next or previous desktop\&.
362 .RE
363 .PP
364 \fBlayout\fR \fImonocle\fR|\fItiled\fR [\fIDESKTOP_NAME\fR \&...]
365 .RS 4
366 Set the layout of the given desktops (current if none given)\&.
367 .RE
368 .PP
369 \fBcycle_layout\fR
370 .RS 4
371 Cycle the layout of the current desktop\&.
372 .RE
373 .PP
374 \fBrotate\fR \fIclockwise\fR|\fIcounter_clockwise\fR|\fIfull_cycle\fR
375 .RS 4
376 Rotate the window tree\&.
377 .RE
378 .PP
379 \fBflip\fR \fIhorizontal\fR|\fIvertical\fR
380 .RS 4
381 Flip the window tree\&.
382 .RE
383 .PP
384 \fBbalance\fR
385 .RS 4
386 Adjust the split ratios so that all windows occupy the same area\&.
387 .RE
388 .PP
389 \fBrule\fR \fIPATTERN\fR [\fIDESKTOP_NAME\fR] [\fIfloating\fR] [\fIfollow\fR]
390 .RS 4
391 Create a new rule (\fIPATTERN\fR
392 must match the class or instance name)\&.
393 .RE
394 .PP
395 \fBremove_rule\fR \fIUID\fR \&...
396 .RS 4
397 Remove the rules with the given
398 \fIUIDs\fR\&.
399 .RE
400 .PP
401 \fBput_status\fR
402 .RS 4
403 Output the current state to the panel fifo\&.
404 .RE
405 .PP
406 \fBadopt_orphans\fR
407 .RS 4
408 Manage all the unmanaged windows remaining from a previous session\&.
409 .RE
410 .PP
411 \fBrestore_layout\fR \fIFILE_PATH\fR
412 .RS 4
413 Restore the layout of each desktop from the content of
414 \fIFILE_PATH\fR\&.
415 .RE
416 .PP
417 \fBrestore_history\fR \fIFILE_PATH\fR
418 .RS 4
419 Restore the history of each desktop from the content of
420 \fIFILE_PATH\fR\&.
421 .RE
422 .PP
423 \fBquit\fR [\fIEXIT_STATUS\fR]
424 .RS 4
425 Quit\&.
426 .RE
427 .SH "SETTINGS"
428 .sp
429 Colors are either X color names or \fI#RRGGBB\fR, booleans are \fItrue\fR or \fIfalse\fR\&.
430 .sp
431 All the boolean settings are \fIfalse\fR by default\&.
432 .PP
433 \fIfocused_border_color\fR
434 .RS 4
435 Color of the border of a focused window of a focused monitor\&.
436 .RE
437 .PP
438 \fIactive_border_color\fR
439 .RS 4
440 Color of the border of a focused window of an unfocused monitor\&.
441 .RE
442 .PP
443 \fInormal_border_color\fR
444 .RS 4
445 Color of the border of an unfocused window\&.
446 .RE
447 .PP
448 \fIpresel_border_color\fR
449 .RS 4
450 Color of the
451 \fBpresel\fR
452 message feedback\&.
453 .RE
454 .PP
455 \fIfocused_locked_border_color\fR
456 .RS 4
457 Color of the border of a focused locked window of a focused monitor\&.
458 .RE
459 .PP
460 \fIactive_locked_border_color\fR
461 .RS 4
462 Color of the border of a focused locked window of an unfocused monitor\&.
463 .RE
464 .PP
465 \fInormal_locked_border_color\fR
466 .RS 4
467 Color of the border of an unfocused locked window\&.
468 .RE
469 .PP
470 \fIurgent_border_color\fR
471 .RS 4
472 Color of the border of an urgent window\&.
473 .RE
474 .PP
475 \fIborder_width\fR
476 .RS 4
477 Window border width\&.
478 .RE
479 .PP
480 \fIwindow_gap\fR
481 .RS 4
482 Value of the gap that separates windows\&.
483 .RE
484 .PP
485 \fIsplit_ratio\fR
486 .RS 4
487 Default split ratio\&.
488 .RE
489 .PP
490 \fItop_padding\fR, \fIright_padding\fR, \fIbottom_padding\fR, \fIleft_padding\fR
491 .RS 4
492 Padding space added at the sides of the current monitor\&.
493 .RE
494 .PP
495 \fIwm_name\fR
496 .RS 4
497 The value that shall be used for the
498 \fI_NET_WM_NAME\fR
499 property of the root window\&.
500 .RE
501 .PP
502 \fIborderless_monocle\fR
503 .RS 4
504 Remove borders for tiled windows in monocle mode\&.
505 .RE
506 .PP
507 \fIgapless_monocle\fR
508 .RS 4
509 Remove gaps for tiled windows in monocle mode\&.
510 .RE
511 .PP
512 \fIfocus_follows_pointer\fR
513 .RS 4
514 Focus the window under the pointer\&.
515 .RE
516 .PP
517 \fIpointer_follows_monitor\fR
518 .RS 4
519 When focusing a monitor, put the pointer at its center\&.
520 .RE
521 .PP
522 \fIadaptative_raise\fR
523 .RS 4
524 Prevent floating windows from being raised when they might cover other floating windows\&.
525 .RE
526 .PP
527 \fIapply_shadow_property\fR
528 .RS 4
529 Enable shadows for floating windows via the
530 \fI_COMPTON_SHADOW\fR
531 property\&.
532 .RE
533 .PP
534 \fIauto_alternate\fR
535 .RS 4
536 Interpret two consecutive identical
537 \fBuse\fR
538 messages as an
539 \fBalternate\fR
540 message\&.
541 .RE
542 .PP
543 \fIfocus_by_distance\fR
544 .RS 4
545 Use window or leaf distance for focus movement\&.
546 .RE
547 .PP
548 \fIhistory_aware_focus\fR
549 .RS 4
550 Give priority to the focus history when focusing nodes\&.
551 .RE
552 .SH "ENVIRONMENT VARIABLES"
553 .PP
554 \fIBSPWM_SOCKET\fR
555 .RS 4
556 The path of the socket used for the communication between
557 \fBbspc\fR
558 and
559 \fBbspwm\fR\&.
560 .RE
561 .SH "PANELS"
562 .sp
563 .RS 4
564 .ie n \{\
565 \h'-04'\(bu\h'+03'\c
566 .\}
567 .el \{\
568 .sp -1
569 .IP \(bu 2.3
570 .\}
571 Any EWMH compliant panel (e\&.g\&.:
572 \fItint2\fR,
573 \fIbmpanel2\fR, etc\&.)\&.
574 .RE
575 .sp
576 .RS 4
577 .ie n \{\
578 \h'-04'\(bu\h'+03'\c
579 .\}
580 .el \{\
581 .sp -1
582 .IP \(bu 2.3
583 .\}
584 A custom panel if the
585 \fI\-s\fR
586 flag is used (have a look at the files in
587 \fIexamples/panel\fR)\&.
588 .RE
589 .SH "KEY FEATURES"
590 .sp
591 .RS 4
592 .ie n \{\
593 \h'-04'\(bu\h'+03'\c
594 .\}
595 .el \{\
596 .sp -1
597 .IP \(bu 2.3
598 .\}
599 Configured and controlled through messages\&.
600 .RE
601 .sp
602 .RS 4
603 .ie n \{\
604 \h'-04'\(bu\h'+03'\c
605 .\}
606 .el \{\
607 .sp -1
608 .IP \(bu 2.3
609 .\}
610 Multiple monitors support (via
611 \fIRandR\fR)\&.
612 .RE
613 .sp
614 .RS 4
615 .ie n \{\
616 \h'-04'\(bu\h'+03'\c
617 .\}
618 .el \{\
619 .sp -1
620 .IP \(bu 2.3
621 .\}
622 EWMH support (\fBtint2\fR
623 works)\&.
624 .RE
625 .sp
626 .RS 4
627 .ie n \{\
628 \h'-04'\(bu\h'+03'\c
629 .\}
630 .el \{\
631 .sp -1
632 .IP \(bu 2.3
633 .\}
634 Automatic and manual modes\&.
635 .RE
636 .SH "CONTRIBUTORS"
637 .sp
638 .RS 4
639 .ie n \{\
640 \h'-04'\(bu\h'+03'\c
641 .\}
642 .el \{\
643 .sp -1
644 .IP \(bu 2.3
645 .\}
646 Ivan Kanakarakis <ivan\&.kanak at gmail\&.com>
647 .RE
648 .sp
649 .RS 4
650 .ie n \{\
651 \h'-04'\(bu\h'+03'\c
652 .\}
653 .el \{\
654 .sp -1
655 .IP \(bu 2.3
656 .\}
657 Thomas Adam <thomas at xteddy\&.org>
658 .RE
659 .SH "AUTHOR"
660 .sp
661 Bastien Dejean <baskerville at lavabit\&.com>
662 .SH "MAILING LIST"
663 .sp
664 bspwm at librelist\&.com