Xinqi Bao's Git

status_string can hold 4096 bytes now
[slstatus.git] / README.md
1 slstatus
2 ========
3
4 **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).
5
6 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.
7
8 Looking at the LOC (lines of code) in the [Conky project](https://github.com/brndnmtthws/conky) is very interesting: *28.346 lines C++, 219 lines Python and 110 lines Lua*. slstatus currently has about **600 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.
9
10 The following information is included:
11
12 - battery percentage
13 - cpu usage (in percent)
14 - custom shell commands
15 - date and time
16 - disk numbers (free storage, percentage, total storage and used storage)
17 - available entropy
18 - username/gid/uid of current user
19 - hostname
20 - ip addresses
21 - load average
22 - ram numbers (free ram, percentage, total ram and used ram)
23 - temperature
24 - uptime
25 - volume percentage + mute status (alsa)
26 - wifi signal percentage and essid
27
28 Multiple entries per function are supported and everything can be reordered and customized via the C header file config.h (similar to DWM).
29
30 ## Usage
31
32 ### Installation
33
34 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`!
35
36 ### Starting
37
38 Put the following code in your ~/.xinitrc (or similar):
39
40 ```
41 while true; do
42 slstatus
43 done &
44 ```
45
46 The loop is needed that the program runs after suspend to ram.
47
48 ## Contributing
49
50 In [TODO.md](TODO.md) there is a list of things that have to be done.
51
52 People who contributed are listed in [CONTRIBUTORS.md](CONTRIBUTORS.md).
53
54 For detailed information about coding style and restrictions see [CONTRIBUTING.md](CONTRIBUTING.md)
55
56 ## License
57
58 See [LICENSE](LICENSE).