Download raw body.
[new/wip] sysutils/apmtop
Hello,
On 2024/01/06 03:42:44 +0100, Benjamin Stürz <benni+openbsd@stuerz.xyz> wrote:
> On 1/5/24 19:33, James Cook wrote:
> > On Thu, Jan 04, 2024 at 10:24:18PM +0100, Benjamin Stürz wrote:
> >> Hi ports@,
> >>
> >> this is my next little project, after sysutils/lsblk.
> >>
> >> apmtop is a simple utility for measuring power consumption
> >> and statistics related to it, in a little TUI interface.
> >> There is still some work to do, but I wanted to see
> >> if anyone would be interested in using/testing this project.
> >>
> >> Obviously, this is not (yet) commit-ready, so:
> >> Comments and Suggestions are _very_ welcome!
> >>
> >> WWW: https://got.stuerz.xyz/?action=summary&path=apmtop.git
> >>
> >> PS:
> >> The keybindings are in the README.md, until I write a man page.
> >>
> >> Happy new year,
> >> Benjamin Stürz
Well, the port actually looks good, even if a manpage (or at least
installing the README) would be useful :)
I tried it on my desktop and I can say it seems to mostly work. It
report the cpu temperature as -1 C which I assume means 'not available'.
There is actually one sensor on this machine that reports a temperature,
but since it doesn't contain the "cpu" string in its name it gets
skipped.
% sysctl -a | grep degC
hw.sensors.ksmn0.temp0=25.25 degC (Tctl)
it also reports the power as 0, but I guess it's just a metric not
available on my handware.
(BAT is obviously 0 for me too, but it's a desktop)
> > [...]
> > Nice utility! Don't know if I'll use it since I like to squeeze such
> > things into my status bar, but maybe I can learn from it. One annoyance:
> > xterm flashes on every update as the TUI is redrawn, which is
> > distracting when I'm trying to look at something else.
I agree, it's a nice little utility :)
I got a bit annoyed by the screen flashes at each update and gave it a
try at improving it, see diff below.
> I too put these things into my status bar,
> but I wanted to have a nice graph,
> to make optimizing battery life a little easier.
Index: apmtop.c
--- apmtop.c.orig
+++ apmtop.c
@@ -259,7 +259,7 @@ draw_graph (struct graph *g, const char *fmt, int min,
w -= 2;
h -= 3;
- wclear (g->win);
+ werase (g->win);
for (int i = 0; i < entries; ++i) {
int v = g->log[i];
@@ -287,7 +287,7 @@ draw_graph (struct graph *g, const char *fmt, int min,
static void
draw (struct display *dpy)
{
- clear ();
+ erase ();
draw_graph (&dpy->g[G_CPUUSAGE], "CPU: %d%%", 0, 100);
draw_graph (&dpy->g[G_CPUTEMP], "CPU: %d C", 0, 100);
@@ -302,12 +302,10 @@ draw (struct display *dpy)
printw (" %c delay=%d", dpy->running ? 'R' : 'S', dpy->delay);
- refresh ();
+ wnoutrefresh (stdscr);
for (int i = 0; i < NGRAPH; ++i)
wnoutrefresh (dpy->g[i].win);
doupdate ();
- move (0, 0);
-
}
static void
[new/wip] sysutils/apmtop