Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Updater Widget

An Omarchy bar-widget that reviews pending updates before you run them. It checks three sources at once and shows you what is about to be updated, then runs the full Omarchy update flow only after you confirm.

widget kind

Screenshots

bar widget

update panel

Features

  • Bar icon with a live badge showing how many updates are pending.
  • Opens a panel in the top-right corner listing pending updates grouped by source:
    • Omarchy (omarchy-update-available)
    • System (checkupdates, falls back to pacman -Qu)
    • AUR (yay -Qua, only when foreign packages are installed)
  • Update now button that launches omarchy-launch-floating-terminal-with-presentation omarchy-update, so you still get the confirmation step before anything is applied.
  • Full keyboard navigation (mouse or keyboard cursor), refresh button, and IPC control.
  • Automatic background refresh (configurable interval, 15 minutes by default).

Requirements

  • Omarchy with a running shell (tested on 4.0.0.alpha)
  • python3 (used by the collector script to build the JSON payload)
  • checkupdates (from pacman-contrib) or pacman
  • yay (for AUR updates)

Installation

The plugin is developed in this directory and installed by copying it into Omarchy's user plugin folder.

  1. Copy the plugin files:

    mkdir -p ~/.config/omarchy/plugins/gennaro.updater
    cp manifest.json Updater.qml collect-updates.sh \
      ~/.config/omarchy/plugins/gennaro.updater/
  2. (Optional) Validate the plugin:

    omarchy plugin validate ~/.config/omarchy/plugins/gennaro.updater
  3. Enable it and place it on the right side of the bar (top-right corner):

    omarchy plugin enable gennaro.updater --section right
  4. Reload the shell so the widget appears:

    omarchy-restart-shell

    Note: omarchy-refresh-shell rewrites shell.json back to Omarchy defaults and can drop your custom bar layout, plugins, and widgets. Prefer omarchy-restart-shell (or the plugin rescan via IPC) after installing.

Usage

  • Left-click the bar icon: open/close the update panel.
  • Right-click (or middle-click): force a refresh.
  • Update now: runs the real update flow; Omarchy's confirmation dialog still runs first.
  • Keyboard: arrows to navigate, Enter to activate, Esc to close, r to refresh, u to update.

IPC

The widget registers an IpcHandler under the target gennaro.updater:

omarchy shell gennaro.updater toggle     # open/close the panel
omarchy shell gennaro.updater refresh    # force a rescan
omarchy shell gennaro.updater update     # start the update flow
omarchy shell gennaro.updater query      # print the current state as JSON

Configuration

The refresh interval can be set per-widget in the Omarchy settings under the widget's entry:

  • refreshIntervalSec — seconds between automatic rescans (default 900, clamped to a minimum of 60).

You can also edit the inline entry in ~/.config/omarchy/shell.json:

{
  "id": "gennaro.updater",
  "refreshIntervalSec": 1800
}

Updating the widget

After changing the QML or the collector script, copy the files again and restart the shell:

cp manifest.json Updater.qml collect-updates.sh \
  ~/.config/omarchy/plugins/gennaro.updater/
omarchy-restart-shell

Uninstall

omarchy plugin disable gennaro.updater
rm -rf ~/.config/omarchy/plugins/gennaro.updater
omarchy-restart-shell

If you want the widget gone from the bar too, remove its entry from the right array in ~/.config/omarchy/shell.json.

How it works

collect-updates.sh runs the three checks, converts each output into a structured JSON document (parsing name oldver -> newver lines into { name, old, new } objects), and prints it to stdout. Updater.qml runs the script through a Process + StdioCollector, parses the JSON, and drives the badge, the panel sections, and the cursor model from it. "Omarchy is up to date" lines are filtered out so the widget only reports real pending updates.

Troubleshooting

  • The panel shows up to date even right after an install: the system is currently up to date; the widget still lists nothing until an update is actually pending.
  • AUR section is empty although AUR packages exist: the collector only queries yay when pacman -Qem reports foreign packages, and skips it otherwise.
  • The bar icon does not appear after enabling: run omarchy plugin list to confirm the plugin is enabled, then restart the shell.

About

An Omarchy bar-widget that reviews pending updates before you run them.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages