diff options
| author | Inqiyad Sabr <sabr@ariamath.xyz> | 2025-10-28 15:22:06 +0600 |
|---|---|---|
| committer | Inqiyad Sabr <sabr@ariamath.xyz> | 2025-10-28 15:22:06 +0600 |
| commit | 52aa2298a1b42c3da24e3bb39fee1ed894231c03 (patch) | |
| tree | afbb44c2cf419b37bc674a3973bb5fcada5bf1b5 /scrbr.c | |
| parent | 0d4272c8bc1c8d7cca4178584f4f9ad42fcc1fd6 (diff) | |
Add screen brightness module
Though it's only for Unix likes... I really wanna support BSDs next time.
Diffstat (limited to 'scrbr.c')
| -rw-r--r-- | scrbr.c | 42 |
1 files changed, 42 insertions, 0 deletions
@@ -0,0 +1,42 @@ +#include <stdio.h> +#include <stdlib.h> +#include "block.h" +#define ICON_BR " " +#define FG "#222222" +#define BG "#dfb24999" +#define BDIR "/sys/class/backlight/amdgpu_bl1" +#define BMAXF max_brightness_f +#define BCURF current_brightness_f +FILE *BCURF, *BMAXF; +void scrbr(void) +{ + char *buf; + unsigned short current_brightness; + unsigned short max_brightness; + unsigned short size; + + 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); +} |