49 lines
1.1 KiB
C
49 lines
1.1 KiB
C
|
/***************************************/
|
||
|
/*** c0dev0ids lazy ass sdorfehs bar ***/
|
||
|
/***************************************/
|
||
|
static char * fifo_path = "/home/sdk/.config/sdorfehs/bar";
|
||
|
|
||
|
#include <stdio.h>
|
||
|
//#include <string.h>
|
||
|
//#include <fcntl.h>
|
||
|
//#include <sys/ioctl.h>
|
||
|
//#include <sys/stat.h>
|
||
|
//#include <sys/types.h>
|
||
|
//#include <unistd.h>
|
||
|
//#include <machine/apmvar.h>
|
||
|
|
||
|
char * juice()
|
||
|
{
|
||
|
int fd;
|
||
|
char buf[2];
|
||
|
struct apm_power_info pi;
|
||
|
|
||
|
if ((fd = open("/dev/apm", O_RDONLY)) == -1 ||
|
||
|
ioctl(fd, APM_IOC_GETPOWER, &pi) == -1 ||
|
||
|
close(fd) == -1)
|
||
|
return "??";
|
||
|
|
||
|
if (pi.battery_state == APM_BATT_UNKNOWN ||
|
||
|
pi.battery_state == APM_BATTERY_ABSENT)
|
||
|
return "??";
|
||
|
|
||
|
return snprintf(buf, sizeof(buf), "%i", pi.battery_life);
|
||
|
}
|
||
|
|
||
|
int main() {
|
||
|
int fifo_fd;
|
||
|
int i = 0;
|
||
|
while(1) {
|
||
|
fifo_fd = open(fifo_path, O_NONBLOCK | O_WRONLY);
|
||
|
char str[255] = "";
|
||
|
|
||
|
snprintf(str, sizeof(str), "Battery: %s%%\n",juice());
|
||
|
|
||
|
write(fifo_fd, str, strlen(str)+1);
|
||
|
close(fifo_fd);
|
||
|
|
||
|
sleep(1);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|