Nanoleaf screen mirroring for KDE Plasma on Linux.
Project description
Nanoleaf Screen Mirror for KDE
Public Nanoleaf USB screen mirroring app for KDE Plasma 6 on Linux (Arch / CachyOS and other distros via source install).
Mirrors your display edge colors to supported Nanoleaf USB strips in real time, with a tray app, setup wizard, calibration, and diagnostics.
What you need
- Linux with KDE Plasma 6 (Wayland recommended)
- A supported Nanoleaf USB strip:
NL82K1(0x37fa:0x8201) orNL82K2(0x37fa:0x8202) - USB permissions via udev (see Hardware setup)
Install (Arch / CachyOS)
When published on AUR:
paru -S --needed python-dacite nanoleaf-kde-sync
paru -Syu
Until AUR account is available — local build from this repo:
paru -S --needed python-dacite
./scripts/build_arch_package.sh
Install udev rules after package install:
./scripts/setup_udev.sh
Quick start
nanoleaf-kde-sync-init-config
nanoleaf-kde-sync-doctor
nanoleaf-kde-sync-smoke-test
nanoleaf-kde-sync
Service-only mode:
nanoleaf-kde-sync-service
Core commands
nanoleaf-kde-sync— tray app (recommended)nanoleaf-kde-sync-service— headless runtime servicenanoleaf-kde-sync-init-config— generate default confignanoleaf-kde-sync-doctor— environment/device diagnosticsnanoleaf-kde-sync-smoke-test— quick functional sanity checknanoleaf-kde-sync-autostart— manage KDE autostart integrationnanoleaf-kde-sync-reset— reset config/calibration/diagnostic cache safely
First-run setup
- Start the tray app (
nanoleaf-kde-sync). - Complete the setup wizard.
- Keep manual strip zone count set to your real hardware value.
- Run a calibration test pattern and assign TL/TR/BR/BL anchors.
Manual strip count is authoritative for runtime, mapping, and calibration. Device-reported count is diagnostics-only unless you explicitly apply a new value.
See the User guide for a full walkthrough.
HDR / SDR notes
Display preset = SDR: SDR-safe defaults.Display preset = HDR: HDR-first defaults.Display preset = Auto: follows compositor capability.
On Plasma HDR desktops, verify SDR white reference and compositor HDR settings in app diagnostics before tuning brightness.
Fresh install / reinstall / uninstall helpers
Pacman-managed reinstall from a local checkout:
./scripts/reinstall_local.sh
./scripts/uninstall_local.sh
# optional full purge:
./scripts/uninstall_local.sh --purge-config
See Arch / AUR packaging for maintainer and AUR publish steps.
Reset commands
nanoleaf-kde-sync-reset app-config --stop-runtime
nanoleaf-kde-sync-reset calibration --stop-runtime
nanoleaf-kde-sync-reset diagnostics --stop-runtime
Documentation
Installed packages also ship docs under /usr/share/doc/nanoleaf-kde-sync/.
Release gate
Run ./scripts/release_gate.sh before tagging a release. CI must be green on main.
Developer setup
python -m venv .venv
source .venv/bin/activate
pip install -e .[test]
pre-commit install
pre-commit run --all-files
Supported environment
- Linux
- KDE Plasma 6 (Wayland recommended)
- Supported Nanoleaf USB strips:
NL82K1(0x37fa:0x8201),NL82K2(0x37fa:0x8202)
Known limitations
- Single-monitor flow only (no multi-monitor support).
- Device strip count auto-detection is diagnostics-only; not auto-applied.
- Desktop-entry launch context is still preferred for reliable KWin authorization.
License
Source-available non-commercial license — see LICENSE. Redistribution terms apply; read before packaging or mirroring.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nanoleaf_kde_sync-1.9.3.tar.gz.
File metadata
- Download URL: nanoleaf_kde_sync-1.9.3.tar.gz
- Upload date:
- Size: 469.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
826a0cd7e4dafbf00aa01d6587ae3e49381417fa7e12c50edf3e67d5f52fd5bf
|
|
| MD5 |
6cc7870213f7baf32bcfa19e0395cf9b
|
|
| BLAKE2b-256 |
edde33502b20c1ceead37db6241aae639da6579267185db44ebc504430cc9f35
|
Provenance
The following attestation bundles were made for nanoleaf_kde_sync-1.9.3.tar.gz:
Publisher:
release.yml on SpinGiantCRM/Nanoleaf-Screen-Mirror-for-KDE
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nanoleaf_kde_sync-1.9.3.tar.gz -
Subject digest:
826a0cd7e4dafbf00aa01d6587ae3e49381417fa7e12c50edf3e67d5f52fd5bf - Sigstore transparency entry: 1935308298
- Sigstore integration time:
-
Permalink:
SpinGiantCRM/Nanoleaf-Screen-Mirror-for-KDE@7a1540cb5f8140f0bccc9575f71ba6596d17953b -
Branch / Tag:
refs/tags/v1.9.3 - Owner: https://github.com/SpinGiantCRM
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7a1540cb5f8140f0bccc9575f71ba6596d17953b -
Trigger Event:
release
-
Statement type:
File details
Details for the file nanoleaf_kde_sync-1.9.3-py3-none-any.whl.
File metadata
- Download URL: nanoleaf_kde_sync-1.9.3-py3-none-any.whl
- Upload date:
- Size: 355.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eeba8c3dd0c09d46f445021afdcc2b01c3d7aec94d17968c90168f1731a87cca
|
|
| MD5 |
64d25641f45411ed328ffdfcb6eb2f1e
|
|
| BLAKE2b-256 |
73323e4be17b69b818cec975ab406ee19d85ef68a3c91c0bc1bc423c50154380
|
Provenance
The following attestation bundles were made for nanoleaf_kde_sync-1.9.3-py3-none-any.whl:
Publisher:
release.yml on SpinGiantCRM/Nanoleaf-Screen-Mirror-for-KDE
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nanoleaf_kde_sync-1.9.3-py3-none-any.whl -
Subject digest:
eeba8c3dd0c09d46f445021afdcc2b01c3d7aec94d17968c90168f1731a87cca - Sigstore transparency entry: 1935308320
- Sigstore integration time:
-
Permalink:
SpinGiantCRM/Nanoleaf-Screen-Mirror-for-KDE@7a1540cb5f8140f0bccc9575f71ba6596d17953b -
Branch / Tag:
refs/tags/v1.9.3 - Owner: https://github.com/SpinGiantCRM
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7a1540cb5f8140f0bccc9575f71ba6596d17953b -
Trigger Event:
release
-
Statement type: