1
0

README update

This commit is contained in:
Ali H. Fardan 2016-08-23 14:11:55 +03:00
parent f9f72a06f1
commit b79837b075

View File

@ -1,29 +1,29 @@
slstatus 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). **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. 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](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. Looking at the LOC (lines of code) of the [Conky project](https://github.com/brndnmtthws/conky), very interesting: *28.346 lines C++, 219 lines Python and 110 lines Lua*. slstatus currently has about **800 lines of clean documented C code** and even includes additional possibilities as it can be customized and extended very easily. Configure it by customizing the config.h (C header file) which is secure and fast as no config files are parsed at runtime.
The following information is included: The following information is included:
- battery percentage - Battery percentage
- cpu usage (in percent) - CPU usage (in percent)
- custom shell commands - Custom shell commands
- date and time - Date and time
- disk numbers (free storage, percentage, total storage and used storage) - Disk[s] status (free storage, percentage, total storage and used storage)
- available entropy - Available entropy
- username/gid/uid of current user - username/gid/uid
- hostname - Hostname
- ip addresses - IP addresses
- load average - Load average
- ram numbers (free ram, percentage, total ram and used ram) - Memory status (free memory, percentage, total memory and used memory)
- temperature - Temperature
- uptime - Uptime
- volume percentage + mute status (alsa) - Volume percentage + mute status (alsa)
- wifi signal percentage and essid - WiFi signal 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). Multiple entries per function are supported and everything can be reordered and customized via the C header file config.h (similar to DWM).
@ -31,11 +31,14 @@ Multiple entries per function are supported and everything can be reordered and
### Installation ### 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`! Before you continue, please be sure that a C compiler (preferrably gcc), GNU make and `alsa-lib` (for volume percentage) are installed. Then copy config.def.h to config.h and customize it to fit your needs. Recompile and install it after modifications:
$ make clean all
# make install
### Starting ### Starting
Put the following code in your ~/.xinitrc (or similar): Write the following code in your ~/.xinitrc (or any other initialization script):
``` ```
while true; do while true; do