Add basic backlight percentage support

At the moment linux only, but will add support for OpenBSD as well.
This commit is contained in:
David Demelier 2018-05-22 09:23:29 +02:00 committed by Aaron Marcher
parent cbbf59fd3d
commit 37724ac2c3
6 changed files with 41 additions and 0 deletions

View File

@ -6,6 +6,7 @@ include config.mk
REQ = util
COM =\
components/backlight\
components/battery\
components/cpu\
components/datetime\

1
README
View File

@ -6,6 +6,7 @@ slstatus is a suckless status monitor for window managers that use WM_NAME
Features
--------
- Backlight percentage
- Battery percentage/state/time left
- CPU usage
- CPU frequency

32
components/backlight.c Normal file
View File

@ -0,0 +1,32 @@
/* See LICENSE file for copyright and license details. */
#include "../util.h"
#if defined(__linux__)
#include <limits.h>
#define BRIGHTNESS_MAX "/sys/class/backlight/%s/max_brightness"
#define BRIGHTNESS_CUR "/sys/class/backlight/%s/brightness"
const char *
backlight_perc(const char *card)
{
char path[PATH_MAX];
int max, cur;
if (esnprintf(path, sizeof (path), BRIGHTNESS_MAX, card) < 0 ||
pscanf(path, "%d", &max) != 1) {
return NULL;
}
if (esnprintf(path, sizeof (path), BRIGHTNESS_CUR, card) < 0 ||
pscanf(path, "%d", &cur) != 1) {
return NULL;
}
if (max == 0) {
return NULL;
}
return bprintf("%d", cur * 100 / max);
}
#endif

View File

@ -12,6 +12,8 @@ static const char unknown_str[] = "n/a";
/*
* function description argument (example)
*
* backlight_perc backlight percentage device name
* (intel_backlight)
* battery_perc battery percentage battery name (BAT0)
* NULL on OpenBSD
* battery_state battery charging state battery name (BAT0)

View File

@ -1,5 +1,8 @@
/* See LICENSE file for copyright and license details. */
/* backlight */
const char *backlight_perc(const char *);
/* battery */
const char *battery_perc(const char *);
const char *battery_state(const char *);

2
util.h
View File

@ -1,4 +1,6 @@
/* See LICENSE file for copyright and license details. */
#include <stddef.h>
extern char buf[1024];
#define LEN(x) (sizeof (x) / sizeof *(x))