- Description
- Installation
- Usage
- Documentation
- Tips & tricks and troubleshooting
- Reproduce the pre-compiled tray binary from source
- Contributing
- License
An interactive update notifier & applier for UniOS that assists you with important pre / post update tasks. Includes a systray applet for an easy integration with any desktop / graphical environment. You will see a lot of referals to Arch Linux because UniOS is a respin. This notifier is the one Arch Linux uses with stylistic changes to fit our operating system.
UniOS-Update is designed to follow usual system maintenance steps, as described in the Arch Wiki.
Features:
- Automatic check and listing of available updates.
- Check for recent Arch Linux news (and offers to display them if there are).
- Check for orphan packages (and offers to remove them if there are).
- Check for old & uninstalled packages in cache (and offers to remove them if there are).
- Check for pacnew & pacsave files (and offers to process them if there are).
- Check for pending kernel update requiring a reboot (and offers to do so if there's one).
- Check for services requiring a post upgrade restart (and offers to do so if there are).
- Support for
sudo,sudo-rs,doas&run0. - Extensive CLI.
Optional support for:
- Flatpak packages (via
flatpak). - Desktop notifications (via
libnotify). - Check for ALHP build queue or outdated mirrors (via
alhp-utils).
Install required runtime dependencies:
sudo pacman -S --needed bash systemd pacman pacman-contrib archlinux-contrib glibc libgcc curl fakeroot htmlq diffutils hicolor-icon-theme glib2 xdg-utils util-linuxAdditional optional dependencies you might want or need:
- flatpak: Flatpak Packages support
- libnotify: Desktop notifications support on new available updates (see https://wiki.archlinux.org/title/Desktop_notifications)
- alhp-utils: Check for ALHP build queue or outdated mirrors
- vim: Default diff program for pacdiff
- neovim: Default diff program for pacdiff if
EDITOR=nvim - sudo: Privilege elevation
- sudo-rs: Privilege elevation
- opendoas: Privilege elevation
Install required build and test dependencies:
sudo pacman -S --asdeps make scdoc bats cargo pkgconfDownload the archive of the latest stable release and extract it (alternatively, you can clone this repository with git).
To build and install unios-update, go into the extracted / cloned directory and run the following commands:
make # You can optionally pass the `WITH_TRAY=false` argument to not build the systray applet
make test
sudo make install # You can optionally pass the `WITH_TRAY=false` argument to not install the systray appletOnce the installation is complete, you may optionally clean up the directory of files generated during installation by running the following command:
make cleanTo uninstall unios-update, go into the extracted / cloned directory and run the following command:
sudo make uninstallFor desktop machines, the usage consist of starting the systray applet and enabling the automated update checks.
For headless machines, UniOS-Update includes an extensive CLI.
To start the systray applet and enable it automatically at boot, run the following command (preferred method for most environments, uses XDG Autostart):
unios-update --tray --enableIn case your graphical environment doesn't support XDG Autostart, add the following command your environment auto-start method instead:
Note that the small startup delay in the form of the sleep 3 command may not always be required but acts as a useful trick to avoid eventual race condition issues which may lead to the systray applet unexpectedly not starting at boot. I therefore recommend its usage as a safety measure (this small delay is already applied by default with the XDG Autostart / unios-update --tray --enable method).
sleep 3 && unios-update --trayThe systray icon dynamically changes to indicate the current state of your system ('up to date' or 'updates available'). When clicked, it launches unios-update in a terminal window via the unios-update.desktop file.
The systray applet menu shows further information (like the list of pending updates, time of the last and next checks, ...) and allows to trigger specific actions (like running UniOS-Update, check for updates, ...). See screenshots for more details.
Notes:
- GNOME shell does not support systray icons natively, GNOME users need to install the "AppIndicator and KStatusNotifierItem Support" extension for the systray applet to work.
To enable automated and periodic checks for available updates, run the following command:
unios-update --check --enableBy default, a check is performed at boot and then once every 6 hours. The check cycle can be customized, see this chapter.
Once started, the systray applet appears in the systray area of your panel.
It is the third icon on the left in the screenshot below:
On hover if there are new available updates, the systray icon shows a notification indicating the number of available updates. You can click on it and run UniOS-Update:
When the systray icon is left-clicked, unios-update is run in a terminal window
From there, just let UniOS-Update guide you through the various steps required for a complete and proper update of your system! 😄
Certain options can be enabled, disabled or modified via the unios-update.conf configuration file. See the unios-update.conf(5) man page for more details.
See unios-update --help and the unios-update(1) man page.
See the unios-update.conf(5) man page.
If you enabled the automated update checks, a check for available updates is automatically launched at boot and then once each 6 hours.
If you want to customize the check cycle, run systemctl --user edit --full unios-update.timer and modify the OnUnitActiveSec value to your liking.
For instance, if you want UninOS-Update to check for new updates every 4 hours instead:
[...]
[Timer]
OnStartupSec=15
OnUnitActiveSec=4h
[...]
Time units are s for seconds, m for minutes, h for hours, d for days...
See https://www.freedesktop.org/software/systemd/man/latest/systemd.time.html#Parsing%20Time%20Spans for more details.
In case you want UniOS-Update to check for new updates only once at boot, you can simply delete the OnUnitActiveSec line completely.
You can contribute here. We recomend following the contributing guidelines of Arch Linux.
UniOS-Update is licensed under the GPL-3.0 license (or any later version of that license).

