From 7da9f40ca1b0a785cd76f0cd216f4429475a1678 Mon Sep 17 00:00:00 2001 From: coast Date: Thu, 29 May 2025 22:52:22 +0200 Subject: [PATCH] Upload files to ".suckless/slstatus/components" --- .suckless/slstatus/components/netspeeds.o | Bin 0 -> 2760 bytes .suckless/slstatus/components/num_files.c | 32 ++++ .suckless/slstatus/components/num_files.o | Bin 0 -> 2112 bytes .suckless/slstatus/components/ram.c | 212 ++++++++++++++++++++++ .suckless/slstatus/components/ram.o | Bin 0 -> 3072 bytes 5 files changed, 244 insertions(+) create mode 100644 .suckless/slstatus/components/netspeeds.o create mode 100644 .suckless/slstatus/components/num_files.c create mode 100644 .suckless/slstatus/components/num_files.o create mode 100644 .suckless/slstatus/components/ram.c create mode 100644 .suckless/slstatus/components/ram.o diff --git a/.suckless/slstatus/components/netspeeds.o b/.suckless/slstatus/components/netspeeds.o new file mode 100644 index 0000000000000000000000000000000000000000..9d8e32c627254f56110abe3624a37ddd09b511f5 GIT binary patch literal 2760 zcmdUw!E4+_6vy9hleV$8OO%KUt+GNQt<~S=w-^vBvL)Dz5~WxwN|E)K&2P;%yPNel zld@ZpTC_q~0vdkW%%g$YY)((8jo_uCCrTKW*JyzpeWF z!25^s8~u2L#@XrkE!7y@8Ds62(UalfjWg2PQscXWaeK%tG`v z`cwJIPjYASg^$J-@?RBm*YX7>r}7hQg0F%P%fI;!y>|X0zj3;|wbMd0ww?X`*0F52 z_cPR4z#Mr&q<@rka1r58WFV_iF=hRemJj=p>4fD^jZmh|^6$e=p4mAtdx0C5?+!V= z2Y+=B{>C2sojv$_%#n}eAw6*w>Q0g@>##;?H!Hs|B4f2#3K!?Ip9orc+r650Dbejt z+Gv|Pb#yIm*NOEcy%;yC-ZIsd^;X=bYL)A|wpy*NtXAuBqdA(ubU7uG=P1Yeer|tl z4dn=oEa3bwY~R#LKo;EGL2lx|2*~35pB>_iV=eJNZ#m|9(BZ3=`}5%ZAmE3%$vm5Y zESLwiCj4_i7Vtbb;oktVU>?+*@E-tKWL@FE4e^fs%7@|m@3$W|xVzuH<^Fyjcl>eA zvhK9Q-ThXadEEWJ>2P;sSX*ngk~X`v*Gv-fllM$kfOh!DJr2c$$x5}J#;rs$ z`)_@b!*LX-WmhV8P`BqKHg8C%d)!e)9Bh9bkmY9^fSQFW?^Xdu7Q9d3xJy^Q@E5X1 zA3x0;bNcaLT1WrwlJ#Y+h!wb&1=wEV&v;zcm%hSw=y*R}`NKNMe~{QDPWqSGAiDUV zpK^=OG5Ef3u?^pi?_RLL&&%IG-U-a<$14juY;(nrZ?bW>`@d!jO4i5yKfq1m<^FeD t8|z)S>wjoBjBk3kcrgF&5&xX6zYj2Q#6Q1>*tT2zO`HGwPApVE{%>*Pl_vlI literal 0 HcmV?d00001 diff --git a/.suckless/slstatus/components/num_files.c b/.suckless/slstatus/components/num_files.c new file mode 100644 index 0000000..df0acd1 --- /dev/null +++ b/.suckless/slstatus/components/num_files.c @@ -0,0 +1,32 @@ +/* See LICENSE file for copyright and license details. */ +#include +#include +#include + +#include "../slstatus.h" +#include "../util.h" + +const char * +num_files(const char *path) +{ + struct dirent *dp; + DIR *dir; + int num; + + if (!(dir = opendir(path))) { + warn("opendir '%s':", path); + return NULL; + } + + num = 0; + while ((dp = readdir(dir))) { + if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, "..")) + continue; /* skip self and parent */ + + num++; + } + + closedir(dir); + + return bprintf("%d", num); +} diff --git a/.suckless/slstatus/components/num_files.o b/.suckless/slstatus/components/num_files.o new file mode 100644 index 0000000000000000000000000000000000000000..b18b49e3d23ac3f744f063faa057ec8eee6a785b GIT binary patch literal 2112 zcmbu9TTc^F5P)Y3NaeDrV6+h*)&~S{C*1-s7)?t>iV|bEL<|tJw2L(M=I#;!AABH~ zG?B!g)I>@A58fWt7)^YVL=&9Zo+;at_C+T-otbYgXV1>rKA)Vq9nv&l(cmT=drSeU z?ZyLdsXkjOy#rhlOxjmi~Z^SF^Z=vpL~w^y@GZR zwcQU#-wwERsq!Pee}jrv%xZG^YpwjFS(Vi9vt(9RlFP44WxJToImXbSJ2Vaggn+>; zz*H(VZVXS|TexJHW5N`s5s$^kVxw_<7CMfBs{PM}3+(Hk5!n@7YHz9>X~D0z z;1ezQ-4=YV1&88hVRb#1w_T9|F_SXsCr&>j^b0TFS$1P zYh@=_^w#02O)gxz8T;r0(?hu>Q8rw^K${-6X1sA)Sp&egu7kvtThn$ z8f$ukEyvDV!n3zL5LwH!K&-hg2&Y62rQ;U~B2y|9>>{QVOP($8Q@rMSR_3wv9~C!6 z*};i9-Zqv}LwjR&-LVRG{R#fdFtD1wIeIriNl1t9JI5$DC@#Ka@4B*kpKVy literal 0 HcmV?d00001 diff --git a/.suckless/slstatus/components/ram.c b/.suckless/slstatus/components/ram.c new file mode 100644 index 0000000..15c4b74 --- /dev/null +++ b/.suckless/slstatus/components/ram.c @@ -0,0 +1,212 @@ +/* See LICENSE file for copyright and license details. */ +#include + +#include "../slstatus.h" +#include "../util.h" + +#if defined(__linux__) + #include + + const char * + ram_free(const char *unused) + { + uintmax_t free; + + if (pscanf("/proc/meminfo", + "MemTotal: %ju kB\n" + "MemFree: %ju kB\n" + "MemAvailable: %ju kB\n", + &free, &free, &free) != 3) + return NULL; + + return fmt_human(free * 1024, 1024); + } + + const char * + ram_perc(const char *unused) + { + uintmax_t total, free, buffers, cached; + int percent; + + if (pscanf("/proc/meminfo", + "MemTotal: %ju kB\n" + "MemFree: %ju kB\n" + "MemAvailable: %ju kB\n" + "Buffers: %ju kB\n" + "Cached: %ju kB\n", + &total, &free, &buffers, &buffers, &cached) != 5) + return NULL; + + if (total == 0) + return NULL; + + percent = 100 * ((total - free) - (buffers + cached)) / total; + return bprintf("%d", percent); + } + + const char * + ram_total(const char *unused) + { + uintmax_t total; + + if (pscanf("/proc/meminfo", "MemTotal: %ju kB\n", &total) + != 1) + return NULL; + + return fmt_human(total * 1024, 1024); + } + + const char * + ram_used(const char *unused) + { + uintmax_t total, free, buffers, cached, used; + + if (pscanf("/proc/meminfo", + "MemTotal: %ju kB\n" + "MemFree: %ju kB\n" + "MemAvailable: %ju kB\n" + "Buffers: %ju kB\n" + "Cached: %ju kB\n", + &total, &free, &buffers, &buffers, &cached) != 5) + return NULL; + + used = (total - free - buffers - cached); + return fmt_human(used * 1024, 1024); + } +#elif defined(__OpenBSD__) + #include + #include + #include + #include + + #define LOG1024 10 + #define pagetok(size, pageshift) (size_t)(size << (pageshift - LOG1024)) + + inline int + load_uvmexp(struct uvmexp *uvmexp) + { + int uvmexp_mib[] = {CTL_VM, VM_UVMEXP}; + size_t size; + + size = sizeof(*uvmexp); + + if (sysctl(uvmexp_mib, 2, uvmexp, &size, NULL, 0) >= 0) + return 1; + + return 0; + } + + const char * + ram_free(const char *unused) + { + struct uvmexp uvmexp; + int free_pages; + + if (!load_uvmexp(&uvmexp)) + return NULL; + + free_pages = uvmexp.npages - uvmexp.active; + return fmt_human(pagetok(free_pages, uvmexp.pageshift) * + 1024, 1024); + } + + const char * + ram_perc(const char *unused) + { + struct uvmexp uvmexp; + int percent; + + if (!load_uvmexp(&uvmexp)) + return NULL; + + percent = uvmexp.active * 100 / uvmexp.npages; + return bprintf("%d", percent); + } + + const char * + ram_total(const char *unused) + { + struct uvmexp uvmexp; + + if (!load_uvmexp(&uvmexp)) + return NULL; + + return fmt_human(pagetok(uvmexp.npages, + uvmexp.pageshift) * 1024, 1024); + } + + const char * + ram_used(const char *unused) + { + struct uvmexp uvmexp; + + if (!load_uvmexp(&uvmexp)) + return NULL; + + return fmt_human(pagetok(uvmexp.active, + uvmexp.pageshift) * 1024, 1024); + } +#elif defined(__FreeBSD__) + #include + #include + #include + #include + + const char * + ram_free(const char *unused) { + struct vmtotal vm_stats; + int mib[] = {CTL_VM, VM_TOTAL}; + size_t len; + + len = sizeof(struct vmtotal); + if (sysctl(mib, 2, &vm_stats, &len, NULL, 0) < 0 + || !len) + return NULL; + + return fmt_human(vm_stats.t_free * getpagesize(), 1024); + } + + const char * + ram_total(const char *unused) { + unsigned int npages; + size_t len; + + len = sizeof(npages); + if (sysctlbyname("vm.stats.vm.v_page_count", + &npages, &len, NULL, 0) < 0 || !len) + return NULL; + + return fmt_human(npages * getpagesize(), 1024); + } + + const char * + ram_perc(const char *unused) { + unsigned int npages; + unsigned int active; + size_t len; + + len = sizeof(npages); + if (sysctlbyname("vm.stats.vm.v_page_count", + &npages, &len, NULL, 0) < 0 || !len) + return NULL; + + if (sysctlbyname("vm.stats.vm.v_active_count", + &active, &len, NULL, 0) < 0 || !len) + return NULL; + + return bprintf("%d", active * 100 / npages); + } + + const char * + ram_used(const char *unused) { + unsigned int active; + size_t len; + + len = sizeof(active); + if (sysctlbyname("vm.stats.vm.v_active_count", + &active, &len, NULL, 0) < 0 || !len) + return NULL; + + return fmt_human(active * getpagesize(), 1024); + } +#endif diff --git a/.suckless/slstatus/components/ram.o b/.suckless/slstatus/components/ram.o new file mode 100644 index 0000000000000000000000000000000000000000..55c1c637e9f16b91dd80fb65329852440ab55c41 GIT binary patch literal 3072 zcmc&#O>7%g5FR@TF(F+A6ro7vum`6&3T$JOh$t$^t<&UHby0*;sX?gj#$MwPuWjr# zYM~O9A`Zri)H6s3ZX7xGgj|72x%R{j=!Hsfsf5%VkivZHH_7YP6(|=*dO!2M`Fk_- zc0W0rUx~+JBow1J>5vnY=tkmjpAENJvgjD8oj<44?g9|C`v#Vh>JCq*z;~9DiF8kO z?w{-Ysye?t!0FE3PgJOP_32N+tm@oV zvryz|B7F~wt?!_=dnNVgVdqY|*N=ijOAQEZ5uyG2{X-l3cmJo0w_jG>>wM=f-?g9h zA-=Gh`BBYY=Nm^$F!-JqJb%3&xYZ?l`u(=OeP)b-m8R#J{OJ$ft*X0OJp}1wqggMW z^gVy8R<6_0jGSqg%U-i};3?-8D_-ehKW{lxg|Tb`qsr6JH6nfowS{q%Ph>z zXTn}Z^O4PCga->zoMJs-()+OpKgnmH*hglD=?hHDR<>%X6>IIhrA}Mf_$4a=-Ag!Qx{L|B8-3jdc&5)VMRixL1mHo0_=oA? z{-Cp=gWDaRj)q%g;c*%d*%5mEahRUh_}K{lqQ=9!8fV8f{-uFoYx8))h$qY)V>3J^ zctmNAfkF7vQ}FYQ!@k&+xYnN{|E`vokivQ}R@V4s-56m#7^9}^J4JHxxj9T}Oc_kC zVVcKrq0H}t8m*#RD^uAI3YE6+)~HZu1#WS>P^@eh%KTtL(T3M7(q^N%RSU`?5a6+e zyLQVf5%udt+^0lCJpSJAlZ9BAfTMo}e+3{DuxEJ)o&(4Pe2jN>y9RoN0{$k*!Ut8w^_r(xe)EmL2&!vunOFst@dFf|z zTG#x*-Q+cB_ScH+nqJj)0`F=-PRR{iayDBna+-B85a*97ImNo~do>oR)dSDrPwA^+ zdu#r^THE1Y0JnE=ja6aLtMJ2ceF<1Dbi~zWJ){mjWl~l%4|HDTEW#4LPpDf~1oZk1 zip;d96;Kmw<-^