Skip to content

Conversation

timoteuszelle
Copy link

@timoteuszelle timoteuszelle commented Jul 26, 2025

framework-led-matrix-monitor: init at 1.0.0

This PR adds framework-led-matrix-monitor, a system monitor application for Framework 16 LED matrix modules.

Framework LED Matrix Monitor is a Python application that displays real-time system performance metrics on Framework 16 laptop LED matrix panels. It shows CPU utilization, memory usage, battery status, disk I/O, network activity, temperatures, and fan speeds across the left and right LED matrix modules.

Homepage: https://github.com/timoteuszelle/led-matrix

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

Add a 👍 reaction to pull requests you find important.

Description

This PR adds a new package for the Framework 16 LED matrix system monitor application.

About the Package

framework-led-matrix-monitor is a Python application that displays real-time system performance metrics on Framework 16 laptop LED matrix panels. It shows:

  • CPU utilization and memory usage
  • Battery status and charging indicator
  • Disk I/O and network activity
  • Temperature and fan speed monitoring
  • Extensible plugin system

Key Features

  • Hardware-specific: Designed for Framework 16 laptops with LED Matrix input modules
  • Enhanced version: Built from an improved fork with additional features beyond the original
  • Plugin system: Supports custom plugins for extended functionality
  • NixOS integration: Includes proper NixOS service integration
  • Multi-distro support: Works across different Linux distributions

Package Details

Technical Notes

  • Uses buildPythonApplication with manual installPhase since no setup.py exists
  • Patches plugin directory paths for proper Nix store integration
  • Dependencies: numpy, psutil, pyserial, evdev
  • Creates proper executable wrapper with Python path setup

Testing

  • Package builds successfully with nix-build -A framework-led-matrix-monitor
  • Help command works correctly (./result/bin/framework-led-matrix-monitor --help)
  • All dependencies properly resolved
  • Plugins directory correctly patched for Nix store paths
  • Tested on NixOS

Background

This package builds from an enhanced fork that includes:

  • Plugin system for extensibility
  • NixOS service integration
  • Improved multi-distribution Linux support
  • Better path handling for packaged environments

The original upstream provides the core functionality, while our enhanced version adds the features needed for proper packaging and distribution.

@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. 12.first-time contribution This PR is the author's first one; please be gentle! labels Jul 26, 2025
Copy link
Contributor

@acid-bong acid-bong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Evening and welcome to Nixpkgs. Here's a couple of notes to consider, make sure to amend all edits to the init commit.

And add yourself to maintainers in a separate commit (within this PR! don't open a new one) that precedes the new package.

@acid-bong
Copy link
Contributor

Also, since you're the upstream maintainer, add pyproject.toml and LICENSE to the repo for easier maintenance and distribution

@acid-bong
Copy link
Contributor

Another thing i forgot to mention: do not rewrite the PR template, so we (and you too, since it serves as a selfcheck as well) can properly see what has been done

@timoteuszelle timoteuszelle force-pushed the add-framework-led-matrix-monitor branch from b7394c3 to 69d6025 Compare July 26, 2025 15:40
@nixpkgs-ci nixpkgs-ci bot added the 8.has: maintainer-list (update) This PR changes `maintainers/maintainer-list.nix` label Jul 26, 2025
@timoteuszelle timoteuszelle force-pushed the add-framework-led-matrix-monitor branch from 60546eb to f83badf Compare July 26, 2025 16:06
@timoteuszelle timoteuszelle requested a review from acid-bong July 26, 2025 16:26
@acid-bong
Copy link
Contributor

make sure to amend all edits to the init commit.

And add yourself to maintainers in a separate commit (within this PR! don't open a new one) that precedes the new package.

You forgot to do that

@timoteuszelle timoteuszelle force-pushed the add-framework-led-matrix-monitor branch from d65c41e to 888a9a7 Compare July 26, 2025 17:50
@timoteuszelle
Copy link
Author

it can only work for x86_64-linux, as its specifically for the framework 16 laptop with matrix led modules installed.

@timoteuszelle timoteuszelle force-pushed the add-framework-led-matrix-monitor branch 2 times, most recently from 7a9f073 to 1566600 Compare July 28, 2025 05:03
@timoteuszelle timoteuszelle requested a review from acid-bong July 28, 2025 05:40
@acid-bong
Copy link
Contributor

Once again, squash all commits but the first one

@timoteuszelle timoteuszelle force-pushed the add-framework-led-matrix-monitor branch from b1fa44f to a5e7525 Compare July 28, 2025 06:13
@timoteuszelle
Copy link
Author

Once again, squash all commits but the first one

Sorry, it should be good now?

@acid-bong
Copy link
Contributor

All BUT the first one. The maintainer addition should be separate

@timoteuszelle timoteuszelle force-pushed the add-framework-led-matrix-monitor branch from a5e7525 to 68a09f5 Compare July 28, 2025 12:11
@timoteuszelle
Copy link
Author

All BUT the first one. The maintainer addition should be separate

I got it now I think >.<

@acid-bong
Copy link
Contributor

Yup, you got it right. I can't test rn, but looks good so far

@timoteuszelle
Copy link
Author

Yup, you got it right. I can't test rn, but looks good so far

The app use case is tied to hardware, do you have a FW16? "https://frame.work/nl/en/products/16-led-matrix"

@timoteuszelle
Copy link
Author

Meanwhile development continued, I am on version 1.1.0, what do you advise to do? https://github.com/timoteuszelle/led-matrix/releases/tag/v1.1.0

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/prs-ready-for-review/3032/5800

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
8.has: maintainer-list (update) This PR changes `maintainers/maintainer-list.nix` 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. 12.first-time contribution This PR is the author's first one; please be gentle!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants