this post was submitted on 18 Jun 2026
-1 points (46.2% liked)

Programming

27575 readers
127 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 3 years ago
MODERATORS
 

I posted a tool a while back that tracked trending Linux packages from pkgstats data. The feedback made me rethink it — the curated category list of 173 packages was too narrow, and people wanted something they could actually use on a fresh install.

Biggest change: full AppStream coverage instead of a hand-picked list.

The collector now parses Manjaro/Arch's AppStream XML data (/usr/share/swcatalog/xml/) to automatically extract every desktop-application and console-application package, then maps their AppStream categories to 8 Pamac-style groups (Audio & Video, Games, Development, Utilities, etc.). That jumped coverage from 173 → ~1600 packages.

But AppStream misses a lot of stuff that power users care about — window managers (Hyprland, Sway, i3), shells (zsh, fish, nushell), terminal emulators (Kitty, Alacritty, Foot), desktop environments (Plasma, GNOME). So I kept those as curated extras that get deduped against the AppStream data. Net result: 1,275 unique packages across 16 categories.

New: recommended.txt — curl it, pipe it, install it.

curl -sfL https://git.disroot.org/hirrolot19/trending-linux-packages-data/raw/branch/main/recommended.txt \  
  | head -100 | sudo pacman -S --needed -  

All 1,275 packages ranked by a score that balances popularity percentile + growth slope percentile (default 1:1). Pipe through head -N to pick your count. The scoring is trivial to tweak:

TOP_N=50 SLOPE_WEIGHT=2 python3 src/collector.py  

The math is still naive though. Right now it's just pop_percentile * w1 + slope_percentile * w2 — which works but ignores a bunch of things that would make the rankings smarter:

  • A package at 1% popularity with +0.8 slope is clearly an emerging tool, but the percentile system buries it because it's in the bottom decile for popularity
  • Seasonality isn't modeled — some packages spike in December (games on sale, new devs on winter break) and that looks like a trend
  • No confidence interval on the slope — a package with 3 data points gets the same treatment as one with 7
  • No penalty for high variance — a package that bounces wildly isn't the same as one that's steadily climbing

I'd love PRs or issues discussing better scoring functions. The recommendation config is the first 5 lines of the collector — easy to experiment with. If you've done work on ranking with sparse time-series data, I'd especially appreciate input.

What the data is showing right now:

The top 10 recommended packages by combined score: cmake, mpv, qt6-tools, pavucontrol, v4l-utils, firefox, steam, clang, jdk-openjdk, vim. These are packages that are both very widely used AND gaining users — solid picks for any new system.

Top gainers (pure slope): mpv (+2.80 pts/mo), cmake (+2.51), qt6-tools (+2.41), pavucontrol (+2.22), nvtop (+2.22). The Wayland-adjacent tooling wave is real.

Project links:

you are viewing a single comment's thread
view the rest of the comments
[–] Covenant@sh.itjust.works 1 points 2 weeks ago

Some kind of ninite for Linux