A Lightweight, Zero-Dependency System Monitor for the Omarchy Top Bar

On this page Table of Contents

No graphs, no background processes, just CPU %, memory %, and network speed. Here is how I built an ultra-lightweight status monitor for Omarchy.

Omarchy has a plugin directory with several system monitors. They are good, but they are all dashboards: graphs, GPU temperatures, process lists. Most of them run a Python or bash script in the background to collect the data. I did not want any of that running on my laptop all day for three numbers.

So I wrote the smallest one I could.

What it does

It shows CPU %, memory % and download/upload speed in Mbps, the same unit your speed test uses. Left-click opens btop. That is the whole feature list.

How it works

It is one QML file. Every two seconds it reads /proc/stat, /proc/meminfo and /proc/net/dev from inside the Omarchy shell and does the arithmetic in about thirty lines of JavaScript. It starts no process, writes no file and needs no dependencies.

I measured it: about 3 ms of CPU per update, which is under 0.2 % of one core. The first version used a bash script and cost seven times more, mostly from starting bash and awk every two seconds. Reading the files directly was the whole optimisation.

Install

omarchy plugin add https://github.com/aganet/omarchy-sysmon.git --enable

Two settings: interval (seconds between updates) and onClick (the command for a left-click). Change them with omarchy bar set anegio.sysmon interval 5.

What it will not do

It will stay small. No graphs, no popups, no GPU or temperatures, no colour thresholds, no helper scripts. If you want those, the other monitors in the directory have them and do them well. This one is for people who want the readings and nothing running behind them.

The code is on GitHub: https://github.com/aganet/omarchy-sysmon. MIT licensed.

Enjoyed this? Buy me a coffee ☕

Comments