Toot

Written by ... (FKA Gergely Nagy 🐁) on 2024-12-02 at 00:50

Thanks to @jankatins, I'm now aware that nethogs has a libnethogs library, and it does pretty much everything I need from it. It's reasonably comfortable to use, too. So much so that I made a Nix derivation for it, and have a tiny tool that just prints the updates as they come.

So the data collection part is taken care of! Now to figure out what kind of UI I want.

I definitely do not want a Column View. That would be pretty much the same as nethogs, but with more pixels and without a terminal. I'm not looking to translate the TUI app to GNOME.

No, I'll take a different approach. What do I want to see? I want to see which applications are hogging my network. I'm usually interested in the top few. I'm not interested in an overview, I don't want to see all of them, just the top ones.

So I first considered a Grid View, where each item is just the application name, and the download speed. Clicking on an item would show more details about the process (owner, pid, totals, that kinda stuff). However, this would still display too much information, and... I just didn't like how it looked.

So I browsed the GTK4 and Adwaita widgets, and... I think I found something interesting: Adwaita's Carousel!

I know, I know, sacrilege! A carousel! ARE YOU MAD?!

Why, yes, I am, but hear me out! A carousel (vertical, with bars for navigation) shows one item a time, where I can immediately list all the info I need. It would show the worst offender by default, but I'd add a toggle button somewhere to pin it to whatever I'm currently viewing. If I want to look for the second or third offender, I'd just... scroll.

I think I'm liking this idea.

=> More informations about this toot | View the thread | More toots from algernon@trunk.mad-scientist.club

Mentions

=> View jankatins@fosstodon.org profile

Tags

Proxy Information
Original URL
gemini://mastogem.picasoft.net/toot/113580485415186001
Status Code
Success (20)
Meta
text/gemini
Capsule Response Time
229.737463 milliseconds
Gemini-to-HTML Time
0.778801 milliseconds

This content has been proxied by September (ba2dc).