Преглед на файлове

Port battery_remaining to Linux

Additionally unify the format of battery_state and uptime
master
Aaron Marcher преди 6 години
родител
ревизия
f170028527
променени са 2 файла, в които са добавени 32 реда и са изтрити 4 реда
  1. +1
    -1
      README
  2. +31
    -3
      components/battery.c

+ 1
- 1
README Целия файл

@@ -6,7 +6,7 @@ slstatus is a suckless status monitor for window managers that use WM_NAME

Features
--------
- Battery percentage/state
- Battery percentage/state/time left
- CPU usage
- CPU frequency
- Custom shell commands


+ 31
- 3
components/battery.c Целия файл

@@ -49,8 +49,36 @@
const char *
battery_remaining(const char *bat)
{
/* TODO: Implement */
return NULL;
int charge_now, current_now, m, h;
float timeleft;
char path[PATH_MAX], state[12];

snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/",
bat, "/status");
if (pscanf(path, "%12s", state) != 1) {
return NULL;
}

if (!strcmp(state, "Discharging")) {
snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/",
bat, "/charge_now");
if (pscanf(path, "%i", &charge_now) != 1) {
return NULL;
}
snprintf(path, sizeof(path), "%s%s%s", "/sys/class/power_supply/",
bat, "/current_now");
if (pscanf(path, "%i", &current_now) != 1) {
return NULL;
}

timeleft = (float)charge_now / (float)current_now;
h = timeleft;
m = (timeleft - (float)h) * 60;

return bprintf("%dh %dm", h, m);
}

return "";
}
#elif defined(__OpenBSD__)
#include <fcntl.h>
@@ -122,7 +150,7 @@

if (load_apm_power_info(&apm_info)) {
if (apm_info.ac_state != APM_AC_ON) {
return bprintf("%u:%02u", apm_info.minutes_left / 60,
return bprintf("%uh %02um", apm_info.minutes_left / 60,
apm_info.minutes_left % 60);
} else {
return "";


Зареждане…
Отказ
Запис