c3status is a simple status line generator for i3bar written in C.
The main goal of c3status is to be simple to understand and easily extensible by writing functions and recompile the code, which allow you to display almost anything in your status bar. c3status is designed to be as lightweight as possible by using system calls and by getting info at a low level without needing to run shell commands.
Even if c3status aims to be extensible by anyone using it, I obviously wrote some functions for my personal use, and I plan to write some more, here is what is currently available and what will probably be:
- Basic infos:
- System time and/or date
- Alsa volume
- System infos:
- CPU usage
- CPU temperature
- RAM usage (in %)
- GPU temperature
- Disks usage (in %)
- Network infos:
- Network download and upload speed
- Wifi ESSID
- Wifi signal percentage
- Battery infos:
- Battery percentage
- Battery state
- Possibility to select another battery than BAT0
- Remaining time on battery
- Other infos:
- ncmpcpp current playing music
- moc current playing music
- Other things to do:
- Cleaner and easier way to configure c3status (main C file is currently the only way to configure it)
- Better errors handling
- Real makefile
- Man page
- Better command line arguments handling
- Real config file (instead of config.h + recompile)
To build c3status you will need to install a few dependencies which are Alsa and Wireless-tools development files. Under Debian 8 "Jessie" you can have those by installing the following packages:
libasound2-dev
libiw-dev
You can install those with:
apt-get install libasound2-dev libiw-dev
Additionally, if you want to rebuild the man page of c3status, you will need those packages:
asciidoc
libxml2-utils
docbook-xml
xsltproc
Note that you should use apt-get install --no-install-recommends
for installing the asciidoc package as apt-get will try to install a lot of recommended yet useless packages.
Those packages should be available under any Linux distribution, though their names may vary.
If you want to rebuild the documentation (for now it is only a HTML version of the present README), you will need the pandoc
package.
Installing c3status is quite easy:
$ git clone "https://github.com/Sudiukil/c3status"
$ cd c3status
# make install
Then you need to modify the status_command line in you i3wm config file to use c3status:
status_command c3status
You can also specify an update interval in seconds (default is 1) with the '-t' option:
status_command c3status -t 5
To change what is displayed by c3status you need to edit a config.h file.
Provided config.example.h displays a few informations on the status bar and quickly explains how to write your config.h. You can also see the man page for more info about the way to configure c3status.
c3status is licensed under the ISC license, see LICENSE for complete copy.