added cpu usage to statline
makefile now has configurable options
This commit is contained in:
parent
8f5152206b
commit
c3917e34b1
@ -1,11 +1,19 @@
|
||||
# Here are the configuraable options
|
||||
# LAPTOP : enable batter level
|
||||
# CPU_USAGE : CPU usage in percentage
|
||||
# DEBUG : for fixing issues
|
||||
|
||||
# NOTE: the -D is needed for gcc
|
||||
# MFLAGS= -D MY_OPTION -D ANOTHER_OPT ...
|
||||
MFLAGS=-D LAPTOP -D CPU_USAGE
|
||||
|
||||
|
||||
flags=-O2 -s -lX11
|
||||
output=statline
|
||||
stat:
|
||||
gcc -o $(output) status.c $(flags)
|
||||
|
||||
laptop:
|
||||
# compiling with LAPTOP=1
|
||||
gcc -D LAPTOP=1 status.c -o $(output) $(flags)
|
||||
|
||||
stat:
|
||||
gcc $(MFLAGS) -o $(output) status.c $(flags)
|
||||
|
||||
run:
|
||||
./statline
|
||||
|
@ -20,6 +20,7 @@
|
||||
// Time in seconds
|
||||
#define TIME_DELAY 5
|
||||
#define MAXSTR 1024
|
||||
#define SMALL_BUF 32
|
||||
|
||||
#define MEM_BREAD_SIZE 32
|
||||
#define STD_IO
|
||||
@ -91,11 +92,39 @@ battery_percentage(void)
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef CPU_USAGE
|
||||
// stat(2) ->
|
||||
#define CPU_PROC_BASE
|
||||
#define TOTAL "head /proc/stat -n 1 | cut -c 6- | sed 's/ /\\+/g' | bc"
|
||||
#define IDLE "head /proc/stat -n 1 | cut -c 6- | awk '{print $4}'"
|
||||
static char*
|
||||
cpu_usage(void)
|
||||
{
|
||||
return "CPU Usage Placeholder";
|
||||
// NOTE: not accounting for the query so this may be somewhat off by some metric
|
||||
// Grabbing the total usage
|
||||
FILE* query_p;
|
||||
static char buf[SMALL_BUF];
|
||||
unsigned total, idle;
|
||||
// get the total time
|
||||
query_p = popen(TOTAL, "r");
|
||||
fgets(buf, sizeof(buf)-1, query_p);
|
||||
total = atoi(buf);
|
||||
pclose(query_p);
|
||||
|
||||
// get the idle time
|
||||
query_p = popen(IDLE, "r");
|
||||
fgets(buf, sizeof(buf)-1, query_p);
|
||||
idle = atoi(buf);
|
||||
pclose(query_p);
|
||||
|
||||
double usage = 1.00 - ((double)idle / (double)total);
|
||||
#ifdef DEBUG
|
||||
printf("IDLE/TOTAL = %.02f\n", usage);
|
||||
#endif
|
||||
sprintf(buf, "CPU: %.02f % ", usage);
|
||||
return buf;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
XSetRoot(char* name)
|
||||
@ -122,6 +151,9 @@ main(void)
|
||||
date_time,
|
||||
#ifdef LAPTOP
|
||||
battery_percentage,
|
||||
#endif
|
||||
#ifdef CPU_USAGE
|
||||
cpu_usage,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user