]> git.lizzy.rs Git - bspwm.git/commitdiff
Generate documentation via asciidoc
authorBastien Dejean <nihilhill@gmail.com>
Wed, 26 Jun 2013 19:50:01 +0000 (21:50 +0200)
committerBastien Dejean <nihilhill@gmail.com>
Wed, 26 Jun 2013 19:50:01 +0000 (21:50 +0200)
12 files changed:
Makefile
README.asciidoc
bspc.1 [deleted symlink]
doc/README.md [deleted file]
doc/asciidoc.conf [new file with mode: 0644]
doc/bspc.1 [new symlink]
doc/bspwm.1 [new file with mode: 0644]
doc/bspwm.1.txt [new file with mode: 0644]
doc/header.txt [new file with mode: 0644]
doc/man.template [deleted file]
doc/man_filter.hs [deleted file]
doc/quirks.patch [deleted file]

index 5bd224e2022da83ed74e423067f3ec7f71d707ec..c13b887075f076a11e7eec612b3da9c481ad97e4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,3 @@
-NAME = bspwm
 VERSION = 0.7
 
 CC      = gcc
@@ -41,7 +40,7 @@ install:
        mkdir -p "$(DESTDIR)$(BINPREFIX)"
        cp -p bsp{wm,c} "$(DESTDIR)$(BINPREFIX)"
        mkdir -p "$(DESTDIR)$(MANPREFIX)"/man1
-       cp -Pp bsp{wm,c}.1 "$(DESTDIR)$(MANPREFIX)"/man1
+       cp -Pp doc/bsp{wm,c}.1 "$(DESTDIR)$(MANPREFIX)"/man1
        mkdir -p "$(DESTDIR)$(CPLPREFIX)"
        cp -p bash_completion "$(DESTDIR)$(CPLPREFIX)"/bspc
 
@@ -51,9 +50,8 @@ uninstall:
        rm -f "$(DESTDIR)$(CPLPREFIX)"/bspc
 
 doc:
-       pandoc --no-wrap -t json doc/README.md | runhaskell doc/man_filter.hs | pandoc --no-wrap -f json -t man --template doc/man.template -V name=$(NAME) -o $(NAME).1
-       pandoc --no-wrap -f markdown -t asciidoc doc/README.md -o README.asciidoc
-       patch -p 1 -i doc/quirks.patch
+       a2x -v -d manpage -f manpage -a revnumber=$(VERSION) doc/bspwm.1.txt
+       cat doc/header.txt doc/bspwm.1.txt > README.asciidoc
 
 clean:
        rm -f $(WM_OBJ) $(CL_OBJ) bsp{wm,c}
index acdb4739f152ee5d1c282500340fd4c919aec2d6..854b1a234998cdb142f8af4d870b5f0a754fec61 100644 (file)
@@ -1,6 +1,17 @@
 image:https://github.com/baskerville/bspwm/raw/master/logo/bspwm-logo.png[logo]
 
-[[synopsis]]
+:man source:   Bspwm
+:man version:  {revnumber}
+:man manual:   Bspwm Manual
+
+bspwm(1)
+========
+
+Name
+----
+
+bspwm - Tiling window manager based on binary space partitioning
+
 Synopsis
 --------
 
@@ -8,7 +19,6 @@ Synopsis
 
 *bspc* _MESSAGE_ [_ARGUMENTS_] [_OPTIONS_]
 
-[[description]]
 Description
 -----------
 
@@ -16,7 +26,6 @@ Description
 
 It is controlled and configured via *bspc*.
 
-[[configuration]]
 Configuration
 -------------
 
@@ -28,7 +37,6 @@ Keyboard and pointer bindings are defined with https://github.com/baskerville/sx
 
 Example configuration files can be found in the *examples* directory.
 
-[[splitting-modes]]
 Splitting Modes
 ---------------
 
@@ -77,7 +85,6 @@ Same departure, but the mode is _manual_, and a *presel* _up_ message was sent b
 +-------------------------+         +-------------------------+
 ---------------------------------------------------------------
 
-[[containers]]
 Containers
 ----------
 
@@ -85,199 +92,275 @@ Each monitor contains at least one desktop.
 
 Each desktop contains at most one tree.
 
-[[messages]]
 Messages
 --------
 
+
 *get* _SETTING_::
-  Return the value of the given setting.
+    Return the value of the given setting.
+
 *set* _SETTING_ _VALUE_::
-  Set the value of the given setting.
+    Set the value of the given setting.
+
 *list* [_DESKTOP_NAME_]::
-  Output the internal representation of the window tree.
+    Output the internal representation of the window tree.
+
 *list_desktops* [*--quiet*]::
-  Perform a dump of each desktop for the current monitor.
+    Perform a dump of each desktop for the current monitor.
+
 *list_monitors* [*--quiet*]::
-  Perform a dump of each monitor.
+    Perform a dump of each monitor.
+
 *list_history*::
-  Return the node focus history of each desktop.
+    Return the node focus history of each desktop.
+
 *list_windows*::
-  Return the list of managed windows (i.e. their identifiers).
+    Return the list of managed windows (i.e. their identifiers).
+
 *list_rules*::
-  Return the list of rules.
+    Return the list of rules.
+
 *presel* _left_|_right_|_up_|_down_ [_SPLIT_RATIO_]::
-  Switch to manual mode and select the splitting direction.
+    Switch to manual mode and select the splitting direction.
+
 *cancel*::
-  Switch to automatic mode.
+    Switch to automatic mode.
+
 *ratio* _VALUE_::
-  Set the splitting ratio of the focused window.
+    Set the splitting ratio of the focused window.
+
 *pad* _MONITOR_NAME_ [_TOP_PADDING_ [_RIGHT_PADDING_ [_BOTTOM_PADDING_ [_LEFT_PADDING_]]]]::
-  Set the padding of the given monitor.
+    Set the padding of the given monitor.
+
 *focus* _left_|_right_|_up_|_down_::
-  Focus the neighbor window situated in the given direction.
+    Focus the neighbor window situated in the given direction.
+
 *shift* _left_|_right_|_up_|_down_::
-  Exchange the current window with the given neighbor.
+    Exchange the current window with the given neighbor.
+
 *swap* [*--keep-focus*]::
-  Swap the focused window with the last focused window.
+    Swap the focused window with the last focused window.
+
 *push* _left_|_right_|_up_|_down_::
-  Push the fence located in the given direction.
+    Push the fence located in the given direction.
+
 *pull* _left_|_right_|_up_|_down_::
-  Pull the fence located in the given direction.
+    Pull the fence located in the given direction.
+
 *fence_ratio* _left_|_right_|_up_|_down_::
-  Set the splitting ratio of the fence located in the given direction.
+    Set the splitting ratio of the fence located in the given direction.
+
 *cycle* _next_|_prev_ [*--skip-floating*|*--skip-tiled*|*--skip-class-equal*|*--skip-class-differ*]::
-  Focus the next or previous window matching the given constraints.
+    Focus the next or previous window matching the given constraints.
+
 *nearest* _older_|_newer_ [*--skip-floating*|*--skip-tiled*|*--skip-class-equal*|*--skip-class-differ*]::
-  Focus the nearest window matching the given constraints.
+    Focus the nearest window matching the given constraints.
+
 *biggest*::
-  Return the ID of the biggest tiled window.
+    Return the ID of the biggest tiled window.
+
 *circulate* _forward_|_backward_::
-  Circulate the leaves in the given direction.
+    Circulate the leaves in the given direction.
+
 *grab_pointer* _focus_|_move_|_resize_side_|_resize_corner_::
-  Begin the specified pointer action.
+    Begin the specified pointer action.
+
 *track_pointer* _ROOT_X_ _ROOT_Y_::
-  Pass the pointer root coordinates for the current pointer action.
+    Pass the pointer root coordinates for the current pointer action.
+
 *ungrab_pointer*::
-  End the current pointer action.
+    End the current pointer action.
+
 *toggle_fullscreen*::
-  Toggle the fullscreen state of the current window.
+    Toggle the fullscreen state of the current window.
+
 *toggle_floating*::
-  Toggle the floating state of the current window.
+    Toggle the floating state of the current window.
+
 *toggle_locked*::
-  Toggle the locked state of the current window (locked windows will not respond to the *close* message).
+    Toggle the locked state of the current window (locked windows will not respond to the *close* message).
+
 *toggle_visibility*::
-  Toggle the visibility of all the managed windows.
+    Toggle the visibility of all the managed windows.
+
 *close*::
-  Close the focused window.
+    Close the focused window.
+
 *kill*::
-  Kill the focused window.
+    Kill the focused window.
+
 *send_to* _DESKTOP_NAME_ [*--follow*]::
-  Send the focused window to the given desktop.
+    Send the focused window to the given desktop.
+
 *drop_to* _next_|_prev_ [*--follow*]::
-  Send the focused window to the next or previous desktop.
+    Send the focused window to the next or previous desktop.
+
 *send_to_monitor* _MONITOR_NAME_ [*--follow*]::
-  Send the focused window to the given monitor.
+    Send the focused window to the given monitor.
+
 *drop_to_monitor* _next_|_prev_ [*--follow*]::
-  Send the focused window to the next or previous monitor.
+    Send the focused window to the next or previous monitor.
+
 *use* _DESKTOP_NAME_::
-  Select the given desktop.
+    Select the given desktop.
+
 *use_monitor* _MONITOR_NAME_::
-  Select the given monitor.
+    Select the given monitor.
+
 *alternate*::
-  Alternate between the current and the last focused window.
+    Alternate between the current and the last focused window.
+
 *alternate_desktop*::
-  Alternate between the current and the last focused desktop.
+    Alternate between the current and the last focused desktop.
+
 *alternate_monitor*::
-  Alternate between the current and the last focused monitor.
+    Alternate between the current and the last focused monitor.
+
 *add* _DESKTOP_NAME_ ...::
-  Make new desktops with the given names.
+    Make new desktops with the given names.
+
 *add_in* _MONITOR_NAME_ _DESKTOP_NAME_ ...::
-  Make new desktops with the given names in the given monitor.
+    Make new desktops with the given names in the given monitor.
+
 *rename_monitor* _CURRENT_NAME_ _NEW_NAME_::
-  Rename the monitor named _CURRENT_NAME_ to _NEW_NAME_.
+    Rename the monitor named _CURRENT_NAME_ to _NEW_NAME_.
+
 *rename* _CURRENT_NAME_ _NEW_NAME_::
-  Rename the desktop named _CURRENT_NAME_ to _NEW_NAME_.
+    Rename the desktop named _CURRENT_NAME_ to _NEW_NAME_.
+
 *remove_desktop* _DESKTOP_NAME_ ...::
-  Remove the given desktops.
+    Remove the given desktops.
+
 *send_desktop_to* _MONITOR_NAME_ [*--follow*]::
-  Send the current desktop to the given monitor.
+    Send the current desktop to the given monitor.
+
 *cycle_monitor* _next_|_prev_::
-  Select the next or previous monitor.
+    Select the next or previous monitor.
+
 *cycle_desktop* _next_|_prev_ [*--skip-free*|*--skip-occupied*]::
-  Select the next or previous desktop.
+    Select the next or previous desktop.
+
 *layout* _monocle_|_tiled_ [_DESKTOP_NAME_ ...]::
-  Set the layout of the given desktops (current if none given).
+    Set the layout of the given desktops (current if none given).
+
 *cycle_layout*::
-  Cycle the layout of the current desktop.
+    Cycle the layout of the current desktop.
+
 *rotate* _clockwise_|_counter_clockwise_|_full_cycle_::
-  Rotate the window tree.
+    Rotate the window tree.
+
 *flip* _horizontal_|_vertical_::
-  Flip the window tree.
+    Flip the window tree.
+
 *balance*::
-  Adjust the split ratios so that all windows occupy the same area.
+    Adjust the split ratios so that all windows occupy the same area.
+
 *rule* _PATTERN_ [_DESKTOP_NAME_] [_floating_] [_follow_]::
-  Create a new rule (_PATTERN_ must match the class or instance name).
+    Create a new rule (_PATTERN_ must match the class or instance name).
+
 *remove_rule* _UID_ ...::
-  Remove the rules with the given _UID_s.
+    Remove the rules with the given _UIDs_.
+
 *put_status*::
-  Output the current state to the panel fifo.
+    Output the current state to the panel fifo.
+
 *adopt_orphans*::
-  Manage all the unmanaged windows remaining from a previous session.
+    Manage all the unmanaged windows remaining from a previous session.
+
 *restore_layout* _FILE_PATH_::
-  Restore the layout of each desktop from the content of _FILE_PATH_.
+    Restore the layout of each desktop from the content of _FILE_PATH_.
+
 *restore_history* _FILE_PATH_::
-  Restore the history of each desktop from the content of _FILE_PATH_.
+    Restore the history of each desktop from the content of _FILE_PATH_.
+
 *quit* [_EXIT_STATUS_]::
-  Quit.
+    Quit.
 
-[[settings]]
 Settings
 --------
-
 Colors are either http://en.wikipedia.org/wiki/X11_color_names[X color names] or _#RRGGBB_, booleans are _true_ or _false_.
 
 All the boolean settings are _false_ by default.
 
+
 _focused_border_color_::
-  Color of the border of a focused window of a focused monitor.
+    Color of the border of a focused window of a focused monitor.
+
 _active_border_color_::
-  Color of the border of a focused window of an unfocused monitor.
+    Color of the border of a focused window of an unfocused monitor.
+
 _normal_border_color_::
-  Color of the border of an unfocused window.
+    Color of the border of an unfocused window.
+
 _presel_border_color_::
-  Color of the *presel* message feedback.
+    Color of the *presel* message feedback.
+
 _focused_locked_border_color_::
-  Color of the border of a focused locked window of a focused monitor.
+    Color of the border of a focused locked window of a focused monitor.
+
 _active_locked_border_color_::
-  Color of the border of a focused locked window of an unfocused monitor.
+    Color of the border of a focused locked window of an unfocused monitor.
+
 _normal_locked_border_color_::
-  Color of the border of an unfocused locked window.
+    Color of the border of an unfocused locked window.
+
 _urgent_border_color_::
-  Color of the border of an urgent window.
+    Color of the border of an urgent window.
+
 _border_width_::
-  Window border width.
+    Window border width.
+
 _window_gap_::
-  Value of the gap that separates windows.
+    Value of the gap that separates windows.
+
 _split_ratio_::
-  Default split ratio.
+    Default split ratio.
+
 _top_padding_, _right_padding_, _bottom_padding_, _left_padding_::
-  Padding space added at the sides of the current monitor.
+    Padding space added at the sides of the current monitor.
+
 _wm_name_::
-  The value that shall be used for the __NET_WM_NAME_ property of the root window.
+    The value that shall be used for the '_NET_WM_NAME' property of the root window.
+
 _borderless_monocle_::
-  Remove borders for tiled windows in monocle mode.
+    Remove borders for tiled windows in monocle mode.
+
 _gapless_monocle_::
-  Remove gaps for tiled windows in monocle mode.
+    Remove gaps for tiled windows in monocle mode.
+
 _focus_follows_pointer_::
-  Focus the window under the pointer.
+    Focus the window under the pointer.
+
 _pointer_follows_monitor_::
-  When focusing a monitor, put the pointer at its center.
+    When focusing a monitor, put the pointer at its center.
+
 _adaptative_raise_::
-  Prevent floating windows from being raised when they might cover other floating windows.
+    Prevent floating windows from being raised when they might cover other floating windows.
+
 _apply_shadow_property_::
-  Enable shadows for floating windows via the __COMPTON_SHADOW_ property.
+    Enable shadows for floating windows via the '_COMPTON_SHADOW' property.
+
 _auto_alternate_::
-  Interpret two consecutive identical *use* messages as an *alternate* message.
+    Interpret two consecutive identical *use* messages as an *alternate* message.
+
 _focus_by_distance_::
-  Use window or leaf distance for focus movement.
+    Use window or leaf distance for focus movement.
+
 _history_aware_focus_::
-  Give priority to the focus history when focusing nodes.
+    Give priority to the focus history when focusing nodes.
 
-[[environment-variables]]
 Environment Variables
 ---------------------
 
 _BSPWM_SOCKET_::
   The path of the socket used for the communication between *bspc* and *bspwm*.
 
-[[panels]]
 Panels
 ------
 
 * Any EWMH compliant panel (e.g.: _tint2_, _bmpanel2_, etc.).
 * A custom panel if the _-s_ flag is used (have a look at the files in _examples/panel_).
 
-[[key-features]]
 Key Features
 ------------
 
@@ -286,8 +369,22 @@ Key Features
 * EWMH support (*tint2* works).
 * Automatic and manual modes.
 
-[[mailing-list]]
+Contributors
+------------
+
+* Ivan Kanakarakis <ivan.kanak at gmail.com>
+* Thomas Adam <thomas at xteddy.org>
+
+Author
+------
+
+Bastien Dejean <baskerville at lavabit.com>
+
 Mailing List
 ------------
 
 bspwm at librelist.com
+
+////
+vim: set ft=asciidoc:
+////
diff --git a/bspc.1 b/bspc.1
deleted file mode 120000 (symlink)
index 9cc3873..0000000
--- a/bspc.1
+++ /dev/null
@@ -1 +0,0 @@
-bspwm.1
\ No newline at end of file
diff --git a/doc/README.md b/doc/README.md
deleted file mode 100644 (file)
index 57acbad..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-% Bspwm User's Guide
-% Bastien Dejean
-% June 23, 2013
-
-![logo](https://github.com/baskerville/bspwm/raw/master/logo/bspwm-logo.png)
-
-# Synopsis
-
-**bspwm** [**-h**|**-v**|**-s** *PANEL\_FIFO*|**-p** *PANEL\_PREFIX*]
-
-**bspc** *MESSAGE* [*ARGUMENTS*] [*OPTIONS*]
-
-# Description
-
-**bspwm** is a tiling window manager that represents windows as the leaves of a full binary tree.
-
-It is controlled and configured via **bspc**.
-
-# Configuration
-
-**bspwm** have only two sources of informations: the X events it receives and the messages it reads on a dedicated socket.
-
-Its configuration file is *$XDG_CONFIG_HOME/bspwm/autostart*.
-
-Keyboard and pointer bindings are defined with [sxhkd](https://github.com/baskerville/sxhkd).
-
-Example configuration files can be found in the **examples** directory.
-
-# Splitting Modes
-
-There is only two splitting modes: *automatic* and *manual*.
-
-The default mode is *automatic*. The *manual* mode is entered by sending a **presel** message.
-
-Example: insertion of a new node (number 4) into the given tree in
-*automatic* mode:
-
-                  b                                   c
-                 / \                                 / \
-                3   a              -->              4   b
-                ^  / \                              ^  / \
-                  2   1                               3   a
-                                                         / \
-                                                        2   1
-     +-------------------------+         +-------------------------+
-     |            |            |         |            |            |
-     |            |     2      |         |            |     3      |
-     |            |            |         |            |            |
-     |     3      |------------|   -->   |     4      |------------|
-     |     ^      |            |         |     ^      |     |      |
-     |            |     1      |         |            |  1  |  2   |
-     |            |            |         |            |     |      |
-     +-------------------------+         +-------------------------+
-
-Same departure, but the mode is *manual*, and a **presel** *up* message
-was sent beforehand:
-
-                 b                                   b
-                / \                                 / \
-               3   a              -->              c   a
-               ^  / \                             / \ / \
-                 2   1                           4  3 2  1
-                                                 ^
-    +-------------------------+         +-------------------------+
-    |            |            |         |            |            |
-    |            |     2      |         |     4      |     2      |
-    |            |            |         |     ^      |            |
-    |     3      |------------|   -->   |------------|------------|
-    |     ^      |            |         |            |            |
-    |            |     1      |         |     3      |     1      |
-    |            |            |         |            |            |
-    +-------------------------+         +-------------------------+
-
-# Containers
-
-Each monitor contains at least one desktop.
-
-Each desktop contains at most one tree.
-
-# Messages
-
-**get** *SETTING*
-:    Return the value of the given setting.
-
-**set** *SETTING* *VALUE*
-:    Set the value of the given setting.
-
-**list** [*DESKTOP\_NAME*]
-:    Output the internal representation of the window tree.
-
-**list\_desktops** [**--quiet**]
-:    Perform a dump of each desktop for the current monitor.
-
-**list\_monitors** [**--quiet**]
-:    Perform a dump of each monitor.
-
-**list\_history**
-:    Return the node focus history of each desktop.
-
-**list\_windows**
-:    Return the list of managed windows (i.e. their identifiers).
-
-**list\_rules**
-:    Return the list of rules.
-
-**presel** *left*|*right*|*up*|*down* [*SPLIT\_RATIO*]
-:    Switch to manual mode and select the splitting direction.
-
-**cancel**
-:    Switch to automatic mode.
-
-**ratio** *VALUE*
-:    Set the splitting ratio of the focused window.
-
-**pad** *MONITOR\_NAME* [*TOP\_PADDING* [*RIGHT\_PADDING* [*BOTTOM\_PADDING* [*LEFT\_PADDING*]]]]
-:    Set the padding of the given monitor.
-
-**focus** *left*|*right*|*up*|*down*
-:    Focus the neighbor window situated in the given direction.
-
-**shift** *left*|*right*|*up*|*down*
-:    Exchange the current window with the given neighbor.
-
-**swap** [**--keep-focus**]
-:    Swap the focused window with the last focused window.
-
-**push** *left*|*right*|*up*|*down*
-:    Push the fence located in the given direction.
-
-**pull** *left*|*right*|*up*|*down*
-:    Pull the fence located in the given direction.
-
-**fence\_ratio** *left*|*right*|*up*|*down*
-:    Set the splitting ratio of the fence located in the given direction.
-
-**cycle** *next*|*prev* [**--skip-floating**|**--skip-tiled**|**--skip-class-equal**|**--skip-class-differ**]
-:    Focus the next or previous window matching the given constraints.
-
-**nearest** *older*|*newer* [**--skip-floating**|**--skip-tiled**|**--skip-class-equal**|**--skip-class-differ**]
-:    Focus the nearest window matching the given constraints.
-
-**biggest**
-:    Return the ID of the biggest tiled window.
-
-**circulate** *forward*|*backward*
-:    Circulate the leaves in the given direction.
-
-**grab\_pointer** *focus*|*move*|*resize\_side*|*resize\_corner*
-:    Begin the specified pointer action.
-
-**track\_pointer** *ROOT\_X* *ROOT\_Y*
-:    Pass the pointer root coordinates for the current pointer action.
-
-**ungrab\_pointer**
-:    End the current pointer action.
-
-**toggle\_fullscreen**
-:    Toggle the fullscreen state of the current window.
-
-**toggle\_floating**
-:    Toggle the floating state of the current window.
-
-**toggle\_locked**
-:    Toggle the locked state of the current window (locked windows will not respond to the **close** message).
-
-**toggle\_visibility**
-:    Toggle the visibility of all the managed windows.
-
-**close**
-:    Close the focused window.
-
-**kill**
-:    Kill the focused window.
-
-**send\_to** *DESKTOP\_NAME* [**--follow**]
-:    Send the focused window to the given desktop.
-
-**drop\_to** *next*|*prev* [**--follow**]
-:    Send the focused window to the next or previous desktop.
-
-**send\_to\_monitor** *MONITOR\_NAME* [**--follow**]
-:    Send the focused window to the given monitor.
-
-**drop\_to\_monitor** *next*|*prev* [**--follow**]
-:    Send the focused window to the next or previous monitor.
-
-**use** *DESKTOP\_NAME*
-:    Select the given desktop.
-
-**use\_monitor** *MONITOR\_NAME*
-:    Select the given monitor.
-
-**alternate**
-:    Alternate between the current and the last focused window.
-
-**alternate\_desktop**
-:    Alternate between the current and the last focused desktop.
-
-**alternate\_monitor**
-:    Alternate between the current and the last focused monitor.
-
-**add** *DESKTOP\_NAME* ...
-:    Make new desktops with the given names.
-
-**add\_in** *MONITOR\_NAME* *DESKTOP\_NAME* ...
-:    Make new desktops with the given names in the given monitor.
-
-**rename\_monitor** *CURRENT\_NAME* *NEW\_NAME*
-:    Rename the monitor named *CURRENT\_NAME* to *NEW\_NAME*.
-
-**rename** *CURRENT\_NAME* *NEW\_NAME*
-:    Rename the desktop named *CURRENT\_NAME* to *NEW\_NAME*.
-
-**remove\_desktop** *DESKTOP\_NAME* ...
-:    Remove the given desktops.
-
-**send\_desktop\_to** *MONITOR\_NAME* [**--follow**]
-:    Send the current desktop to the given monitor.
-
-**cycle\_monitor** *next*|*prev*
-:    Select the next or previous monitor.
-
-**cycle\_desktop** *next*|*prev* [**--skip-free**|**--skip-occupied**]
-:    Select the next or previous desktop.
-
-**layout** *monocle*|*tiled* [*DESKTOP\_NAME* ...]
-:    Set the layout of the given desktops (current if none given).
-
-**cycle\_layout**
-:    Cycle the layout of the current desktop.
-
-**rotate** *clockwise*|*counter\_clockwise*|*full\_cycle*
-:    Rotate the window tree.
-
-**flip** *horizontal*|*vertical*
-:    Flip the window tree.
-
-**balance**
-:    Adjust the split ratios so that all windows occupy the same area.
-
-**rule** *PATTERN* [*DESKTOP\_NAME*] [*floating*] [*follow*]
-:    Create a new rule (*PATTERN* must match the class or instance name).
-
-**remove\_rule** *UID* ...
-:    Remove the rules with the given *UID*s.
-
-**put\_status**
-:    Output the current state to the panel fifo.
-
-**adopt\_orphans**
-:    Manage all the unmanaged windows remaining from a previous session.
-
-**restore\_layout** *FILE\_PATH*
-:    Restore the layout of each desktop from the content of *FILE\_PATH*.
-
-**restore\_history** *FILE\_PATH*
-:    Restore the history of each desktop from the content of *FILE\_PATH*.
-
-**quit** [*EXIT\_STATUS*]
-:    Quit.
-
-# Settings
-
-Colors are either [X color names](http://en.wikipedia.org/wiki/X11\_color\_names) or *#RRGGBB*, booleans are *true* or *false*.
-
-All the boolean settings are *false* by default.
-
-*focused\_border\_color*
-:    Color of the border of a focused window of a focused monitor.
-
-*active\_border\_color*
-:    Color of the border of a focused window of an unfocused monitor.
-
-*normal\_border\_color*
-:    Color of the border of an unfocused window.
-
-*presel\_border\_color*
-:    Color of the **presel** message feedback.
-
-*focused\_locked\_border\_color*
-:    Color of the border of a focused locked window of a focused monitor.
-
-*active\_locked\_border\_color*
-:    Color of the border of a focused locked window of an unfocused monitor.
-
-*normal\_locked\_border\_color*
-:    Color of the border of an unfocused locked window.
-
-*urgent\_border\_color*
-:    Color of the border of an urgent window.
-
-*border\_width*
-:    Window border width.
-
-*window\_gap*
-:    Value of the gap that separates windows.
-
-*split\_ratio*
-:    Default split ratio.
-
-*top\_padding*, *right\_padding*, *bottom\_padding*, *left\_padding*
-:    Padding space added at the sides of the current monitor.
-
-*wm\_name*
-:    The value that shall be used for the *\_NET\_WM\_NAME* property of the root window.
-
-*borderless\_monocle*
-:    Remove borders for tiled windows in monocle mode.
-
-*gapless\_monocle*
-:    Remove gaps for tiled windows in monocle mode.
-
-*focus\_follows\_pointer*
-:    Focus the window under the pointer.
-
-*pointer\_follows\_monitor*
-:    When focusing a monitor, put the pointer at its center.
-
-*adaptative\_raise*
-:    Prevent floating windows from being raised when they might cover other floating windows.
-
-*apply\_shadow\_property*
-:    Enable shadows for floating windows via the *\_COMPTON\_SHADOW* property.
-
-*auto\_alternate*
-:    Interpret two consecutive identical **use** messages as an **alternate** message.
-
-*focus\_by\_distance*
-:    Use window or leaf distance for focus movement.
-
-*history\_aware\_focus*
-:    Give priority to the focus history when focusing nodes.
-
-# Environment Variables
-
-*BSPWM_SOCKET*
-:    The path of the socket used for the communication between **bspc** and **bspwm**.
-
-# Panels
-
-- Any EWMH compliant panel (e.g.: *tint2*, *bmpanel2*, etc.).
-- A custom panel if the *-s* flag is used (have a look at the files in *examples/panel*).
-
-# Key Features
-
-- Configured and controlled through messages.
-- Multiple monitors support (via *RandR*).
-- EWMH support (**tint2** works).
-- Automatic and manual modes.
-
-# Mailing List
-
-bspwm at librelist.com
diff --git a/doc/asciidoc.conf b/doc/asciidoc.conf
new file mode 100644 (file)
index 0000000..68d4d6d
--- /dev/null
@@ -0,0 +1,39 @@
+#
+# Borrowed from pacman
+#
+
+[macros]
+(?su)[\\]?(?P<name>linkman):(?P<target>\S*?)\[(?P<attrlist>.*?)\]=
+
+[attributes]
+asterisk=&#42;
+plus=&#43;
+caret=&#94;
+startsb=&#91;
+endsb=&#93;
+backslash=&#92;
+tilde=&#126;
+apostrophe=&#39;
+backtick=&#96;
+litdd=&#45;&#45;
+
+ifdef::backend-docbook[]
+[linkman-inlinemacro]
+{0%{target}}
+{0#<citerefentry>}
+{0#<refentrytitle>{target}</refentrytitle><manvolnum>{0}</manvolnum>}
+{0#</citerefentry>}
+endif::backend-docbook[]
+
+ifdef::backend-docbook[]
+ifndef::docbook-xsl-172[]
+# "unbreak" docbook-xsl v1.68 for manpages. v1.69 works with or without this.
+# v1.72 breaks with this because it replaces dots not in roff requests.
+[listingblock]
+<example><title>{title}</title>
+<literallayout>
+|
+</literallayout>
+{title#}</example>
+endif::docbook-xsl-172[]
+endif::backend-docbook[]
diff --git a/doc/bspc.1 b/doc/bspc.1
new file mode 120000 (symlink)
index 0000000..9cc3873
--- /dev/null
@@ -0,0 +1 @@
+bspwm.1
\ No newline at end of file
diff --git a/doc/bspwm.1 b/doc/bspwm.1
new file mode 100644 (file)
index 0000000..56c6ca2
--- /dev/null
@@ -0,0 +1,664 @@
+'\" t
+.\"     Title: bspwm
+.\"    Author: [see the "Author" section]
+.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
+.\"      Date: 06/26/2013
+.\"    Manual: Bspwm Manual
+.\"    Source: Bspwm 0.7
+.\"  Language: English
+.\"
+.TH "BSPWM" "1" "06/26/2013" "Bspwm 0\&.7" "Bspwm Manual"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+bspwm \- Tiling window manager based on binary space partitioning
+.SH "SYNOPSIS"
+.sp
+\fBbspwm\fR [\fB\-h\fR|\fB\-v\fR|\fB\-s\fR \fIPANEL_FIFO\fR|\fB\-p\fR \fIPANEL_PREFIX\fR]
+.sp
+\fBbspc\fR \fIMESSAGE\fR [\fIARGUMENTS\fR] [\fIOPTIONS\fR]
+.SH "DESCRIPTION"
+.sp
+\fBbspwm\fR is a tiling window manager that represents windows as the leaves of a full binary tree\&.
+.sp
+It is controlled and configured via \fBbspc\fR\&.
+.SH "CONFIGURATION"
+.sp
+\fBbspwm\fR have only two sources of informations: the X events it receives and the messages it reads on a dedicated socket\&.
+.sp
+Its configuration file is \fI$XDG_CONFIG_HOME/bspwm/autostart\fR\&.
+.sp
+Keyboard and pointer bindings are defined with sxhkd\&.
+.sp
+Example configuration files can be found in the \fBexamples\fR directory\&.
+.SH "SPLITTING MODES"
+.sp
+There is only two splitting modes: \fIautomatic\fR and \fImanual\fR\&.
+.sp
+The default mode is \fIautomatic\fR\&. The \fImanual\fR mode is entered by sending a \fBpresel\fR message\&.
+.sp
+Example: insertion of a new node (number 4) into the given tree in \fIautomatic\fR mode:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+              b                                   c
+             / \e                                 / \e
+            3   a              \-\->              4   b
+            ^  / \e                              ^  / \e
+              2   1                               3   a
+                                                     / \e
+                                                    2   1
+ +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+ |            |            |         |            |            |
+ |            |     2      |         |            |     3      |
+ |            |            |         |            |            |
+ |     3      |\-\-\-\-\-\-\-\-\-\-\-\-|   \-\->   |     4      |\-\-\-\-\-\-\-\-\-\-\-\-|
+ |     ^      |            |         |     ^      |     |      |
+ |            |     1      |         |            |  1  |  2   |
+ |            |            |         |            |     |      |
+ +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+.fi
+.if n \{\
+.RE
+.\}
+.sp
+Same departure, but the mode is \fImanual\fR, and a \fBpresel\fR \fIup\fR message was sent beforehand:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+             b                                   b
+            / \e                                 / \e
+           3   a              \-\->              c   a
+           ^  / \e                             / \e / \e
+             2   1                           4  3 2  1
+                                             ^
++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+|            |            |         |            |            |
+|            |     2      |         |     4      |     2      |
+|            |            |         |     ^      |            |
+|     3      |\-\-\-\-\-\-\-\-\-\-\-\-|   \-\->   |\-\-\-\-\-\-\-\-\-\-\-\-|\-\-\-\-\-\-\-\-\-\-\-\-|
+|     ^      |            |         |            |            |
+|            |     1      |         |     3      |     1      |
+|            |            |         |            |            |
++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+         +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+
+.fi
+.if n \{\
+.RE
+.\}
+.SH "CONTAINERS"
+.sp
+Each monitor contains at least one desktop\&.
+.sp
+Each desktop contains at most one tree\&.
+.SH "MESSAGES"
+.PP
+\fBget\fR \fISETTING\fR
+.RS 4
+Return the value of the given setting\&.
+.RE
+.PP
+\fBset\fR \fISETTING\fR \fIVALUE\fR
+.RS 4
+Set the value of the given setting\&.
+.RE
+.PP
+\fBlist\fR [\fIDESKTOP_NAME\fR]
+.RS 4
+Output the internal representation of the window tree\&.
+.RE
+.PP
+\fBlist_desktops\fR [\fB\-\-quiet\fR]
+.RS 4
+Perform a dump of each desktop for the current monitor\&.
+.RE
+.PP
+\fBlist_monitors\fR [\fB\-\-quiet\fR]
+.RS 4
+Perform a dump of each monitor\&.
+.RE
+.PP
+\fBlist_history\fR
+.RS 4
+Return the node focus history of each desktop\&.
+.RE
+.PP
+\fBlist_windows\fR
+.RS 4
+Return the list of managed windows (i\&.e\&. their identifiers)\&.
+.RE
+.PP
+\fBlist_rules\fR
+.RS 4
+Return the list of rules\&.
+.RE
+.PP
+\fBpresel\fR \fIleft\fR|\fIright\fR|\fIup\fR|\fIdown\fR [\fISPLIT_RATIO\fR]
+.RS 4
+Switch to manual mode and select the splitting direction\&.
+.RE
+.PP
+\fBcancel\fR
+.RS 4
+Switch to automatic mode\&.
+.RE
+.PP
+\fBratio\fR \fIVALUE\fR
+.RS 4
+Set the splitting ratio of the focused window\&.
+.RE
+.PP
+\fBpad\fR \fIMONITOR_NAME\fR [\fITOP_PADDING\fR [\fIRIGHT_PADDING\fR [\fIBOTTOM_PADDING\fR [\fILEFT_PADDING\fR]]]]
+.RS 4
+Set the padding of the given monitor\&.
+.RE
+.PP
+\fBfocus\fR \fIleft\fR|\fIright\fR|\fIup\fR|\fIdown\fR
+.RS 4
+Focus the neighbor window situated in the given direction\&.
+.RE
+.PP
+\fBshift\fR \fIleft\fR|\fIright\fR|\fIup\fR|\fIdown\fR
+.RS 4
+Exchange the current window with the given neighbor\&.
+.RE
+.PP
+\fBswap\fR [\fB\-\-keep\-focus\fR]
+.RS 4
+Swap the focused window with the last focused window\&.
+.RE
+.PP
+\fBpush\fR \fIleft\fR|\fIright\fR|\fIup\fR|\fIdown\fR
+.RS 4
+Push the fence located in the given direction\&.
+.RE
+.PP
+\fBpull\fR \fIleft\fR|\fIright\fR|\fIup\fR|\fIdown\fR
+.RS 4
+Pull the fence located in the given direction\&.
+.RE
+.PP
+\fBfence_ratio\fR \fIleft\fR|\fIright\fR|\fIup\fR|\fIdown\fR
+.RS 4
+Set the splitting ratio of the fence located in the given direction\&.
+.RE
+.PP
+\fBcycle\fR \fInext\fR|\fIprev\fR [\fB\-\-skip\-floating\fR|\fB\-\-skip\-tiled\fR|\fB\-\-skip\-class\-equal\fR|\fB\-\-skip\-class\-differ\fR]
+.RS 4
+Focus the next or previous window matching the given constraints\&.
+.RE
+.PP
+\fBnearest\fR \fIolder\fR|\fInewer\fR [\fB\-\-skip\-floating\fR|\fB\-\-skip\-tiled\fR|\fB\-\-skip\-class\-equal\fR|\fB\-\-skip\-class\-differ\fR]
+.RS 4
+Focus the nearest window matching the given constraints\&.
+.RE
+.PP
+\fBbiggest\fR
+.RS 4
+Return the ID of the biggest tiled window\&.
+.RE
+.PP
+\fBcirculate\fR \fIforward\fR|\fIbackward\fR
+.RS 4
+Circulate the leaves in the given direction\&.
+.RE
+.PP
+\fBgrab_pointer\fR \fIfocus\fR|\fImove\fR|\fIresize_side\fR|\fIresize_corner\fR
+.RS 4
+Begin the specified pointer action\&.
+.RE
+.PP
+\fBtrack_pointer\fR \fIROOT_X\fR \fIROOT_Y\fR
+.RS 4
+Pass the pointer root coordinates for the current pointer action\&.
+.RE
+.PP
+\fBungrab_pointer\fR
+.RS 4
+End the current pointer action\&.
+.RE
+.PP
+\fBtoggle_fullscreen\fR
+.RS 4
+Toggle the fullscreen state of the current window\&.
+.RE
+.PP
+\fBtoggle_floating\fR
+.RS 4
+Toggle the floating state of the current window\&.
+.RE
+.PP
+\fBtoggle_locked\fR
+.RS 4
+Toggle the locked state of the current window (locked windows will not respond to the
+\fBclose\fR
+message)\&.
+.RE
+.PP
+\fBtoggle_visibility\fR
+.RS 4
+Toggle the visibility of all the managed windows\&.
+.RE
+.PP
+\fBclose\fR
+.RS 4
+Close the focused window\&.
+.RE
+.PP
+\fBkill\fR
+.RS 4
+Kill the focused window\&.
+.RE
+.PP
+\fBsend_to\fR \fIDESKTOP_NAME\fR [\fB\-\-follow\fR]
+.RS 4
+Send the focused window to the given desktop\&.
+.RE
+.PP
+\fBdrop_to\fR \fInext\fR|\fIprev\fR [\fB\-\-follow\fR]
+.RS 4
+Send the focused window to the next or previous desktop\&.
+.RE
+.PP
+\fBsend_to_monitor\fR \fIMONITOR_NAME\fR [\fB\-\-follow\fR]
+.RS 4
+Send the focused window to the given monitor\&.
+.RE
+.PP
+\fBdrop_to_monitor\fR \fInext\fR|\fIprev\fR [\fB\-\-follow\fR]
+.RS 4
+Send the focused window to the next or previous monitor\&.
+.RE
+.PP
+\fBuse\fR \fIDESKTOP_NAME\fR
+.RS 4
+Select the given desktop\&.
+.RE
+.PP
+\fBuse_monitor\fR \fIMONITOR_NAME\fR
+.RS 4
+Select the given monitor\&.
+.RE
+.PP
+\fBalternate\fR
+.RS 4
+Alternate between the current and the last focused window\&.
+.RE
+.PP
+\fBalternate_desktop\fR
+.RS 4
+Alternate between the current and the last focused desktop\&.
+.RE
+.PP
+\fBalternate_monitor\fR
+.RS 4
+Alternate between the current and the last focused monitor\&.
+.RE
+.PP
+\fBadd\fR \fIDESKTOP_NAME\fR \&...
+.RS 4
+Make new desktops with the given names\&.
+.RE
+.PP
+\fBadd_in\fR \fIMONITOR_NAME\fR \fIDESKTOP_NAME\fR \&...
+.RS 4
+Make new desktops with the given names in the given monitor\&.
+.RE
+.PP
+\fBrename_monitor\fR \fICURRENT_NAME\fR \fINEW_NAME\fR
+.RS 4
+Rename the monitor named
+\fICURRENT_NAME\fR
+to
+\fINEW_NAME\fR\&.
+.RE
+.PP
+\fBrename\fR \fICURRENT_NAME\fR \fINEW_NAME\fR
+.RS 4
+Rename the desktop named
+\fICURRENT_NAME\fR
+to
+\fINEW_NAME\fR\&.
+.RE
+.PP
+\fBremove_desktop\fR \fIDESKTOP_NAME\fR \&...
+.RS 4
+Remove the given desktops\&.
+.RE
+.PP
+\fBsend_desktop_to\fR \fIMONITOR_NAME\fR [\fB\-\-follow\fR]
+.RS 4
+Send the current desktop to the given monitor\&.
+.RE
+.PP
+\fBcycle_monitor\fR \fInext\fR|\fIprev\fR
+.RS 4
+Select the next or previous monitor\&.
+.RE
+.PP
+\fBcycle_desktop\fR \fInext\fR|\fIprev\fR [\fB\-\-skip\-free\fR|\fB\-\-skip\-occupied\fR]
+.RS 4
+Select the next or previous desktop\&.
+.RE
+.PP
+\fBlayout\fR \fImonocle\fR|\fItiled\fR [\fIDESKTOP_NAME\fR \&...]
+.RS 4
+Set the layout of the given desktops (current if none given)\&.
+.RE
+.PP
+\fBcycle_layout\fR
+.RS 4
+Cycle the layout of the current desktop\&.
+.RE
+.PP
+\fBrotate\fR \fIclockwise\fR|\fIcounter_clockwise\fR|\fIfull_cycle\fR
+.RS 4
+Rotate the window tree\&.
+.RE
+.PP
+\fBflip\fR \fIhorizontal\fR|\fIvertical\fR
+.RS 4
+Flip the window tree\&.
+.RE
+.PP
+\fBbalance\fR
+.RS 4
+Adjust the split ratios so that all windows occupy the same area\&.
+.RE
+.PP
+\fBrule\fR \fIPATTERN\fR [\fIDESKTOP_NAME\fR] [\fIfloating\fR] [\fIfollow\fR]
+.RS 4
+Create a new rule (\fIPATTERN\fR
+must match the class or instance name)\&.
+.RE
+.PP
+\fBremove_rule\fR \fIUID\fR \&...
+.RS 4
+Remove the rules with the given
+\fIUIDs\fR\&.
+.RE
+.PP
+\fBput_status\fR
+.RS 4
+Output the current state to the panel fifo\&.
+.RE
+.PP
+\fBadopt_orphans\fR
+.RS 4
+Manage all the unmanaged windows remaining from a previous session\&.
+.RE
+.PP
+\fBrestore_layout\fR \fIFILE_PATH\fR
+.RS 4
+Restore the layout of each desktop from the content of
+\fIFILE_PATH\fR\&.
+.RE
+.PP
+\fBrestore_history\fR \fIFILE_PATH\fR
+.RS 4
+Restore the history of each desktop from the content of
+\fIFILE_PATH\fR\&.
+.RE
+.PP
+\fBquit\fR [\fIEXIT_STATUS\fR]
+.RS 4
+Quit\&.
+.RE
+.SH "SETTINGS"
+.sp
+Colors are either X color names or \fI#RRGGBB\fR, booleans are \fItrue\fR or \fIfalse\fR\&.
+.sp
+All the boolean settings are \fIfalse\fR by default\&.
+.PP
+\fIfocused_border_color\fR
+.RS 4
+Color of the border of a focused window of a focused monitor\&.
+.RE
+.PP
+\fIactive_border_color\fR
+.RS 4
+Color of the border of a focused window of an unfocused monitor\&.
+.RE
+.PP
+\fInormal_border_color\fR
+.RS 4
+Color of the border of an unfocused window\&.
+.RE
+.PP
+\fIpresel_border_color\fR
+.RS 4
+Color of the
+\fBpresel\fR
+message feedback\&.
+.RE
+.PP
+\fIfocused_locked_border_color\fR
+.RS 4
+Color of the border of a focused locked window of a focused monitor\&.
+.RE
+.PP
+\fIactive_locked_border_color\fR
+.RS 4
+Color of the border of a focused locked window of an unfocused monitor\&.
+.RE
+.PP
+\fInormal_locked_border_color\fR
+.RS 4
+Color of the border of an unfocused locked window\&.
+.RE
+.PP
+\fIurgent_border_color\fR
+.RS 4
+Color of the border of an urgent window\&.
+.RE
+.PP
+\fIborder_width\fR
+.RS 4
+Window border width\&.
+.RE
+.PP
+\fIwindow_gap\fR
+.RS 4
+Value of the gap that separates windows\&.
+.RE
+.PP
+\fIsplit_ratio\fR
+.RS 4
+Default split ratio\&.
+.RE
+.PP
+\fItop_padding\fR, \fIright_padding\fR, \fIbottom_padding\fR, \fIleft_padding\fR
+.RS 4
+Padding space added at the sides of the current monitor\&.
+.RE
+.PP
+\fIwm_name\fR
+.RS 4
+The value that shall be used for the
+\fI_NET_WM_NAME\fR
+property of the root window\&.
+.RE
+.PP
+\fIborderless_monocle\fR
+.RS 4
+Remove borders for tiled windows in monocle mode\&.
+.RE
+.PP
+\fIgapless_monocle\fR
+.RS 4
+Remove gaps for tiled windows in monocle mode\&.
+.RE
+.PP
+\fIfocus_follows_pointer\fR
+.RS 4
+Focus the window under the pointer\&.
+.RE
+.PP
+\fIpointer_follows_monitor\fR
+.RS 4
+When focusing a monitor, put the pointer at its center\&.
+.RE
+.PP
+\fIadaptative_raise\fR
+.RS 4
+Prevent floating windows from being raised when they might cover other floating windows\&.
+.RE
+.PP
+\fIapply_shadow_property\fR
+.RS 4
+Enable shadows for floating windows via the
+\fI_COMPTON_SHADOW\fR
+property\&.
+.RE
+.PP
+\fIauto_alternate\fR
+.RS 4
+Interpret two consecutive identical
+\fBuse\fR
+messages as an
+\fBalternate\fR
+message\&.
+.RE
+.PP
+\fIfocus_by_distance\fR
+.RS 4
+Use window or leaf distance for focus movement\&.
+.RE
+.PP
+\fIhistory_aware_focus\fR
+.RS 4
+Give priority to the focus history when focusing nodes\&.
+.RE
+.SH "ENVIRONMENT VARIABLES"
+.PP
+\fIBSPWM_SOCKET\fR
+.RS 4
+The path of the socket used for the communication between
+\fBbspc\fR
+and
+\fBbspwm\fR\&.
+.RE
+.SH "PANELS"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Any EWMH compliant panel (e\&.g\&.:
+\fItint2\fR,
+\fIbmpanel2\fR, etc\&.)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+A custom panel if the
+\fI\-s\fR
+flag is used (have a look at the files in
+\fIexamples/panel\fR)\&.
+.RE
+.SH "KEY FEATURES"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Configured and controlled through messages\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Multiple monitors support (via
+\fIRandR\fR)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+EWMH support (\fBtint2\fR
+works)\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Automatic and manual modes\&.
+.RE
+.SH "CONTRIBUTORS"
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Ivan Kanakarakis <ivan\&.kanak at gmail\&.com>
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04'\(bu\h'+03'\c
+.\}
+.el \{\
+.sp -1
+.IP \(bu 2.3
+.\}
+Thomas Adam <thomas at xteddy\&.org>
+.RE
+.SH "AUTHOR"
+.sp
+Bastien Dejean <baskerville at lavabit\&.com>
+.SH "MAILING LIST"
+.sp
+bspwm at librelist\&.com
diff --git a/doc/bspwm.1.txt b/doc/bspwm.1.txt
new file mode 100644 (file)
index 0000000..444c1e4
--- /dev/null
@@ -0,0 +1,388 @@
+:man source:   Bspwm
+:man version:  {revnumber}
+:man manual:   Bspwm Manual
+
+bspwm(1)
+========
+
+Name
+----
+
+bspwm - Tiling window manager based on binary space partitioning
+
+Synopsis
+--------
+
+*bspwm* [*-h*|*-v*|*-s* _PANEL_FIFO_|*-p* _PANEL_PREFIX_]
+
+*bspc* _MESSAGE_ [_ARGUMENTS_] [_OPTIONS_]
+
+Description
+-----------
+
+*bspwm* is a tiling window manager that represents windows as the leaves of a full binary tree.
+
+It is controlled and configured via *bspc*.
+
+Configuration
+-------------
+
+*bspwm* have only two sources of informations: the X events it receives and the messages it reads on a dedicated socket.
+
+Its configuration file is _$XDG_CONFIG_HOME/bspwm/autostart_.
+
+Keyboard and pointer bindings are defined with https://github.com/baskerville/sxhkd[sxhkd].
+
+Example configuration files can be found in the *examples* directory.
+
+Splitting Modes
+---------------
+
+There is only two splitting modes: _automatic_ and _manual_.
+
+The default mode is _automatic_. The _manual_ mode is entered by sending a *presel* message.
+
+Example: insertion of a new node (number 4) into the given tree in _automatic_ mode:
+
+----------------------------------------------------------------
+              b                                   c
+             / \                                 / \
+            3   a              -->              4   b
+            ^  / \                              ^  / \
+              2   1                               3   a
+                                                     / \
+                                                    2   1
+ +-------------------------+         +-------------------------+
+ |            |            |         |            |            |
+ |            |     2      |         |            |     3      |
+ |            |            |         |            |            |
+ |     3      |------------|   -->   |     4      |------------|
+ |     ^      |            |         |     ^      |     |      |
+ |            |     1      |         |            |  1  |  2   |
+ |            |            |         |            |     |      |
+ +-------------------------+         +-------------------------+
+----------------------------------------------------------------
+
+Same departure, but the mode is _manual_, and a *presel* _up_ message was sent beforehand:
+
+---------------------------------------------------------------
+             b                                   b
+            / \                                 / \
+           3   a              -->              c   a
+           ^  / \                             / \ / \
+             2   1                           4  3 2  1
+                                             ^
++-------------------------+         +-------------------------+
+|            |            |         |            |            |
+|            |     2      |         |     4      |     2      |
+|            |            |         |     ^      |            |
+|     3      |------------|   -->   |------------|------------|
+|     ^      |            |         |            |            |
+|            |     1      |         |     3      |     1      |
+|            |            |         |            |            |
++-------------------------+         +-------------------------+
+---------------------------------------------------------------
+
+Containers
+----------
+
+Each monitor contains at least one desktop.
+
+Each desktop contains at most one tree.
+
+Messages
+--------
+
+
+*get* _SETTING_::
+    Return the value of the given setting.
+
+*set* _SETTING_ _VALUE_::
+    Set the value of the given setting.
+
+*list* [_DESKTOP_NAME_]::
+    Output the internal representation of the window tree.
+
+*list_desktops* [*--quiet*]::
+    Perform a dump of each desktop for the current monitor.
+
+*list_monitors* [*--quiet*]::
+    Perform a dump of each monitor.
+
+*list_history*::
+    Return the node focus history of each desktop.
+
+*list_windows*::
+    Return the list of managed windows (i.e. their identifiers).
+
+*list_rules*::
+    Return the list of rules.
+
+*presel* _left_|_right_|_up_|_down_ [_SPLIT_RATIO_]::
+    Switch to manual mode and select the splitting direction.
+
+*cancel*::
+    Switch to automatic mode.
+
+*ratio* _VALUE_::
+    Set the splitting ratio of the focused window.
+
+*pad* _MONITOR_NAME_ [_TOP_PADDING_ [_RIGHT_PADDING_ [_BOTTOM_PADDING_ [_LEFT_PADDING_]]]]::
+    Set the padding of the given monitor.
+
+*focus* _left_|_right_|_up_|_down_::
+    Focus the neighbor window situated in the given direction.
+
+*shift* _left_|_right_|_up_|_down_::
+    Exchange the current window with the given neighbor.
+
+*swap* [*--keep-focus*]::
+    Swap the focused window with the last focused window.
+
+*push* _left_|_right_|_up_|_down_::
+    Push the fence located in the given direction.
+
+*pull* _left_|_right_|_up_|_down_::
+    Pull the fence located in the given direction.
+
+*fence_ratio* _left_|_right_|_up_|_down_::
+    Set the splitting ratio of the fence located in the given direction.
+
+*cycle* _next_|_prev_ [*--skip-floating*|*--skip-tiled*|*--skip-class-equal*|*--skip-class-differ*]::
+    Focus the next or previous window matching the given constraints.
+
+*nearest* _older_|_newer_ [*--skip-floating*|*--skip-tiled*|*--skip-class-equal*|*--skip-class-differ*]::
+    Focus the nearest window matching the given constraints.
+
+*biggest*::
+    Return the ID of the biggest tiled window.
+
+*circulate* _forward_|_backward_::
+    Circulate the leaves in the given direction.
+
+*grab_pointer* _focus_|_move_|_resize_side_|_resize_corner_::
+    Begin the specified pointer action.
+
+*track_pointer* _ROOT_X_ _ROOT_Y_::
+    Pass the pointer root coordinates for the current pointer action.
+
+*ungrab_pointer*::
+    End the current pointer action.
+
+*toggle_fullscreen*::
+    Toggle the fullscreen state of the current window.
+
+*toggle_floating*::
+    Toggle the floating state of the current window.
+
+*toggle_locked*::
+    Toggle the locked state of the current window (locked windows will not respond to the *close* message).
+
+*toggle_visibility*::
+    Toggle the visibility of all the managed windows.
+
+*close*::
+    Close the focused window.
+
+*kill*::
+    Kill the focused window.
+
+*send_to* _DESKTOP_NAME_ [*--follow*]::
+    Send the focused window to the given desktop.
+
+*drop_to* _next_|_prev_ [*--follow*]::
+    Send the focused window to the next or previous desktop.
+
+*send_to_monitor* _MONITOR_NAME_ [*--follow*]::
+    Send the focused window to the given monitor.
+
+*drop_to_monitor* _next_|_prev_ [*--follow*]::
+    Send the focused window to the next or previous monitor.
+
+*use* _DESKTOP_NAME_::
+    Select the given desktop.
+
+*use_monitor* _MONITOR_NAME_::
+    Select the given monitor.
+
+*alternate*::
+    Alternate between the current and the last focused window.
+
+*alternate_desktop*::
+    Alternate between the current and the last focused desktop.
+
+*alternate_monitor*::
+    Alternate between the current and the last focused monitor.
+
+*add* _DESKTOP_NAME_ ...::
+    Make new desktops with the given names.
+
+*add_in* _MONITOR_NAME_ _DESKTOP_NAME_ ...::
+    Make new desktops with the given names in the given monitor.
+
+*rename_monitor* _CURRENT_NAME_ _NEW_NAME_::
+    Rename the monitor named _CURRENT_NAME_ to _NEW_NAME_.
+
+*rename* _CURRENT_NAME_ _NEW_NAME_::
+    Rename the desktop named _CURRENT_NAME_ to _NEW_NAME_.
+
+*remove_desktop* _DESKTOP_NAME_ ...::
+    Remove the given desktops.
+
+*send_desktop_to* _MONITOR_NAME_ [*--follow*]::
+    Send the current desktop to the given monitor.
+
+*cycle_monitor* _next_|_prev_::
+    Select the next or previous monitor.
+
+*cycle_desktop* _next_|_prev_ [*--skip-free*|*--skip-occupied*]::
+    Select the next or previous desktop.
+
+*layout* _monocle_|_tiled_ [_DESKTOP_NAME_ ...]::
+    Set the layout of the given desktops (current if none given).
+
+*cycle_layout*::
+    Cycle the layout of the current desktop.
+
+*rotate* _clockwise_|_counter_clockwise_|_full_cycle_::
+    Rotate the window tree.
+
+*flip* _horizontal_|_vertical_::
+    Flip the window tree.
+
+*balance*::
+    Adjust the split ratios so that all windows occupy the same area.
+
+*rule* _PATTERN_ [_DESKTOP_NAME_] [_floating_] [_follow_]::
+    Create a new rule (_PATTERN_ must match the class or instance name).
+
+*remove_rule* _UID_ ...::
+    Remove the rules with the given _UIDs_.
+
+*put_status*::
+    Output the current state to the panel fifo.
+
+*adopt_orphans*::
+    Manage all the unmanaged windows remaining from a previous session.
+
+*restore_layout* _FILE_PATH_::
+    Restore the layout of each desktop from the content of _FILE_PATH_.
+
+*restore_history* _FILE_PATH_::
+    Restore the history of each desktop from the content of _FILE_PATH_.
+
+*quit* [_EXIT_STATUS_]::
+    Quit.
+
+Settings
+--------
+Colors are either http://en.wikipedia.org/wiki/X11_color_names[X color names] or _#RRGGBB_, booleans are _true_ or _false_.
+
+All the boolean settings are _false_ by default.
+
+
+_focused_border_color_::
+    Color of the border of a focused window of a focused monitor.
+
+_active_border_color_::
+    Color of the border of a focused window of an unfocused monitor.
+
+_normal_border_color_::
+    Color of the border of an unfocused window.
+
+_presel_border_color_::
+    Color of the *presel* message feedback.
+
+_focused_locked_border_color_::
+    Color of the border of a focused locked window of a focused monitor.
+
+_active_locked_border_color_::
+    Color of the border of a focused locked window of an unfocused monitor.
+
+_normal_locked_border_color_::
+    Color of the border of an unfocused locked window.
+
+_urgent_border_color_::
+    Color of the border of an urgent window.
+
+_border_width_::
+    Window border width.
+
+_window_gap_::
+    Value of the gap that separates windows.
+
+_split_ratio_::
+    Default split ratio.
+
+_top_padding_, _right_padding_, _bottom_padding_, _left_padding_::
+    Padding space added at the sides of the current monitor.
+
+_wm_name_::
+    The value that shall be used for the '_NET_WM_NAME' property of the root window.
+
+_borderless_monocle_::
+    Remove borders for tiled windows in monocle mode.
+
+_gapless_monocle_::
+    Remove gaps for tiled windows in monocle mode.
+
+_focus_follows_pointer_::
+    Focus the window under the pointer.
+
+_pointer_follows_monitor_::
+    When focusing a monitor, put the pointer at its center.
+
+_adaptative_raise_::
+    Prevent floating windows from being raised when they might cover other floating windows.
+
+_apply_shadow_property_::
+    Enable shadows for floating windows via the '_COMPTON_SHADOW' property.
+
+_auto_alternate_::
+    Interpret two consecutive identical *use* messages as an *alternate* message.
+
+_focus_by_distance_::
+    Use window or leaf distance for focus movement.
+
+_history_aware_focus_::
+    Give priority to the focus history when focusing nodes.
+
+Environment Variables
+---------------------
+
+_BSPWM_SOCKET_::
+  The path of the socket used for the communication between *bspc* and *bspwm*.
+
+Panels
+------
+
+* Any EWMH compliant panel (e.g.: _tint2_, _bmpanel2_, etc.).
+* A custom panel if the _-s_ flag is used (have a look at the files in _examples/panel_).
+
+Key Features
+------------
+
+* Configured and controlled through messages.
+* Multiple monitors support (via _RandR_).
+* EWMH support (*tint2* works).
+* Automatic and manual modes.
+
+Contributors
+------------
+
+* Ivan Kanakarakis <ivan.kanak at gmail.com>
+* Thomas Adam <thomas at xteddy.org>
+
+Author
+------
+
+Bastien Dejean <baskerville at lavabit.com>
+
+Mailing List
+------------
+
+bspwm at librelist.com
+
+////
+vim: set ft=asciidoc:
+////
diff --git a/doc/header.txt b/doc/header.txt
new file mode 100644 (file)
index 0000000..414f415
--- /dev/null
@@ -0,0 +1,2 @@
+image:https://github.com/baskerville/bspwm/raw/master/logo/bspwm-logo.png[logo]
+
diff --git a/doc/man.template b/doc/man.template
deleted file mode 100644 (file)
index ce670df..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-.TH "$name$" 1 "$date$" "$title$"
-.SH NAME
-$name$ - Tiling window manager based on binary space partitioning
-$body$
-.SH CONTRIBUTORS
-.IP \[bu] 2
-Ivan Kanakarakis <ivan.kanak at gmail.com>
-.IP \[bu] 2
-Thomas Adam <thomas at xteddy.org>
-.SH AUTHOR
-$author$ <baskerville at lavabit.com>
-.SH HOMEPAGE
-https://github.com/baskerville/$name$
diff --git a/doc/man_filter.hs b/doc/man_filter.hs
deleted file mode 100644 (file)
index 235da91..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-import Text.Pandoc
-import Data.Char (toUpper)
-
-main :: IO ()
-main = toJsonFilter (capitalizeHeaders . bottomUp delink)
-
-capitalizeHeaders :: Block -> Block
-capitalizeHeaders (Header 1 attr xs) = Header 1 attr $ bottomUp capitalize xs
-capitalizeHeaders x                  = x
-
-capitalize :: Inline -> Inline
-capitalize (Str xs) = Str $ map toUpper xs
-capitalize x        = x
-
-delink :: [Inline] -> [Inline]
-delink ((Link txt _) : xs) = txt ++ delink xs
-delink ((Image _ _) : xs)  = []
-delink (x : xs)            = x : delink xs
-delink []                  = []
diff --git a/doc/quirks.patch b/doc/quirks.patch
deleted file mode 100644 (file)
index 3007904..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-diff -ru a/README.asciidoc b/README.asciidoc
---- a/README.asciidoc  2013-06-24 22:46:06.915021108 +0200
-+++ b/README.asciidoc  2013-06-24 22:48:26.871141944 +0200
-@@ -6,7 +6,7 @@
- *bspwm* [*-h*|*-v*|*-s* _PANEL_FIFO_|*-p* _PANEL_PREFIX_]
--*bspc* _MESSAGE_ [_ARGUMENTS_][*OPTIONS*]
-+*bspc* _MESSAGE_ [_ARGUMENTS_] [_OPTIONS_]
- [[description]]
- Description
-@@ -195,7 +195,7 @@
-   Flip the window tree.
- *balance*::
-   Adjust the split ratios so that all windows occupy the same area.
--*rule* _PATTERN_ [_DESKTOP_NAME_][*floating*] [_follow_]::
-+*rule* _PATTERN_ [_DESKTOP_NAME_] [_floating_] [_follow_]::
-   Create a new rule (_PATTERN_ must match the class or instance name).
- *remove_rule* _UID_ ...::
-   Remove the rules with the given _UID_s.
-diff -ru a/bspwm.1 b/bspwm.1
---- a/bspwm.1  2013-06-24 22:46:06.915021108 +0200
-+++ b/bspwm.1  2013-06-24 22:47:12.031433820 +0200
-@@ -6,7 +6,7 @@
- .PP
- \f[B]bspwm\f[] [\f[B]\-h\f[]|\f[B]\-v\f[]|\f[B]\-s\f[] \f[I]PANEL_FIFO\f[]|\f[B]\-p\f[] \f[I]PANEL_PREFIX\f[]]
- .PP
--\f[B]bspc\f[] \f[I]MESSAGE\f[] [\f[I]ARGUMENTS\f[]][*OPTIONS*]
-+\f[B]bspc\f[] \f[I]MESSAGE\f[] [\f[I]ARGUMENTS\f[]] [\f[I]OPTIONS\[]]
- .SH DESCRIPTION
- .PP
- \f[B]bspwm\f[] is a tiling window manager that represents windows as the leaves of a full binary tree.
-@@ -345,7 +345,7 @@
- .RS
- .RE
- .TP
--.B \f[B]rule\f[] \f[I]PATTERN\f[] [\f[I]DESKTOP_NAME\f[]][*floating*] [\f[I]follow\f[]]
-+.B \f[B]rule\f[] \f[I]PATTERN\f[] [\f[I]DESKTOP_NAME\f[]] [\f[I]floating\f[]] [\f[I]follow\f[]]
- Create a new rule (\f[I]PATTERN\f[] must match the class or instance name).
- .RS
- .RE