Skip to content

[System Updates Manager] Add adapters for pipx, xbps, and gearlever - #488

Open
YoshiWalsh wants to merge 9 commits into
noctalia-dev:mainfrom
YoshiWalsh:systems-updater/new-adapters
Open

[System Updates Manager] Add adapters for pipx, xbps, and gearlever#488
YoshiWalsh wants to merge 9 commits into
noctalia-dev:mainfrom
YoshiWalsh:systems-updater/new-adapters

Conversation

@YoshiWalsh

Copy link
Copy Markdown

Plugin

  • Id: tordex/system-updater
  • New plugin
  • Update to an existing plugin (version bumped in plugin.toml)

What it does

This PR adds three new adapters:

  • pipx, for managing Python applications
  • Gear Lever, for managing AppImages
  • XBPS, for managing system packages in Void Linux

External dependencies

jq, grep, sed, and coreutils.

Testing

I have tried checking for updates, installing an update to one package, and installing all updates for each of the three adapters.

  • Tested on Niri
  • Tested on Hyprland
  • Tested on Sway
  • Tested on another compositor:
  • Noctalia version tested against: v5.0.0-beta.9
  • Plugin API level: 20

Screenshots / Videos

No significant changes

Checklist

Ready-for-review requirement: Every box in this section must be checked. If any statement is not true, keep the
pull request as Draft. An explanation does not replace a required check.

  • The directory name matches the part of id after the / in plugin.toml exactly.
  • It ships plugin.toml, README.md, thumbnail.webp, and translations/en.json.
  • README.md follows the
    README template, documents
    every entry id and dependency, and includes exact panel IPC commands and launcher prefixes where applicable.
  • I created thumbnail.webp with the thumbnail generator.
  • version follows semver and is bumped in this PR; plugin_api is the oldest API level this plugin requires.
  • Every non-English translation in this PR uses a locale supported by Noctalia core, and I can read, write, and
    understand that language well enough to review and maintain it (no unreviewed machine/LLM translations).
  • I did not edit catalog.toml; CI generates it.
  • This PR touches exactly one plugin directory.

Code review attestation

Plugins run as trusted, unsandboxed Luau in the user's session. Confirm:
Ready-for-review requirement: Every attestation below must be checked.

  • The code is readable and not obfuscated, minified, or generated.
  • It does not download and execute remote code.
  • Every network call, filesystem write, and spawned process is something the description above accounts for.
  • I have the right to publish this code under the license declared in plugin.toml.

(XBPS is the package manager for Void Linux, and can also be used on other distros)
Gear Lever (mijorus/gearlever) is a tool for managing AppImages.

Note that the closest equivalent Gear Lever has to an "appid" is the full path to the .appimage file. Gear Lever can manage appimages in many different directories, so this cannot be omitted. Currently System Updates Manager appids are not allowed to contain / characters, so these are converted to : characters as a workaround.
A better solution would be to allow / characters in appids. There should be no injection risk here as long as quotation marks are correctly used in the `update_package_command`.
@github-actions

Copy link
Copy Markdown
Contributor

CC @tordex

@YoshiWalsh
YoshiWalsh marked this pull request as draft August 26, 2026 14:48
@YoshiWalsh

Copy link
Copy Markdown
Author

Converted back to draft because I think I need to do further testing on the XBPS adapter.

@tordex

tordex commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Awesome! New adapters are welcome!

One note about xbps adapter. You should use pkexec instead of sudo. sudo requests password in terminal, but plugin doesn't support this. So updating process will stuck on this. pkexec requests password via GUI and user have a chance to enter it.

@YoshiWalsh

Copy link
Copy Markdown
Author

That makes sense! When I tested it, somehow it worked with sudo... once. I think I may have run some other command with sudo before launching noctalia, and I tested it during the sudo timeout. I converted this back to draft when I realised I couldn't get the XBPS stuff to work a second time.

When I'm back at my PC I'll switch to using pkexec and test it again.

@YoshiWalsh
YoshiWalsh marked this pull request as ready for review August 30, 2026 06:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants