@@ -33,8 +33,7 @@ | |||||
char path[PATH_MAX]; | char path[PATH_MAX]; | ||||
if (esnprintf(path, sizeof(path), | if (esnprintf(path, sizeof(path), | ||||
"/sys/class/power_supply/%s/capacity", | |||||
bat) < 0) { | |||||
"/sys/class/power_supply/%s/capacity", bat) < 0) { | |||||
return NULL; | return NULL; | ||||
} | } | ||||
if (pscanf(path, "%d", &perc) != 1) { | if (pscanf(path, "%d", &perc) != 1) { | ||||
@@ -58,8 +57,7 @@ | |||||
char path[PATH_MAX], state[12]; | char path[PATH_MAX], state[12]; | ||||
if (esnprintf(path, sizeof(path), | if (esnprintf(path, sizeof(path), | ||||
"/sys/class/power_supply/%s/status", | |||||
bat) < 0) { | |||||
"/sys/class/power_supply/%s/status", bat) < 0) { | |||||
return NULL; | return NULL; | ||||
} | } | ||||
if (pscanf(path, "%12s", state) != 1) { | if (pscanf(path, "%12s", state) != 1) { | ||||
@@ -82,8 +80,7 @@ | |||||
char path[PATH_MAX], state[12]; | char path[PATH_MAX], state[12]; | ||||
if (esnprintf(path, sizeof(path), | if (esnprintf(path, sizeof(path), | ||||
"/sys/class/power_supply/%s/status", | |||||
bat) < 0) { | |||||
"/sys/class/power_supply/%s/status", bat) < 0) { | |||||
return NULL; | return NULL; | ||||
} | } | ||||
if (pscanf(path, "%12s", state) != 1) { | if (pscanf(path, "%12s", state) != 1) { | ||||
@@ -91,8 +88,8 @@ | |||||
} | } | ||||
if (!pick(bat, "/sys/class/power_supply/%s/charge_now", | if (!pick(bat, "/sys/class/power_supply/%s/charge_now", | ||||
"/sys/class/power_supply/%s/energy_now", | |||||
path, sizeof(path)) || | |||||
"/sys/class/power_supply/%s/energy_now", path, | |||||
sizeof(path)) || | |||||
pscanf(path, "%ju", &charge_now) < 0) { | pscanf(path, "%ju", &charge_now) < 0) { | ||||
return NULL; | return NULL; | ||||
} | } | ||||
@@ -12,8 +12,8 @@ | |||||
uintmax_t freq; | uintmax_t freq; | ||||
/* in kHz */ | /* in kHz */ | ||||
if (pscanf("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", | |||||
"%ju", &freq) != 1) { | |||||
if (pscanf("/sys/devices/system/cpu/cpu0/cpufreq/" | |||||
"scaling_cur_freq", "%ju", &freq) != 1) { | |||||
return NULL; | return NULL; | ||||
} | } | ||||
@@ -29,7 +29,8 @@ | |||||
memcpy(b, a, sizeof(b)); | memcpy(b, a, sizeof(b)); | ||||
/* cpu user nice system idle iowait irq softirq */ | /* cpu user nice system idle iowait irq softirq */ | ||||
if (pscanf("/proc/stat", "%*s %Lf %Lf %Lf %Lf %Lf %Lf %Lf", | if (pscanf("/proc/stat", "%*s %Lf %Lf %Lf %Lf %Lf %Lf %Lf", | ||||
&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]) != 7) { | |||||
&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6]) | |||||
!= 7) { | |||||
return NULL; | return NULL; | ||||
} | } | ||||
if (b[0] == 0) { | if (b[0] == 0) { | ||||
@@ -39,8 +40,10 @@ | |||||
return bprintf("%d", (int)(100 * | return bprintf("%d", (int)(100 * | ||||
((b[0] + b[1] + b[2] + b[5] + b[6]) - | ((b[0] + b[1] + b[2] + b[5] + b[6]) - | ||||
(a[0] + a[1] + a[2] + a[5] + a[6])) / | (a[0] + a[1] + a[2] + a[5] + a[6])) / | ||||
((b[0] + b[1] + b[2] + b[3] + b[4] + b[5] + b[6]) - | |||||
(a[0] + a[1] + a[2] + a[3] + a[4] + a[5] + a[6])))); | |||||
((b[0] + b[1] + b[2] + b[3] + b[4] + b[5] + | |||||
b[6]) - | |||||
(a[0] + a[1] + a[2] + a[3] + a[4] + a[5] + | |||||
a[6])))); | |||||
} | } | ||||
#elif defined(__OpenBSD__) | #elif defined(__OpenBSD__) | ||||
#include <sys/param.h> | #include <sys/param.h> | ||||
@@ -91,11 +94,13 @@ | |||||
} | } | ||||
return bprintf("%d", 100 * | return bprintf("%d", 100 * | ||||
((a[CP_USER] + a[CP_NICE] + a[CP_SYS] + a[CP_INTR]) - | |||||
(b[CP_USER] + b[CP_NICE] + b[CP_SYS] + b[CP_INTR])) / | |||||
((a[CP_USER] + a[CP_NICE] + a[CP_SYS] + a[CP_INTR] + | |||||
a[CP_IDLE]) - | |||||
(b[CP_USER] + b[CP_NICE] + b[CP_SYS] + b[CP_INTR] + | |||||
b[CP_IDLE]))); | |||||
((a[CP_USER] + a[CP_NICE] + a[CP_SYS] + | |||||
a[CP_INTR]) - | |||||
(b[CP_USER] + b[CP_NICE] + b[CP_SYS] + | |||||
b[CP_INTR])) / | |||||
((a[CP_USER] + a[CP_NICE] + a[CP_SYS] + | |||||
a[CP_INTR] + a[CP_IDLE]) - | |||||
(b[CP_USER] + b[CP_NICE] + b[CP_SYS] + | |||||
b[CP_INTR] + b[CP_IDLE]))); | |||||
} | } | ||||
#endif | #endif |
@@ -10,8 +10,8 @@ | |||||
{ | { | ||||
uintmax_t num; | uintmax_t num; | ||||
if (pscanf("/proc/sys/kernel/random/entropy_avail", | |||||
"%ju", &num) != 1) { | |||||
if (pscanf("/proc/sys/kernel/random/entropy_avail", "%ju", &num) | |||||
!= 1) { | |||||
return NULL; | return NULL; | ||||
} | } | ||||
@@ -40,8 +40,8 @@ | |||||
return NULL; | return NULL; | ||||
} | } | ||||
return bprintf("%d", 100 * ((total - free) - | |||||
(buffers + cached)) / total); | |||||
return bprintf("%d", 100 * ((total - free) - (buffers + cached)) | |||||
/ total); | |||||
} | } | ||||
const char * | const char * | ||||
@@ -49,8 +49,8 @@ | |||||
{ | { | ||||
uintmax_t total; | uintmax_t total; | ||||
if (pscanf("/proc/meminfo", "MemTotal: %ju kB\n", | |||||
&total) != 1) { | |||||
if (pscanf("/proc/meminfo", "MemTotal: %ju kB\n", &total) | |||||
!= 1) { | |||||
return NULL; | return NULL; | ||||
} | } | ||||
@@ -40,8 +40,8 @@ | |||||
for (i = 0; i < LEN(ent); i++) { | for (i = 0; i < LEN(ent); i++) { | ||||
if (ent[i].var && | if (ent[i].var && | ||||
!strncmp(line, ent[i].name, ent[i].len)) { | !strncmp(line, ent[i].name, ent[i].len)) { | ||||
sscanf(line + ent[i].len + 1, "%ld kB\n", | |||||
ent[i].var); | |||||
sscanf(line + ent[i].len + 1, | |||||
"%ld kB\n", ent[i].var); | |||||
left--; | left--; | ||||
break; | break; | ||||
} | } | ||||
@@ -22,8 +22,7 @@ | |||||
char status[5]; | char status[5]; | ||||
FILE *fp; | FILE *fp; | ||||
if (esnprintf(path, sizeof(path), | |||||
"/sys/class/net/%s/operstate", | |||||
if (esnprintf(path, sizeof(path), "/sys/class/net/%s/operstate", | |||||
interface) < 0) { | interface) < 0) { | ||||
return NULL; | return NULL; | ||||
} | } | ||||
@@ -72,8 +71,8 @@ | |||||
memset(&wreq, 0, sizeof(struct iwreq)); | memset(&wreq, 0, sizeof(struct iwreq)); | ||||
wreq.u.essid.length = IW_ESSID_MAX_SIZE+1; | wreq.u.essid.length = IW_ESSID_MAX_SIZE+1; | ||||
if (esnprintf(wreq.ifr_name, sizeof(wreq.ifr_name), | |||||
"%s", interface) < 0) { | |||||
if (esnprintf(wreq.ifr_name, sizeof(wreq.ifr_name), "%s", | |||||
interface) < 0) { | |||||
return NULL; | return NULL; | ||||
} | } | ||||
@@ -151,8 +150,9 @@ | |||||
if (nr.nr_max_rssi) { | if (nr.nr_max_rssi) { | ||||
q = IEEE80211_NODEREQ_RSSI(&nr); | q = IEEE80211_NODEREQ_RSSI(&nr); | ||||
} else { | } else { | ||||
q = nr.nr_rssi >= -50 ? 100 : (nr.nr_rssi <= -100 ? 0 : | |||||
(2 * (nr.nr_rssi + 100))); | |||||
q = nr.nr_rssi >= -50 ? 100 : | |||||
(nr.nr_rssi <= -100 ? 0 : | |||||
(2 * (nr.nr_rssi + 100))); | |||||
} | } | ||||
return bprintf("%d", q); | return bprintf("%d", q); | ||||
} | } | ||||
@@ -10,54 +10,54 @@ static const char unknown_str[] = "n/a"; | |||||
#define MAXLEN 2048 | #define MAXLEN 2048 | ||||
/* | /* | ||||
* function description argument (example) | |||||
* function description argument (example) | |||||
* | * | ||||
* battery_perc battery percentage battery name (BAT0) | |||||
* NULL on OpenBSD | |||||
* battery_state battery charging state battery name (BAT0) | |||||
* NULL on OpenBSD | |||||
* battery_remaining battery remaining HH:MM battery name (BAT0) | |||||
* NULL on OpenBSD | |||||
* cpu_perc cpu usage in percent NULL | |||||
* cpu_freq cpu frequency in MHz NULL | |||||
* datetime date and time format string (%F %T) | |||||
* disk_free free disk space in GB mountpoint path (/) | |||||
* disk_perc disk usage in percent mountpoint path (/) | |||||
* disk_total total disk space in GB mountpoint path (/") | |||||
* disk_used used disk space in GB mountpoint path (/) | |||||
* entropy available entropy NULL | |||||
* gid GID of current user NULL | |||||
* hostname hostname NULL | |||||
* ipv4 IPv4 address interface name (eth0) | |||||
* ipv6 IPv6 address interface name (eth0) | |||||
* kernel_release `uname -r` NULL | |||||
* keyboard_indicators caps/num lock indicators format string (c?n?) | |||||
* see keyboard_indicators.c | |||||
* keymap layout (variant) of current NULL | |||||
* keymap | |||||
* load_avg load average NULL | |||||
* netspeed_rx receive network speed interface name (wlan0) | |||||
* netspeed_tx transfer network speed interface name (wlan0) | |||||
* num_files number of files in a directory path | |||||
* (/home/foo/Inbox/cur) | |||||
* ram_free free memory in GB NULL | |||||
* ram_perc memory usage in percent NULL | |||||
* ram_total total memory size in GB NULL | |||||
* ram_used used memory in GB NULL | |||||
* run_command custom shell command command (echo foo) | |||||
* swap_free free swap in GB NULL | |||||
* swap_perc swap usage in percent NULL | |||||
* swap_total total swap size in GB NULL | |||||
* swap_used used swap in GB NULL | |||||
* temp temperature in degree celsius sensor file | |||||
* (/sys/class/thermal/...) | |||||
* NULL on OpenBSD | |||||
* uid UID of current user NULL | |||||
* uptime system uptime NULL | |||||
* username username of current user NULL | |||||
* vol_perc OSS/ALSA volume in percent mixer file (/dev/mixer) | |||||
* wifi_perc WiFi signal in percent interface name (wlan0) | |||||
* wifi_essid WiFi ESSID interface name (wlan0) | |||||
* battery_perc battery percentage battery name (BAT0) | |||||
* NULL on OpenBSD | |||||
* battery_state battery charging state battery name (BAT0) | |||||
* NULL on OpenBSD | |||||
* battery_remaining battery remaining HH:MM battery name (BAT0) | |||||
* NULL on OpenBSD | |||||
* cpu_perc cpu usage in percent NULL | |||||
* cpu_freq cpu frequency in MHz NULL | |||||
* datetime date and time format string (%F %T) | |||||
* disk_free free disk space in GB mountpoint path (/) | |||||
* disk_perc disk usage in percent mountpoint path (/) | |||||
* disk_total total disk space in GB mountpoint path (/") | |||||
* disk_used used disk space in GB mountpoint path (/) | |||||
* entropy available entropy NULL | |||||
* gid GID of current user NULL | |||||
* hostname hostname NULL | |||||
* ipv4 IPv4 address interface name (eth0) | |||||
* ipv6 IPv6 address interface name (eth0) | |||||
* kernel_release `uname -r` NULL | |||||
* keyboard_indicators caps/num lock indicators format string (c?n?) | |||||
* see keyboard_indicators.c | |||||
* keymap layout (variant) of current NULL | |||||
* keymap | |||||
* load_avg load average NULL | |||||
* netspeed_rx receive network speed interface name (wlan0) | |||||
* netspeed_tx transfer network speed interface name (wlan0) | |||||
* num_files number of files in a directory path | |||||
* (/home/foo/Inbox/cur) | |||||
* ram_free free memory in GB NULL | |||||
* ram_perc memory usage in percent NULL | |||||
* ram_total total memory size in GB NULL | |||||
* ram_used used memory in GB NULL | |||||
* run_command custom shell command command (echo foo) | |||||
* swap_free free swap in GB NULL | |||||
* swap_perc swap usage in percent NULL | |||||
* swap_total total swap size in GB NULL | |||||
* swap_used used swap in GB NULL | |||||
* temp temperature in degree celsius sensor file | |||||
* (/sys/class/thermal/...) | |||||
* NULL on OpenBSD | |||||
* uid UID of current user NULL | |||||
* uptime system uptime NULL | |||||
* username username of current user NULL | |||||
* vol_perc OSS/ALSA volume in percent mixer file (/dev/mixer) | |||||
* wifi_perc WiFi signal in percent interface name (wlan0) | |||||
* wifi_essid WiFi ESSID interface name (wlan0) | |||||
*/ | */ | ||||
static const struct arg args[] = { | static const struct arg args[] = { | ||||
/* function format argument */ | /* function format argument */ | ||||
@@ -100,7 +100,8 @@ main(int argc, char *argv[]) | |||||
if (ferror(stdout)) | if (ferror(stdout)) | ||||
die("puts:"); | die("puts:"); | ||||
} else { | } else { | ||||
if (XStoreName(dpy, DefaultRootWindow(dpy), status) < 0) { | |||||
if (XStoreName(dpy, DefaultRootWindow(dpy), status) | |||||
< 0) { | |||||
die("XStoreName: Allocation failed"); | die("XStoreName: Allocation failed"); | ||||
} | } | ||||
XFlush(dpy); | XFlush(dpy); | ||||
@@ -99,7 +99,8 @@ fmt_human(uintmax_t num, int base) | |||||
double scaled; | double scaled; | ||||
size_t i, prefixlen; | size_t i, prefixlen; | ||||
const char **prefix; | const char **prefix; | ||||
const char *prefix_1000[] = { "", "k", "M", "G", "T", "P", "E", "Z", "Y" }; | |||||
const char *prefix_1000[] = { "", "k", "M", "G", "T", "P", "E", "Z", | |||||
"Y" }; | |||||
const char *prefix_1024[] = { "", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", | const char *prefix_1024[] = { "", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", | ||||
"Zi", "Yi" }; | "Zi", "Yi" }; | ||||