~andreafeletto/cstatus

4f924f9c920390e25888d963ae73161b3f508be2 — Andrea Feletto 2 months ago 2d7dcd2
updated README.md
1 files changed, 10 insertions(+), 34 deletions(-)

M README.md
M README.md => README.md +10 -34
@@ 1,49 1,25 @@

status
======
![screenshot](./screenshot.png)

When run with no arguments the program runs as a daemon.
When run with an argument it serves as a remote control for the daemon.

The intended way to use cstatus is to run it with the `-d` flag on startup,
which spawns the daemon in the background and prevents multiple daemons running
at the same time.

When the daemon receives a `USR1` signal, which can be sent with `cstatus -r`,
it refreshes instantly without waiting the default 10 seconds.
![screenshot](./screenshot.png)

To stop the daemon either run `cstatus -s` or `pkill cstatus`. 
Minimal, modular and POSIX compliant statusbar for dwm written in C99.

Installation
------------
For a system-wide installation run:
```
sudo make install clean
```
For a local installation run:
-------------
The program can be compiled and installed with `make`:
```
sudo make local clean
$ make
# make install clean
```

Dependencies
------------
* `xsetroot` is used to update the content of the statusbar
* `pulsemixer` is needed for the volume block
* `libx11` for updating the content of the statusbar
* `libasound` (alsa-lib) for reading the volume

Configuration
-------------
* edit `config.h` to change the separator and the list of blocks.
* edit `blocks.h` to add/edit/remove blocks

Runtime Files
-------------
The program is [XDG Base Directory][] compliant.
`$XDG_DATA_HOME` defaults to `$HOME/.local/share` and `$HOME` defaults to `$(pwd)`.

The following files are created and are needed for the program to work properly:
* `$XDG_DATA_HOME/cstatus/cstatus.pid` is used to track the pid of the daemon
* logs are appended to `$XDG_BASE_HOME/cstatus/cstatus.log`

[XDG Base Directory]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

Edit `config.h` to change the separator and the list of components.
Every component can have its own configuration in the form of macros.