]> git.lizzy.rs Git - bspwm.git/blob - doc/bspwm.1.asciidoc
Mention pointer_action<n> where it makes sense
[bspwm.git] / doc / bspwm.1.asciidoc
1 :man source:   Bspwm
2 :man version:  {revnumber}
3 :man manual:   Bspwm Manual
4
5 bspwm(1)
6 ========
7
8 Name
9 ----
10
11 bspwm - Binary space partitioning window manager
12
13 Synopsis
14 --------
15
16 *bspwm* [*-h*|*-v*|*-c* 'CONFIG_PATH']
17
18 *bspc* 'DOMAIN' ['SELECTOR'] 'COMMANDS'
19
20 *bspc* 'COMMAND' ['OPTIONS'] ['ARGUMENTS']
21
22 Description
23 -----------
24
25 *bspwm* is a tiling window manager that represents windows as the leaves of a full binary tree.
26
27 It is controlled and configured via *bspc*.
28
29
30 Options
31 -------
32
33 *-h*::
34         Print the synopsis and exit.
35
36 *-v*::
37         Print the version and exit.
38
39 *-c* 'CONFIG_PATH'::
40         Use the given configuration file.
41
42 Common Definitions
43 ------------------
44
45 ----
46 DIR         := north | west | south | east
47 CYCLE_DIR   := next | prev
48 ----
49
50 Selectors
51 ---------
52
53 Selectors are used to select a target node, desktop, or monitor. A selector
54 can either describe the target relatively or name it globally.
55
56 Selectors consist of a descriptor and any number of non-conflicting modifiers
57 as follows:
58
59         DESCRIPTOR(.MODIFIER)*
60
61 An exclamation mark can be prepended to certain modifiers in order to reverse their meaning.
62
63 Node
64 ~~~~
65
66 Select a node.
67
68 ----
69 NODE_SEL := (DIR|CYCLE_DIR|PATH|last|older|newer|focused|biggest|<node_id>)[.[!]focused][.[!]automatic][.[!]local][.[!]leaf][.[!]window][.[!]STATE][.[!]FLAG][.[!]LAYER][.[!]same_class]
70
71 STATE := tiled|pseudo_tiled|floating|fullscreen
72
73 FLAG := urgent|sticky|private|locked
74
75 LAYER := below|normal|above
76
77 PATH := @[DESKTOP_SEL:][[/]JUMP](/JUMP)*
78
79 JUMP := first|1|second|2|brother|parent|DIR
80 ----
81
82 Descriptors
83 ^^^^^^^^^^^
84
85 'DIR'::
86         Selects the window in the given (spacial) direction relative to the active node.
87
88 'CYCLE_DIR'::
89         Selects the window in the given (cyclic) direction.
90
91 'PATH'::
92         Selects the node at the given path.
93
94 last::
95         Selects the previously focused node.
96
97 older::
98         Selects the node older than the focused node in the history.
99
100 newer::
101         Selects the node newer than the focused node in the history.
102
103 focused::
104         Selects the currently focused node.
105
106 biggest::
107         Selects the biggest window on the current desktop.
108
109 <node_id>::
110         Selects the node with the given ID.
111
112 Path Jumps
113 ^^^^^^^^^^
114
115 The initial node is the focused node (or the root if the path starts with '/') of the focused desktop (or the selected desktop if the path has a 'DESKTOP_SEL' prefix).
116
117 1|first::
118         Jumps to the first child.
119
120 2|second::
121         Jumps to the second child.
122
123 brother::
124         Jumps to the brother node.
125
126 parent::
127         Jumps to the parent node.
128
129 'DIR'::
130         Jumps to the node holding the edge in the given direction.
131
132 Modifiers
133 ^^^^^^^^^
134
135 [!]focused::
136         Only consider focused or unfocused nodes.
137
138 [!]automatic::
139         Only consider nodes in automatic or manual insertion mode.
140
141 [!]local::
142         Only consider nodes in or not in the current desktop.
143
144 [!]leaf::
145         Only consider leaves or internal nodes.
146
147 [!]window::
148         Only consider nodes that hold or don't hold a window.
149
150 [!](tiled|pseudo_tiled|floating|fullscreen)::
151         Only consider windows in or not in the given state.
152
153 [!]same_class::
154         Only consider windows that have or don't have the same class as the current window.
155
156 [!](private|urgent|sticky|locked)::
157         Only consider windows that have or don't have the given flag set.
158
159 [!](below|normal|above)::
160         Only consider windows in or not in the given layer.
161
162 Desktop
163 ~~~~~~~
164
165 Select a desktop.
166
167 ----
168 DESKTOP_SEL := (CYCLE_DIR|last|older|newer|[MONITOR_SEL:](focused|^<n>)|<desktop_id>|<desktop_name>)[.[!]occupied][.[!]focused][.[!]urgent][.[!]local]
169 ----
170
171 Descriptors
172 ^^^^^^^^^^^
173
174 'CYCLE_DIR'::
175         Selects the desktop in the given direction relative to the active desktop.
176
177 last::
178         Selects the previously focused desktop.
179
180 older::
181         Selects the desktop older than the focused desktop in the history.
182
183 newer::
184         Selects the desktop newer than the focused desktop in the history.
185
186 focused::
187         Selects the currently focused desktop.
188
189 ^<n>::
190         Selects the nth desktop.
191
192 <desktop_id>::
193         Selects the desktop with the given ID.
194
195 <desktop_name>::
196         Selects the desktop with the given name.
197
198 Modifiers
199 ^^^^^^^^^
200
201 [!]occupied::
202         Only consider occupied or free desktops.
203
204 [!]focused::
205         Only consider focused or unfocused desktops.
206
207 [!]urgent::
208         Only consider urgent or non urgent desktops.
209
210 [!]local::
211         Only consider inside or outside of the current monitor.
212
213 Monitor
214 ~~~~~~~
215
216 Select a monitor.
217
218 ----
219 MONITOR_SEL := (DIR|CYCLE_DIR|last|older|newer|focused|primary|^<n>|<monitor_id>|<monitor_name>)[.[!]occupied][.[!]focused]
220 ----
221
222 Descriptors
223 ^^^^^^^^^^^
224
225 'DIR'::
226         Selects the monitor in the given (spacial) direction relative to the active monitor.
227
228 'CYCLE_DIR'::
229         Selects the monitor in the given (cyclic) direction relative to the active monitor.
230
231 last::
232         Selects the previously focused monitor.
233
234 older::
235         Selects the monitor older than the focused monitor in the history.
236
237 newer::
238         Selects the monitor newer than the focused monitor in the history.
239
240 focused::
241         Selects the currently focused monitor.
242
243 primary::
244         Selects the primary monitor.
245
246 ^<n>::
247         Selects the nth monitor.
248
249 <monitor_id>::
250         Selects the monitor with the given ID.
251
252 <monitor_name>::
253         Selects the monitor with the given name.
254
255
256 Modifiers
257 ^^^^^^^^^
258
259 [!]occupied::
260         Only consider monitors where the focused desktop is occupied or free.
261
262 [!]focused::
263         Only consider focused or unfocused monitors.
264
265
266 Window States
267 -------------
268
269 tiled::
270         Its size and position are determined by the splitting type and ratio of each node of its path in the window tree.
271
272 pseudo_tiled::
273         Has an unrestricted size while being centered in its tiling space.
274
275 floating::
276         Can be moved/resized freely. Although it doesn't occupy any tiling space, it is still part of the window tree.
277
278 fullscreen::
279         Fills its monitor rectangle and has no borders. It is send in the ABOVE layer by default.
280
281
282 Node Flags
283 ----------
284
285 locked::
286         Ignores the *node --close* message.
287
288 sticky::
289         Stays in the focused desktop of its monitor.
290
291 private::
292         Tries to keep the same tiling position/size.
293
294 urgent::
295         Has its urgency hint set. This flag is set externally.
296
297
298 Stacking Layers
299 --------------
300
301 There's three stacking layers: BELOW, NORMAL and ABOVE.
302
303 In each layer, the window are orderered as follow: tiled & pseudo-tiled < fullscreen < floating.
304
305
306 Domains
307 -------
308
309 Node
310 ~~~~
311
312 General Syntax
313 ^^^^^^^^^^^^^^
314
315 node ['NODE_SEL'] 'COMMANDS'
316
317 Commands
318 ^^^^^^^^
319 *-f*, *--focus* ['NODE_SEL']::
320         Focus the selected or given node.
321
322 *-a*, *--activate* ['NODE_SEL']::
323         Activate the selected or given node.
324
325 *-d*, *--to-desktop* 'DESKTOP_SEL'::
326         Send the selected node to the given desktop.
327
328 *-m*, *--to-monitor* 'MONITOR_SEL'::
329         Send the selected node to the given monitor.
330
331 *-n*, *--to-node* 'NODE_SEL'::
332         Transplant the selected node to the given node.
333
334 *-s*, *--swap* 'NODE_SEL'::
335         Swap the selected node with the given node.
336
337 *-p*, *--presel-dir* \[~]'DIR'|cancel::
338         Preselect the splitting area of the selected node (or cancel the preselection). If *~* is prepended to 'DIR' and the current preselection direction matches 'DIR', then the argument is interpreted as *cancel*.
339
340 *-o*, *--presel-ratio* 'RATIO'::
341         Set the splitting ratio of the preselection area.
342
343 *-v*, *--move* 'dx' 'dy'::
344         Move the selected window by 'dx' pixels horizontally and 'dy' pixels vertically.
345
346 *-z*, *--resize* top|left|bottom|right|top_left|top_right|bottom_right|bottom_left 'dx' 'dy'::
347         Resize the selected window by moving the given handle by 'dx' pixels horizontally and 'dy' pixels vertically.
348
349 *-r*, *--ratio* 'RATIO'|(+|-)'PIXELS'::
350         Set the splitting ratio of the selected node (0 < 'RATIO' < 1).
351
352 *-R*, *--rotate* '90|270|180'::
353         Rotate the tree rooted at the selected node.
354
355 *-F*, *--flip* 'horizontal|vertical'::
356         Flip the the tree rooted at selected node.
357
358 *-E*, *--equalize*::
359         Reset the split ratios of the tree rooted at the selected node to their default value.
360
361 *-B*, *--balance*::
362         Adjust the split ratios of the tree rooted at the selected node so that all windows occupy the same area.
363
364 *-C*, *--circulate* forward|backward::
365         Circulate the windows of the tree rooted at the selected node.
366
367 *-t*, *--state* [~](tiled|pseudo_tiled|floating|fullscreen)::
368         Set the state of the selected window. If *~* is present and the current state matches the given state, then the argument is interpreted as the last state.
369
370 *-g*, *--flag* locked|sticky|private[=on|off]::
371         Set or toggle the given flag for the selected node.
372
373 *-l*, *--layer* below|normal|above::
374         Set the stacking layer of the selected window.
375
376 *-i*, *--insert-receptacle*::
377         Insert a receptacle node at the selected node.
378
379 *-c*, *--close*::
380         Close the windows rooted at the selected node.
381
382 *-k*, *--kill*::
383         Kill the windows rooted at the selected node.
384
385 Desktop
386 ~~~~~~~
387
388 General Syntax
389 ^^^^^^^^^^^^^^
390
391 desktop ['DESKTOP_SEL'] 'COMMANDS'
392
393 COMMANDS
394 ^^^^^^^^
395 *-f*, *--focus* ['DESKTOP_SEL']::
396         Focus the selected or given desktop.
397
398 *-a*, *--activate* ['DESKTOP_SEL']::
399         Activate the selected or given desktop.
400
401 *-m*, *--to-monitor* 'MONITOR_SEL'::
402         Send the selected desktop to the given monitor.
403
404 *-l*, *--layout* 'CYCLE_DIR'|monocle|tiled::
405         Set or cycle the layout of the selected desktop.
406
407 *-n*, *--rename* <new_name>::
408         Rename the selected desktop.
409
410 *-s*, *--swap* 'DESKTOP_SEL'::
411         Swap the selected desktop with the given desktop.
412
413 *-b*, *--bubble* 'CYCLE_DIR'::
414         Bubble the selected desktop in the given direction.
415
416 *-r*, *--remove*::
417         Remove the selected desktop.
418
419 Monitor
420 ~~~~~~~
421
422 General Syntax
423 ^^^^^^^^^^^^^^
424
425 monitor ['MONITOR_SEL'] 'COMMANDS'
426
427 Commands
428 ^^^^^^^^
429 *-f*, *--focus* ['MONITOR_SEL']::
430         Focus the selected or given monitor.
431
432 *-a*, *--add-desktops* <name>...::
433         Create desktops with the given names in the selected monitor.
434
435 *-o*, *--reorder-desktops* <name>...::
436         Reorder the desktops of the selected monitor to match the given order.
437
438 *-d*, *--reset-desktops* <name>...::
439         Rename, add or remove desktops depending on whether the number of given names is equal, superior or inferior to the number of existing desktops.
440
441 *-g*, *--rectangle* WxH+X+Y::
442         Set the rectangle of the selected monitor.
443
444 *-n*, *--rename* <new_name>::
445         Rename the selected monitor.
446
447 *-s*, *--swap* 'MONITOR_SEL'::
448         Swap the selected monitor with the given monitor.
449
450 *-r*, *--remove*::
451         Remove the selected monitor.
452
453 Query
454 ~~~~~
455
456 General Syntax
457 ^^^^^^^^^^^^^^
458
459 query 'COMMANDS' ['OPTIONS']
460
461 Commands
462 ^^^^^^^^
463
464 *-N*, *--nodes*::
465         List the IDs of the matching nodes.
466
467 *-D*, *--desktops*::
468         List the IDs of the matching desktops.
469
470 *-M*, *--monitors*::
471         List the IDs of the matching monitors.
472
473 *-T*, *--tree*::
474         Print a JSON representation of the matching item.
475
476 Options
477 ^^^^^^^
478
479 [*-m*,*--monitor* ['MONITOR_SEL']] | [*-d*,*--desktop* ['DESKTOP_SEL']] | [*-n*, *--node* ['NODE_SEL']]::
480         Constrain matches to the selected monitor, desktop or node. The descriptor can be omitted for '-M', '-D' and '-N'.
481
482 Wm
483 ~~
484
485 General Syntax
486 ^^^^^^^^^^^^^^
487
488 wm 'COMMANDS'
489
490 Commands
491 ^^^^^^^^
492
493 *-d*, *--dump-state*::
494         Dump the current world state on standard output.
495
496 *-l*, *--load-state* <file_path>::
497         Load a world state from the given file.
498
499 *-a*, *--add-monitor* <name> WxH+X+Y::
500         Add a monitor for the given name and rectangle.
501
502 *-o*, *--adopt-orphans*::
503         Manage all the unmanaged windows remaining from a previous session.
504
505 *-h*, *--record-history* on|off::
506         Enable or disable the recording of node focus history.
507
508 *-g*, *--get-status*::
509         Print the current status information.
510
511 Rule
512 ~~~~
513
514 General Syntax
515 ^^^^^^^^^^^^^^
516
517 rule 'COMMANDS'
518
519 Commands
520 ^^^^^^^^
521
522 *-a*, *--add* (<class_name>|\*)[:(<instance_name>|\*)] [*-o*|*--one-shot*] [monitor=MONITOR_SEL|desktop=DESKTOP_SEL|node=NODE_SEL] [state=STATE] [layer=LAYER] [split_dir=DIR] [split_ratio=RATIO] [(locked|sticky|private|center|follow|manage|focus|border)=(on|off)]::
523         Create a new rule.
524
525 *-r*, *--remove* ^<n>|head|tail|(<class_name>|\*)[:(<instance_name>|*)]...::
526         Remove the given rules.
527
528 *-l*, *--list*::
529         List the rules.
530
531 Config
532 ~~~~~~
533
534 General Syntax
535 ^^^^^^^^^^^^^^
536
537 config [-m 'MONITOR_SEL'|-d 'DESKTOP_SEL'|-n 'NODE_SEL'] <key> [<value>]::
538         Get or set the value of <key>.
539
540 Subscribe
541 ~~~~~~~~~
542
543 General Syntax
544 ^^^^^^^^^^^^^^
545 subscribe (all|report|monitor|desktop|node|...)*::
546         Continuously print status information. See the *EVENTS* section for the detailed description of each event.
547
548 Quit
549 ~~~~
550
551 General Syntax
552 ^^^^^^^^^^^^^^
553
554 quit [<status>]::
555         Quit with an optional exit status.
556
557 Exit Codes
558 ----------
559
560 If the server can't handle a message, *bspc* will return with a non-zero exit code.
561
562 Settings
563 --------
564 Colors are in the form '#RRGGBB', booleans are 'true', 'on', 'false' or 'off'.
565
566 All the boolean settings are 'false' by default unless stated otherwise.
567
568 Global Settings
569 ~~~~~~~~~~~~~~~
570
571 'normal_border_color'::
572         Color of the border of an unfocused window.
573
574 'active_border_color'::
575         Color of the border of a focused window of an unfocused monitor.
576
577 'focused_border_color'::
578         Color of the border of a focused window of a focused monitor.
579
580 'presel_feedback_color'::
581         Color of the *node --presel-{dir,ratio}* message feedback area.
582
583 'split_ratio'::
584         Default split ratio.
585
586 'status_prefix'::
587         Prefix prepended to each of the status lines.
588
589 'external_rules_command'::
590         External command used to retrieve rule consequences. The command will receive the the ID of the window being processed as its first argument and the class and instance names as second and third arguments. The output of that command must have the following format: *key1=value1 key2=value2 ...* (the valid key/value pairs are given in the description of the 'rule' command).
591
592 'initial_polarity'::
593         On which child should a new window be attached when adding a window on a single window tree in automatic mode. Accept the following values: *first_child*, *second_child*.
594
595 'history_aware_focus'::
596         Give priority to the focus history when focusing nodes.
597
598 'focus_by_distance'::
599         Base focusing on distances between windows.
600
601 'borderless_monocle'::
602         Remove borders of tiled windows for the *monocle* desktop layout.
603
604 'gapless_monocle'::
605         Remove gaps of tiled windows for the *monocle* desktop layout.
606
607 'paddingless_monocle'::
608         Remove padding space for the *monocle* desktop layout.
609
610 'single_monocle'::
611         Set the desktop layout to *monocle* if there's only one tiled window in the tree.
612
613 'pointer_modifier'::
614         Keyboard modifier used for moving or resizing windows. Accept the following values: *shift*, *control*, *lock*, *mod1*, *mod2*, *mod3*, *mod4*, *mod5*.
615
616 'pointer_action1'::
617 'pointer_action2'::
618 'pointer_action3'::
619         Action performed when pressing 'pointer_modifier' + 'button<n>'. Accept the following values: *move*, *resize_side*, *resize_corner*, *focus*.
620
621 'click_to_focus'::
622         Focus a window (or a monitor) by clicking it.
623
624 'focus_follows_pointer'::
625         Focus the window under the pointer.
626
627 'pointer_follows_focus'::
628         When focusing a window, put the pointer at its center.
629
630 'pointer_follows_monitor'::
631         When focusing a monitor, put the pointer at its center.
632
633 'ignore_ewmh_focus'::
634         Ignore EWMH focus requests coming from applications.
635
636 'center_pseudo_tiled'::
637         Center pseudo tiled windows into their tiling rectangles. Defaults to 'true'.
638
639 'honor_size_hints'::
640         Apply ICCCM window size hints.
641
642 'remove_disabled_monitors'::
643         Consider disabled monitors as disconnected.
644
645 'remove_unplugged_monitors'::
646         Remove unplugged monitors.
647
648 'merge_overlapping_monitors'::
649         Merge overlapping monitors (the bigger remains).
650
651 Monitor and Desktop Settings
652 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
653
654 'top_padding'::
655 'right_padding'::
656 'bottom_padding'::
657 'left_padding'::
658         Padding space added at the sides of the monitor or desktop.
659
660 Desktop Settings
661 ~~~~~~~~~~~~~~~~
662
663 'window_gap'::
664         Size of the gap that separates windows.
665
666 Node Settings
667 ~~~~~~~~~~~~~
668
669 'border_width'::
670         Window border width.
671
672 Pointer Bindings
673 ----------------
674
675 'button1'::
676         Focus the window under the pointer if 'click_to_focus' is set.
677
678 'pointer_modifier' + 'button1'::
679         Move the window under the pointer.
680
681 'pointer_modifier' + 'button2'::
682         Resize the window under the pointer by dragging the nearest side.
683
684 'pointer_modifier' + 'button3'::
685         Resize the window under the pointer by dragging the nearest corner.
686
687 The behavior of 'pointer_modifier' + 'button<n>' can be modified through the 'pointer_action<n>' setting.
688
689 Events
690 ------
691
692 'report'::
693         See the next section for the description of the format.
694
695 'monitor_add <monitor_id> <monitor_name> <monitor_geometry>'::
696         A monitor is added.
697
698 'monitor_rename <monitor_id> <old_name> <new_name>'::
699         A monitor is renamed.
700
701 'monitor_remove <monitor_id>'::
702         A monitor is removed.
703
704 'monitor_swap <src_monitor_id> <dst_monitor_id>'::
705         A monitor is swapped.
706
707 'monitor_focus <monitor_id>'::
708         A monitor is focused.
709
710 'monitor_geometry <monitor_id> <monitor_geometry>'::
711         The geometry of a monitor changed.
712
713 'desktop_add <monitor_id> <desktop_id> <desktop_name>'::
714         A desktop is added.
715
716 'desktop_rename <monitor_id> <desktop_id> <old_name> <new_name>'::
717         A desktop is renamed.
718
719 'desktop_remove <monitor_id> <desktop_id>'::
720         A desktop is removed.
721
722 'desktop_swap <src_monitor_id> <src_desktop_id> <dst_monitor_id> <dst_desktop_id>'::
723         A desktop is swapped.
724
725 'desktop_transfer <src_monitor_id> <src_desktop_id> <dst_monitor_id>'::
726         A desktop is transferred.
727
728 'desktop_focus <monitor_id> <desktop_id>'::
729         A desktop is focused.
730
731 'desktop_activate <monitor_id> <desktop_id>'::
732         A desktop is activated.
733
734 'desktop_layout <monitor_id> <desktop_id> tiled|monocle'::
735         The layout of a desktop changed.
736
737 'node_manage <monitor_id> <desktop_id> <node_id> <ip_id>'::
738         A window is managed.
739
740 'node_unmanage <monitor_id> <desktop_id> <node_id>'::
741         A window is unmanaged.
742
743 'node_swap <src_monitor_id> <src_desktop_id> <src_node_id> <dst_monitor_id> <dst_desktop_id> <dst_node_id>'::
744         A node is swapped.
745
746 'node_transfer <src_monitor_id> <src_desktop_id> <src_node_id> <dst_monitor_id> <dst_desktop_id> <dst_node_id>'::
747         A node is transferred.
748
749 'node_focus <monitor_id> <desktop_id> <node_id>'::
750         A node is focused.
751
752 'node_activate <monitor_id> <desktop_id> <node_id>'::
753         A node is activated.
754
755 'node_presel <monitor_id> <desktop_id> <node_id> (dir DIR|ratio RATIO|cancel)'::
756         A node is preselected.
757
758 'node_stack <node_id_1> below|above <node_id_2>'::
759         A node is stacked below or above another node.
760
761 'node_geometry <monitor_id> <desktop_id> <node_id> <node_geometry>'::
762         The geometry of a window changed.
763
764 'node_state <monitor_id> <desktop_id> <node_id> tiled|pseudo_tiled|floating|fullscreen on|off'::
765         The state of a window changed.
766
767 'node_flag <monitor_id> <desktop_id> <node_id> sticky|private|locked|urgent on|off'::
768         One of the flags of a node changed.
769
770 'node_layer <monitor_id> <desktop_id> <node_id> below|normal|above'::
771         The layer of a window changed.
772
773 Please note that *bspwm* initializes monitors before it reads messages on its socket, therefore the initial monitor events can't be received.
774
775 Report Format
776 -------------
777
778 Each report event message is composed of items separated by colons.
779
780 Each item has the form '<type><value>' where '<type>' is the first character of the item.
781
782 'M<monitor_name>'::
783         Focused monitor.
784
785 'm<monitor_name>'::
786         Unfocused monitor.
787
788 'O<desktop_name>'::
789         Occupied focused desktop.
790
791 'o<desktop_name>'::
792         Occupied unfocused desktop.
793
794 'F<desktop_name>'::
795         Free focused desktop.
796
797 'f<desktop_name>'::
798         Free unfocused desktop.
799
800 'U<desktop_name>'::
801         Urgent focused desktop.
802
803 'u<desktop_name>'::
804         Urgent unfocused desktop.
805
806 'L(T|M)'::
807         Layout of the focused desktop of a monitor.
808
809 'T(T|P|F|=|@)'::
810         State of the focused node of a focused desktop.
811
812 'G(S?P?L?)'::
813         Active flags of the focused node of a focused desktop.
814
815 Environment Variables
816 ---------------------
817
818 'BSPWM_SOCKET'::
819         The path of the socket used for the communication between *bspc* and *bspwm*. If it isn't defined, then the following path is used: '/tmp/bspwm<host_name>_<display_number>_<screen_number>-socket'.
820
821 Contributors
822 ------------
823
824 * Steven Allen <steven at stebalien.com>
825 * Thomas Adam <thomas at xteddy.org>
826 * Ivan Kanakarakis <ivan.kanak at gmail.com>
827
828 Author
829 ------
830
831 Bastien Dejean <nihilhill at gmail.com>