| extra | ||
| led_matrix | ||
| patterns | ||
| videos | ||
| .gitignore | ||
| index.py | ||
| led-matrix.desktop | ||
| led-matrix.service | ||
| LICENSE | ||
| README.md | ||
| requirements.txt | ||
LED Matrix
Small library and script for the Framework Laptop 16's programmable monochrome LED matrix spacers.
The library section is in the led_matrix directory, this wraps the serial ports and adds some nice to have functions for ease of use. python files in the root of the project are what I use to display on the LEDs.
Usage
Note
The script will need to have root permissions to access the LEDs. Commands needng root access are prefixed by
#.
Tip
There is a
.desktopfile avaliable if you would like to use it for an application menu entry or autostart if you do not want or can not use SystemD.
Setup
python -m venv venv && ./venv/bin/pip install -r requirements.txt
or
python -m venv venv
source ./venv/bin/activate
pip install -r requirements.txt
Run
# ./venv/bin/python index.py
or
# source ./venv/bin/activate
# python index.py
Autostart
SystemD
# cp led-matrix.service /usr/lib/systemd/system
# systemctl enable led-matrix
QubesOS
QubesOS specific instructions:
Warning
You are adding extra attack surface by using this program.
Note
QubesOS may sometimes get confused and only attach one of the LEDs or not be consistant on the display order. It will also not let you assign the second LED in the Qubes Global Config GUI, you will need to use
qvm-usbcommand instead. I assume it is because both displays use the same device ID but I don't know.
- Create a
standaloneqube,matrix-dvm, and make it a disposable template. - Download this repository then go through the setup and autostart instructions in this qube.
- Create a
named disposibleqube,sys-matrix; use the standalone as a template. - Make ths qube automatically start on boot.
- Assign the LEDs to this qube (your
sys-usbport may be different).qvm-usb assign --verbose sys-matrix sys-usb:2-3.2 qvm-usb assign --verbose sys-matrix sys-usb:2-3.3