New plugin: System Updates Manager - #381
Conversation
The selected package ID is substituted directly into an adapter command, then executed as a shell string through
render() dereferences state.error even when state is nil. system-updater/widget.luau:60 reads the shared state
The Cargo checker invokes bash and awk at system-updater/adapters/cargo/check.py:7, but neither command is declared in the manifest, the Cargo adapter dependency list at system-updater/adapters/cargo/adapter.json:4, or the README requirements. On a system missing either command, the adapter can be enabled despite an unmet runtime dependency. Declare them or replace the shell pipeline with Python parsing. |
|
Added package name validation, fixed the nil state and added bash and awk to dependencies. |
Plugin
tordex/system-updaterplugin.toml)What it does
Manage system updates inside the noctalia panel. Check for new updates using PackageKit, Flatpak and Cargo. Install updated packages.
External dependencies
pythonfor check update scripts. Required python modulespycairoandPyGObject. Install usingpip install pycairo PyGObject.pkgclithe PackageKit cli utility to check/install updates using PackageKitcargoandcargo-install-updateto check/install updates using Cargoflatpakto check/install updates using FlatpakTesting
Screenshots / Videos
Checklist
idafter the/inplugin.tomlexactly.plugin.toml,README.md,thumbnail.webp, andtranslations/en.json.README.mdfollows theREADME template, documents
every entry id and dependency, and includes exact panel IPC commands and launcher prefixes where applicable.
thumbnail.webpwith the thumbnail generator.versionfollows semver and is bumped in this PR;plugin_apiis the oldest API level this plugin requires.understand that language well enough to review and maintain it (no unreviewed machine/LLM translations).
catalog.toml; CI generates it.Code review attestation
Plugins run as trusted, unsandboxed Luau in the user's session. Confirm:
licensedeclared inplugin.toml.