bspwm is a tiling window manager that represents windows as the leaves of a full binary tree.
It only responds to X events, and the messages it receives on a dedicated socket.
bspc is a program that writes messages on bspwm's socket.
bspwm doesn't handle any keyboard or pointer inputs: a third party program (e.g. sxhkd) is needed in order to translate keyboard and pointer events to bspc invocations.
The outlined architecture is the following:
PROCESS SOCKET sxhkd --------> bspc <------> bspwm
The default configuration file is
$XDG_CONFIG_HOME/bspwm/bspwmrc: this is simply a shell script that calls bspc.
An argument is passed to that script to indicate whether is was executed after a restart (
$1 -gt 0) or not (
$1 -eq 0).
Keyboard and pointer bindings are defined with sxhkd.
Example configuration files can be found in the examples directory.…