status monitor
Go to file
Aaron Marcher ad8ab20c63 Formatting commit :(
I know formatting commits suck... And I try to avoid them.

But this commit was absolutely necessary... The coding style in this
program was not ok and not the same over the whole program.

The commit is hard to read, but this is what I changed:
- Tabs for indentation instead of spaces
- Same style over the whole program (suckless style)
2016-08-16 11:41:43 +02:00
.gitignore added config.def.h handling and fixed typo 2016-03-04 18:36:47 +01:00
CONTRIBUTING.md Formatting commit :( 2016-08-16 11:41:43 +02:00
CONTRIBUTORS.md Changes to documentation and new screenshot. 2016-03-20 14:18:05 +01:00
LICENSE this project is now licensed under the ISC license 2016-08-15 16:10:42 +02:00
Makefile make config.h target depending on config.def.h 2016-03-10 11:55:12 +01:00
README.md Formatting commit :( 2016-08-16 11:41:43 +02:00
TODO.md Added icon to TODO.md 2016-03-20 17:07:00 +01:00
config.def.h Formatting commit :( 2016-08-16 11:41:43 +02:00
config.mk simplify smprintf by using vasprintf 2016-03-10 11:49:48 +01:00
screenshot.png Changes to documentation and new screenshot. 2016-03-20 14:18:05 +01:00
slstatus.c Formatting commit :( 2016-08-16 11:41:43 +02:00
slstatus.h Formatting commit :( 2016-08-16 11:41:43 +02:00

README.md

slstatus

slstatus is a suckless and lightweight status monitor for window managers which use WM_NAME as statusbar (e.g. DWM). It is written in pure C without any system() calls and only reads from files most of the time. It is meant as a better alternative to Bash scripts (inefficient) and Conky (bloated for this use).

If you write a bash script that shows system information in WM_NAME, it executes a huge amount of external command (top, free etc.) every few seconds. This results in high system resource usage. slstatus solves this problem by only using C libraries and/or reading from files in sysfs / procfs.

Looking at the LOC (lines of code) in the Conky project is very interesting: 28.346 lines C++, 219 lines Python and 110 lines Lua. slstatus currently has about 500 lines of clean, well commented C code and even includes additional possibilities as it can be customized and extended very easily. Configuring it by editing config.h (a C header file) is very secure and fast as no config files are parsed at runtime.

The following information is included:

  • battery percentage
  • cpu usage (in percent)
  • custom shell commands
  • date and time
  • disk numbers (free storage, percentage, total storage and used storage)
  • available entropy
  • hostname
  • ip addresses
  • ram numbers (free ram, percentage, total ram and used ram)
  • temperature
  • volume percentage (alsa)
  • wifi percentage and essid

Multiple entries per function are supported and everything can be reordered and customized via the C header file config.h (similar to DWM).

screenshot

Usage

Installation

Before you continue, please be sure that a C compiler, GNU make and alsa-lib (for volume percentage) are installed. Then copy config.def.h to config.h and edit it to your needs. Recompile and install it after every change via sudo make install!

Starting

Put the following code in your ~/.xinitrc (or similar):

while true; do
	slstatus
done &

The loop is needed that the program runs after suspend to ram.

Contributing

In TODO.md there is a list of things that have to be done.

People who contributed are listed in CONTRIBUTORS.md.

For detailed information about coding style and restrictions see CONTRIBUTING.md

License

See LICENSE.