cherry (π) is a minimal floating window manager for X11, written in C, using XCB and Lua 5.3.
π takes inspiration from awesome (regarding Lua configuration) as well as berry for the name.
All configuration is done through a configuration file, or the named pipe (discussed below). A configuration file is not needed. Sensible defaults will be provided in the absence of one.
By default, π will look in the location specified by the -c option. If no option is provided, π will:
- check if the
XDG_CONFIG_HOMEenvironment variable exists.- if so, the resulting location will be:
$XDG_CONFIG_HOME/cherry/cherry.lua. - if not, default to:
$HOME/.config/cherry/cherry.lua.
- if so, the resulting location will be:
π will attempt to create a named FIFO pipe at the location specified by the config variable fifo_path, which defaults to /tmp/cherry.
Communication over this pipe can be done with cherryc. As of August 1 2020, you can use cherryc to:
- reload the configuration file:
-r - create new tags/switch to a pre-existing tag:
-t - specify a custom pipe location:
-f
An example usage, combining all options, would be cherryc -rtexample -f/tmp/example. cherryc configuration does not persist.
Compiling π yourself is as easy as installing Lua 5.3 and XCB, cloning the repository, then running make.
Due to how tiny the π codebase is, full compilation should only take a few seconds at most.
cherryc can be compiled with make cherryc.