diff options
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | battery.c | 40 | ||||
| -rw-r--r-- | block.c | 6 | ||||
| -rw-r--r-- | bstatus.c | 8 | ||||
| -rwxr-xr-x | cmus-status | 18 | ||||
| -rw-r--r-- | cmus.c | 10 | ||||
| -rw-r--r-- | cpu.c | 3 | ||||
| -rw-r--r-- | datetime.c | 3 | ||||
| -rw-r--r-- | mem.c | 17 | ||||
| -rw-r--r-- | scrbr.c | 37 |
10 files changed, 77 insertions, 67 deletions
@@ -25,7 +25,7 @@ The modules aren't directly portable, I'd say to modify and port it than to comp - [x] battery - [x] cpu - [x] memory -- [x] brightness (screen) +- [x] screen brightness - [ ] volume - [ ] network @@ -4,26 +4,30 @@ #define bat_val(f, n)\ while((c = fgetc(f)) != '\n') n = 10 * n + (c - '0') #define bat_open(f,F) if (!f) f = fopen(BATDIR"/"F,"r") -#define EN fenergy_now -#define EF fenergy_full -#define ST fbat_status -FILE *EN, *EF, *ST; +FILE *fenergy_now, *fenergy_full, *fbat_status; float bat_p; int bat_state, bat_delay = 6; char bat_str[13]; -void battery(void) { +void battery(void) +{ if (bat_delay++ < 6) goto show_stat; else bat_delay = 0; - bat_open(EN,"energy_now"); - bat_open(EF,"energy_full"); - bat_open(ST,"status"); - if (fenergy_now) { - int c, en_n, ef_n; - rewind(EN); rewind(EF); rewind(ST); - en_n = ef_n = 0; - bat_val(fenergy_now, en_n); - bat_val(fenergy_full, ef_n); - bat_p = (float)en_n * 100 / ef_n; + + bat_open(fenergy_now,"energy_now"); + bat_open(fenergy_full,"energy_full"); + bat_open(fbat_status,"status"); + + if (fenergy_now) + { + int energy_now, energy_full; + rewind(fenergy_now); + rewind(fenergy_full); + rewind(fbat_status); + energy_now = energy_full = 0; + int c; + bat_val(fenergy_now, energy_now); + bat_val(fenergy_full, energy_full); + bat_p = (float)energy_now * 100 / energy_full; char *icon; bat_state = fgetc(fbat_status); switch(bat_state) { @@ -34,8 +38,10 @@ void battery(void) { else if (bat_p > 30) icon = " "; else if (bat_p > 10) icon = " "; else icon = " "; - } snprintf(bat_str,13,"%s %02.2f%%",icon,bat_p); - } show_stat: + } + snprintf(bat_str,13,"%s %02.2f%%",icon,bat_p); + } +show_stat: if (bat_state == 'D' && bat_p >= 30) block(bat_str,"#222222","#83a59899","#83a59899"); else if (bat_p < 30) @@ -1,9 +1,7 @@ #include <stdio.h> #define BORDER_WIDTH "10" -void block( - char *text, char *fg, - char *bg, char *bc -){ +void block(char *text, char *fg, char *bg, char *bc) +{ fputs("{",stdout); printf("\"full_text\":\"%s\",",text); printf("\"color\":\"%s\",",fg); @@ -2,7 +2,8 @@ #include "modules.h" int main(void) { - write(1, + write + (1, "{\"version\":1," "\"bstatus-version\":\"0.1.1-r1\"," "\"click_events\":true,"\ @@ -10,13 +11,14 @@ int main(void) "\"stop_signal\":19}\n[[],\n", 102 ); - for (;;) { + for (;;) + { write(1,"[",1); cmus(); datetime(); battery(); cpu(); - scrbr(); + //scrbr(); mem(); write(1,"],",2); sleep(1); diff --git a/cmus-status b/cmus-status index 0afbc47..9d7c4a4 100755 --- a/cmus-status +++ b/cmus-status @@ -1,19 +1,25 @@ #!/bin/sh # :set status_display_program=cmus-status -# copy this program to one of the $PATH file="/tmp/cmus-status" printf "" > $file # refresh + [ $# = 2 ] &&\ - printf "" > $file &&\ + printf '' > $file &&\ exit 0 + if [ "$2" = "playing" ]; -then s=""; -else s=""; +then icon=""; +else icon=""; fi + artist="${6}" album="${10}" -num="${14}." +num="${14}" title="${16}" -format="$s $artist - $num $title" +format="${icon} ${artist} - ${album} - ${num}. ${title}" + notify-send "🎵 Player" "$album\n$format" -t 3000 +printf "%s %10s - %10s - %s. %40s"\ + "${icon}" "${artist}" "${album}"\ + "${num}" "${title}" printf "%s" "$format" >> $file @@ -3,12 +3,14 @@ #define FG "#222222" #define BG "#95b18b99" FILE *cmus_stat; -char cmus_str[64]; -void cmus(void) { - if (!cmus_stat) cmus_stat = fopen("/tmp/cmus-status","r"); +char cmus_str[80]; +void cmus(void) +{ + if (!cmus_stat) + cmus_stat = fopen("/tmp/cmus-status","r"); if (cmus_stat) { rewind(cmus_stat); - fgets(cmus_str,64,cmus_stat); + fgets(cmus_str,80,cmus_stat); } block(cmus_str,FG,BG,BG); } @@ -9,7 +9,8 @@ int cpu_delay = 6, cpu_stat[8]; char cpu_str[12]; int total, idle; double cpu_usage_p; -void cpu(void) { +void cpu(void) +{ if (cpu_delay++ < 6) goto show_stat; else cpu_delay = 0; int prev_idle, prev_total; @@ -8,7 +8,8 @@ #define CT current_time char CD[15]; char CT[29]; -void datetime(void) { +void datetime(void) +{ time_t t = time(NULL); struct tm * lt = localtime(&t); strftime(CD,sizeof(CD),ICON_TIME"%H:%M:%S",lt); @@ -3,7 +3,7 @@ #define ICON_MEM " " #define FG "#222222" #define BG "#95b18b99" -#define mem_val(n)\ +#define get_mem_val(n)\ for(n = 0; (c = fgetc(meminfo)) != '\n';)\ if (c >= '0' && c <= '9')\ n = 10 * n + (c - '0') @@ -11,19 +11,20 @@ FILE *meminfo; int mem_delay = 3; char mem_str[15]; -void mem(void) { +void mem(void) +{ if (mem_delay++ < 3) goto show_stat; else mem_delay = 0; if (!meminfo) meminfo = fopen("/proc/meminfo","r"); int c, mem; int total, free, buffers, cached, shared, reclaim; - jmpl(1); mem_val(total); - jmpl(2); mem_val(free); - jmpl(4); mem_val(buffers); - jmpl(5); mem_val(cached); - jmpl(23); mem_val(shared); - jmpl(26); mem_val(reclaim); + jmpl(1); get_mem_val(total); + jmpl(2); get_mem_val(free); + jmpl(4); get_mem_val(buffers); + jmpl(5); get_mem_val(cached); + jmpl(23); get_mem_val(shared); + jmpl(26); get_mem_val(reclaim); mem = total + reclaim - (free+buffers+cached+shared); mem /= 1024; snprintf(mem_str,15,ICON_MEM"%5d MiB",mem); @@ -7,36 +7,29 @@ #define BDIR "/sys/class/backlight/amdgpu_bl1" #define BMAXF max_brightness_f #define BCURF current_brightness_f +#define insbuf(s,n) size = ftell(s);\ + rewind(s); fgets(buf,size,s); n = atoi(buf) FILE *BCURF, *BMAXF; +int delay_scrbr = 6; +char brightness_str[10]; void scrbr(void) { - char *buf; + if (delay_scrbr++ < 6) goto show_stat; + else delay_scrbr = 0; unsigned short current_brightness; unsigned short max_brightness; unsigned short size; - + char buf[12]; if (!BCURF) BCURF = fopen(BDIR"/brightness","r"); if (!BMAXF) BMAXF = fopen(BDIR"/max_brightness","r"); - fseek(BCURF, 0, SEEK_END); fseek(BMAXF, 0, SEEK_END); - - size = ftell(BCURF); - buf = malloc(size); - rewind(BCURF); - fgets(buf, size, BCURF); - current_brightness = atoi(buf); - free(buf); - - size = ftell(BMAXF); - buf = malloc(size); - rewind(BMAXF); - fgets(buf, size, BMAXF); - max_brightness = atoi(buf); - free(buf); - - char brightness[10]; - snprintf(brightness,10,ICON_BR"%3d%%", - current_brightness*100/max_brightness); - block(brightness,FG,BG,BG); + insbuf(BCURF,current_brightness); + insbuf(BMAXF,max_brightness); + snprintf( + brightness_str,10,ICON_BR"%3d%%", + current_brightness*100/max_brightness + ); +show_stat: + block(brightness_str,FG,BG,BG); } |