An update notifier/applier for Arch Linux that assists you with important pre/post update tasks and that includes a clickeable systray applet for an easy integration with any panel on any DE/WM.
Optional support for AUR/Flatpak packages updates and desktop notifications.
Features:
- Includes a clickeable systray applet that dynamically changes to act as an update notifier/applier. Easy to integrate with any panel on any DE/WM.
- Automatic check and listing of every packages available for update.
- Offers to display the latest Arch Linux news before applying updates.
- Automatic check and listing of orphan packages and offers to remove them.
- Automatic check for old and/or uninstalled cached packages and offers to remove them.
- Lists and helps you processing pacnew/pacsave files.
- Automatic check for pending kernel updates requiring a reboot to be applied and offers to do so if there's one.
- Support for both
sudo
anddoas
. - Optional support for AUR packages (through
yay
orparu
). - Optional support for Flatpak packages.
- Optional support for desktop notifications on new available updates.
Install the arch-update AUR package.
Also check the list of optional dependencies you might need or want.
Install required dependencies:
sudo pacman -S --needed pacman-contrib curl htmlq diffutils hicolor-icon-theme python python-pyqt6 qt6-svg glib2
Additional optional dependencies you might need or want:
- yay: AUR Packages support
- paru: AUR Packages support
- flatpak: Flatpak Packages support
- libnotify: Desktop notifications support on new available updates (see https://wiki.archlinux.org/title/Desktop_notifications)
- vim: Default merge program for pacdiff
- qt6-wayland: Systray applet support on Wayland
Download the archive of the latest stable release and extract it (alternatively, you can clone this repository via git clone
).
To install arch-update
, go into the extracted/cloned directory and run the following command:
sudo make install
To uninstall arch-update
, go into the extracted/cloned directory and run the following command:
sudo make uninstall
The usage consist of starting the systray applet and enabling the systemd timer.
To start the systray applet automatically at boot, add the arch-update --tray
command to your auto-start commands/WM config or start/enable the associated systemd service like so:
systemctl --user enable --now arch-update-tray.service
The systray icon will automatically change depending on the current state of your system ('up to date' or 'updates available'). It will launch the relevant series of functions to perform a complete and proper update when clicked.
Alternatively, if you don't have/want systray support, there's a regular .desktop
file (under /usr/share/applications/arch-update.desktop
or /usr/local/share/applications/arch-update.desktop
if you installed Arch-Update
from source). Note that, unlike the systray applet, the .desktop
icon does not dynamically change depending on the current state of your system ('up to date' or 'updates available').
There is a systemd service (in /usr/lib/systemd/user/arch-update.service
or in /usr/local/lib/systemd/user/arch-update.service
if you installed Arch-Update
from source) that executes the check
function when started (see the Documentation chapter).
To start it automatically at boot and then once every hour, enable the associated systemd timer (you can modify the auto-check cycle to your liking, see the Tips and tricks - Modify the auto-check cycle chapter):
systemctl --user enable --now arch-update.timer
Once started, the systray applet appears in the systray area of your panel.
It is the icon at the right of the 'wifi' one in the screenshot below:
With the system timer enabled, Arch-Update
automatically checks for updates at boot and then once every hour. The check can be manually triggered by running the arch-update --check
command.
If there are new available updates, the systray icon will show a red circle and a desktop notification indicating the number of available updates will be sent (requires libnotify and a running notification server):
When the systray applet is clicked, it prints the list of packages available for updates inside a terminal window and asks for the user's confirmation to proceed with the installation (it can also be launched by running the arch-update
command, requires yay or paru for AUR packages support and flatpak for Flatpak packages support).
By default, if at least one Arch Linux news has been published since the last run, Arch-Update
will offer you to read the latest Arch Linux news directly from your terminal window.
The news published since the last run are as [NEW]
:
When recent news gets listed, either type the number associated to a news to read it (you'll be re-prompted to read other news afterwards so you can read multiple news in one run), or simply press "enter" to proceed with the update.
If no news has been published since the last run, Arch-Update
will directly proceed to the update after you gave your confirmation.
In both cases, from there, you just have to let Arch-Update
guide you to the various steps required for a complete and proper update of your system! 😄
Certain options can be enabled/disabled or modified via the arch-update.conf
configuration file. See the arch-update.conf documentation chapter for more details.
An update notifier/applier for Arch Linux that assists you with
important pre/post update tasks.
Run arch-update to perform the main "update" function:
Display the list of packages available for update, then ask for the user's confirmation
to proceed with the installation.
Before performing the update, offer to display the latest Arch Linux news.
Post update, check for orphan/unused packages, old cached packages, pacnew/pacsave files
and pending kernel update and, if there are, offers to process them.
Options:
-c, --check Check for available updates, send a desktop notification containing the number of available updates (if libnotify is installed)
-l, --list Display the list of pending updates
-d, --devel Include AUR development packages updates
-n, --news [Num] Display latest Arch News, you can optionally specify the number of Arch news to display with `--news [Num]` (e.g. `--news 10`)
-D, --debug Display debug traces
--gen-config Generate a default/example configuration file (see the arch-update.conf(5) man page for more details)
--tray Launch the Arch-Update systray applet
-h, --help Display this help message and exit
-V, --version Display version information and exit
Exit Codes:
0 OK
1 Invalid option
2 No privilege elevation method (sudo or doas) is installed
3 Error when launching the Arch-Update systray applet
4 User didn't gave the confirmation to proceed
5 Error when updating the packages
6 Error when calling the reboot command to apply a pending kernel update
7 No pending update when using the `-l/--list` option
8 Error when generating a configuration file with the `--gen-config` option
For more information, see the arch-update(1) man page.
Certain options can be enabled/disabled or modified via the arch-update.conf configuration file, see the arch-update.conf(5) man page.
The arch-update.conf file is an optional configuration file for arch-update to enable/disable
or modify certain options within the script.
This configuration file has to be located in "${XDG_CONFIG_HOME}/arch-update/arch-update.conf"
or "${HOME}/.config/arch-update/arch-update.conf".
A default/example configuration file can be generated by running: `arch-update --gen-config`
The supported options are:
- NoColor # Do not colorize output.
- NoVersion # Do not show versions changes for packages when listing pending updates (including when using the `-l/--list` option).
- AlwaysShowNews # Always display Arch news before updating, regardless of whether there's a new one since the last run or not.
- NewsNum=[Num] # Number of Arch news to display before updating and with the `-n/--news` option (see the arch-update(1) man page for more details). Defaults to 5.
- KeepOldPackages=[Num] # Number of old packages' versions to keep in pacman's cache. Defaults to 3.
- KeepUninstalledPackages=[Num] # Number of uninstalled packages' versions to keep in pacman's cache. Defaults to 0.
Options are case sensitive, so capital letters have to be respected.
For more information, see the arch-update.conf(5) man page.
Arch-Update supports AUR packages if yay or paru is installed:
See https://github.com/Jguer/yay and https://aur.archlinux.org/packages/yay
See https://github.com/morganamilo/paru and https://aur.archlinux.org/packages/paru
Arch-Update supports Flatpak packages if flatpak is installed:
See https://www.flatpak.org/ and https://archlinux.org/packages/extra/x86_64/flatpak/
Arch-Update supports desktop notifications when performing the --check
function if libnotify is installed (and a notification server is running):
See https://wiki.archlinux.org/title/Desktop_notifications
If you enabled the systemd.timer, the --check
option is automatically launched at boot and then once per hour.
If you want to change the check cycle, run systemctl --user edit arch-update.timer
to create an override configuration for the timer and input the following in it:
[Timer]
OnUnitActiveSec=
OnUnitActiveSec=10m
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.
You can raise your issues, feedbacks and suggestions in the issues tab.
Pull requests are welcomed as well!