===== HERBSTLUFTWM =====

Copyright 2011 Thorsten Wißmann. All rights reserved.

This software is licensed under the "Simplified BSD License".
See LICENSE for details.

==== Requirements ====
Build dependencies:
    - build-environment (gcc/other compiler, make)
    - asciidoc (only when building from git, not when building from tarball)
Runtime dependencies:
    - bash (if you use the default autostart file)
    - glib >= 2.24
    - libx11

==== Help/Support/Bugs ====
A list of known bugs is listed in BUGS. If you found other bugs or need help
(or want to make suggestions about the internal structure to provide a
statusbar with dzen2), then contact:
    Thorsten Wißmann <edu _at _ thorsten _minus_ wissmann _dot_ de>
or join the IRC channel:
    #herbstluftwm on irc.freenode.net

==== Steps with installing ====
If you are using a system with a package manager, then install it via the
package manager of your distribution! If you are not allowed to install
software, then contact your system administrator.

You only need to install it manually if you do not like package managers or if
you are creating a package for your distribution.

The compilation and installation is configured by the following make-variables
in config.mk:

INSTALLDIR = / # the path to your root-directory
PREFIX = $(INSTALLDIR)/usr/ # the prefix
ETCDIR = $(INSTALLDIR)/etc/ # path to etc directory

Normally you should build it with INSTALLDIR=/ and install it with
INSTALLDIR=./path/to/fakeroot if you are building a package.

# as user
make INSTALLDIR=/
# as root
make INSTALLDIR=./build/ install
# as user
mkdir -p ~/.config/herbstluftwm/
cp /etc/xdg/herbstluftwm/autostart ~/.config/herbstluftwm/autostart

==== First steps without installing ====
# 1. compile it
make
# 2. copy ipc-client/herbstclient to a bin-folder or adjust path in autostart file
# 3. copy default autostart file to the config-dir (~/.config/herbstluftwm/)
mkdir -p "$XDG_CONFIG_HOME/herbstluftwm"
cp share/autostart "$XDG_CONFIG_HOME"/herbstluftwm
# 4. add the share/herbstclient-completion to your /etc/bash_completion.d/ folder
#    or source it in your bashrc
# 5. run it in a session that has no windowmanager yet

==== Internal structure ====
The internal structure of herbstluftwm is as follows:

all boxes are C-Modules (e.g. $name.c-files)


                                                                                                                                    
                                                                                                                                    
                                                                                                                                    
                           X11                                                                                                      
                            |                                                                                                       
                            V                                                                                                       
                        +--------+  key  +-----+ call  +---------+                                                                  
                        |  main  |------>| key |------>| command |                                                                  
                        +--------+ event +-----+       +---------+                                                                  
                            \                    output /  ^                                                                        
                     IPC-Call\      +------------+<----'  / Execute                                                                 
                      -Window `---->| ipc-server |-------'  IPC-Call                                                                
                        -Event      +------------+                                                                                  
                                           |                                                                                        
                                           V                                                                                        
                                          X11                                                                                       
herbstclient is rather simple:

 Command-Line-   +------+
   Arguments --->| main |----.
                 |      |   X11
    stdout  <----|      |<---'
                 +------+





// vim: nowrap
