Ants Projects Hub ← All projects

Live

OneUp

LiveLNXLatest: v1.0.0
The OneUp dashboard in dark theme: five toggle cards — System packages (12 available), Flatpak apps (3 available), Firmware (up to date), Leftover packages and Package cache — each with a green on-switch, above Check for updates and Run selected updates buttons and a live log reading '15 update(s) available'The same OneUp update dashboard in light theme, showing it follows the desktop's light/dark setting — identical toggle cards, buttons and read-only check log on a white background

OneUp

One click, everything up to date. A small, no-nonsense update dashboard for openSUSE (Tumbleweed and Leap) that does the four things you actually need — in the right way — from a single window.

OneUp


Read the full guideShow less

Why not just use Discover?

Because keeping openSUSE current means running several different commands, and the graphical tools don't cover all of them:

  • Discover / PackageKit handles packages and Flatpaks, but on Tumbleweed it regularly chokes on Packman codec vendor changes — the update stalls and you end up in a terminal anyway. It also doesn't touch firmware or clean up orphans.
  • The correct Tumbleweed system-update command is zypper dup --allow-vendor-change. Plenty of people run plain zypper up instead and slowly break their system.
  • Firmware (fwupd), Flatpak clean-up, and leftover-package removal are three more separate commands most people never run.

OneUp bundles all of that behind toggles and runs each step the way openSUSE's own documentation recommends. It's the knowledge, not the GUI, that's the point.

What it does

Task What runs
System packages zypper dup --allow-vendor-change (Tumbleweed) or zypper update (Leap), after a repo refresh
Flatpak apps flatpak update for both user and system scope, then prunes unused runtimes
Firmware fwupdmgr refresh + update
Leftover packages Safely autoremoves unneeded dependencies; reports (never auto-removes) hand-installed orphans
Package cache zypper clean --all to reclaim disk space

Each task is a toggle — turn off what you don't want. On top of running updates, OneUp can:

  • Check for updates read-only (see the count per task before installing).
  • Check weekly in the background and notify you when updates are ready.
  • Restart just the affected services instead of rebooting, when a full reboot isn't actually required.
  • Roll back to the snapshot it took before the update, in one click.
  • Explain failures in plain English, warn about low disk space or duplicate repos before starting, and follow your desktop's light/dark theme.

There's a live log, a one-click Restart button when a reboot is genuinely needed, and a run history.

Design notes

  • OneUp never runs as root. The GUI is a thin front-end; all privileged work happens in update_system.sh, which authenticates once through your desktop's standard password prompt and keeps the credential warm for the run.
  • It gets PackageKit out of the way. The desktop's background updater grabs the package lock shortly after login; OneUp stops it first so zypper can work, and it restarts on its own afterwards.
  • A failed step never claims success. The reboot advice only appears when something was actually installed, or when zypper needs-rebooting explicitly says so — not when a step merely errored out.
  • The engine is usable on its own. update_system.sh runs fine in a plain terminal (./update_system.sh --steps=system,cache); the GUI just drives it.

Install & run

AppImage — one file, nothing to install

Grab OneUp-x86_64.AppImage from the latest release, make it executable, and run it. Everything (Python + Qt) is bundled inside:

chmod +x OneUp-x86_64.AppImage
./OneUp-x86_64.AppImage

Needs libfuse2 to run (sudo zypper install libfuse2), like any AppImage.

RPM — for zypper users

sudo zypper install ./oneup-1.0.0-0.noarch.rpm     # pulls in python3-pyside6
oneup

Or, once it's on OBS (see packaging/obs/): sudo zypper install oneup.

From source

sudo zypper install python3-pyside6
git clone https://github.com/milnet01/OneUp.git
cd OneUp
python3 updater.py

Build your own AppImage or RPM from packaging/appimage/build-appimage.sh and packaging/rpm/oneup.spec.

Requirements

  • openSUSE Tumbleweed or Leap
  • zypper (always present), and optionally flatpak and fwupd — steps for tools you don't have are skipped cleanly
  • Python 3 + PySide6 (Qt 6) for the GUI
  • A polkit/askpass agent for the password prompt (standard on KDE and GNOME)

Licence

MIT — see LICENSE. Icon uses the Material "refresh" glyph.

All releases on GitHub →