Waybar-nixos-updates v1.0 released

This was my first open source project and I’m happy to announce the first major release with some cool new features. I really wanted an update module in Waybar that was on par with toolbar modules typically found in other operating systems.

This release introduces:

  • updated “update commands/flags” for nixos 24.11
  • the ability to configure whether you want your lock file updated or not, during the update check
  • state files used to track the time of the last update to reduce updates between reboots
  • a check for internet connectivity prior to updating

These may be Waybar limitations, but I need to look into it more. Things I still wish it did:

  • animated spinner during the update process
  • didn’t run immediately after booting or hibernating

Feedback and PRs welcome!

8 Likes

It still requires a little waybar configuration, but I just added a nix flake to make installing a little easier. Tested and working on 25.05.

Feedback, PRs, and stars are always welcome.

2 Likes

New auto-detect-rebuild branch with some significant changes. Looking for some feedback before I merge. This branch’s headline change is automatic rebuild and input-update detection, removing the manual flag-file wiring that master requires.

What changed

  • Auto-detect rebuilds - Instead of relying on a nix-update-rebuild-flag cache file that your update script has to touch, the checker now compares the /run/current-system symlink against a cached path. When it changes, it runs nvd diff on the existing store paths (fast, no rebuild) to tell a real package update from a config-only rebuild, and only clears the count when package versions actually changed.
  • Auto-detect input updates - flake.lock changes are detected directly, so nix flake update triggers an immediate input re-check regardless of which alias/command ran. No nix-update-input-update-flag touch needed.
  • Tooltip timing header - shows “last checked” and “next check” times.
  • New dependency - nvd is now added to the wrapped PATH.
  • Assorted fixes: exec-on-event = false to avoid double-exec on clicks, package-sources cache invalidation on rebuild (picks up channel reassignments), cleaner tooltip divider, and more robust version parsing.

:warning: Configuration differences

  • No more update-script/alias edits. On master you had to add flag-file touches to your rebuild script and nix flake update aliases (nix-update-rebuild-flag, nix-update-input-update-flag, and the piped nvd diff … | tee for the update flag). On this branch none of that is needed - detection is automatic.
  • New option: clockFormat - “24h” (default) or “12h” - controls tooltip timestamp format.
  • Module default gained exec-on-event = false.
  • nvd must be available (handled automatically via the flake module).

Feedback welcome - especially on the rebuild-detection approach and whether the nvd dependency is acceptable.