|
| 1 | +# TAGLINE |
| 2 | + |
| 3 | +Interactive Arch Linux update notifier and applier |
| 4 | + |
| 5 | +# TLDR |
| 6 | + |
| 7 | +Run a **full system update**, including news, orphans, pacnew files, and reboot checks |
| 8 | + |
| 9 | +```arch-update``` |
| 10 | + |
| 11 | +**List pending updates** without applying them |
| 12 | + |
| 13 | +```arch-update --list``` |
| 14 | + |
| 15 | +Include **AUR development packages** (-git, -svn, and similar) in the update |
| 16 | + |
| 17 | +```arch-update --devel``` |
| 18 | + |
| 19 | +Show the latest **Arch Linux news** (default 5 items) |
| 20 | + |
| 21 | +```arch-update --news``` |
| 22 | + |
| 23 | +Show the last **10 news posts** |
| 24 | + |
| 25 | +```arch-update --news 10``` |
| 26 | + |
| 27 | +Start the **systray applet** and enable it at login |
| 28 | + |
| 29 | +```arch-update --tray --enable``` |
| 30 | + |
| 31 | +Enable **periodic update checks** (at boot, then every 6 hours) |
| 32 | + |
| 33 | +```arch-update --check --enable``` |
| 34 | + |
| 35 | +Generate a default **configuration file** |
| 36 | + |
| 37 | +```arch-update --gen-config``` |
| 38 | + |
| 39 | +# SYNOPSIS |
| 40 | + |
| 41 | +**arch-update** [_OPTION_] |
| 42 | + |
| 43 | +# PARAMETERS |
| 44 | + |
| 45 | +**-c**, **--check** |
| 46 | +> Check for available updates, send a desktop notification if any exist, and refresh the systray icon. Combine with **--enable** to start the user systemd timer for periodic checks. |
| 47 | +
|
| 48 | +**-l**, **--list** |
| 49 | +> Print the list of pending updates and exit. |
| 50 | +
|
| 51 | +**-d**, **--devel** |
| 52 | +> Include AUR development packages when checking and applying updates. |
| 53 | +
|
| 54 | +**-n**, **--news** [_count_] |
| 55 | +> Display recent Arch Linux news. _count_ defaults to 5 (or to **NewsNum** in the configuration file). |
| 56 | +
|
| 57 | +**-s**, **--services** |
| 58 | +> Check for systemd services that need a restart after an upgrade. |
| 59 | +
|
| 60 | +**--gen-config** |
| 61 | +> Write a default **arch-update.conf**. Add **--force** to overwrite an existing file. |
| 62 | +
|
| 63 | +**--show-config** |
| 64 | +> Print the current configuration file. |
| 65 | +
|
| 66 | +**--edit-config** |
| 67 | +> Open the configuration file in the configured editor. |
| 68 | +
|
| 69 | +**--tray** |
| 70 | +> Start the systray applet. Combine with **--enable** to install an XDG Autostart desktop file so it starts at login. |
| 71 | +
|
| 72 | +**-D**, **--debug** |
| 73 | +> Print debug traces. |
| 74 | +
|
| 75 | +**-V**, **--version** |
| 76 | +> Print version information. |
| 77 | +
|
| 78 | +**-h**, **--help** |
| 79 | +> Print the help message. |
| 80 | +
|
| 81 | +# DESCRIPTION |
| 82 | + |
| 83 | +**arch-update** is an interactive update notifier and applier for Arch Linux. With no options it walks through the usual system-maintenance steps from the Arch Wiki: pending news, package upgrades (official repositories, and optionally AUR and Flatpak), orphan packages, old packages in the pacman cache, **pacnew**/**pacsave** files, a pending kernel that needs a reboot, and services that should be restarted after the upgrade. |
| 84 | + |
| 85 | +On a desktop it is typically used through the systray applet: **arch-update --tray --enable** starts the icon and autostarts it at login; **arch-update --check --enable** turns on the user systemd timer (boot, then every 6 hours by default). Clicking the icon runs the full update in a terminal. On a headless machine the same CLI covers listing, checking, and applying updates without the tray. |
| 86 | + |
| 87 | +Privilege elevation is done with **sudo**, **sudo-rs**, **doas**, or **run0**. AUR support uses **paru**, **yay**, or **pikaur** when installed. Desktop notifications require **libnotify**. |
| 88 | + |
| 89 | +# CONFIGURATION |
| 90 | + |
| 91 | +Optional file, read from **$XDG_CONFIG_HOME/arch-update/arch-update.conf** or **~/.config/arch-update/arch-update.conf**. Generate an example with **arch-update --gen-config**. Option names are case-sensitive. |
| 92 | + |
| 93 | +**NoColor** |
| 94 | +> Do not colorize output. |
| 95 | +
|
| 96 | +**NoVersion** |
| 97 | +> Hide version changes when listing pending updates. |
| 98 | +
|
| 99 | +**NoAUR** |
| 100 | +> Ignore AUR packages. |
| 101 | +
|
| 102 | +**NoFlatpak** |
| 103 | +> Ignore Flatpak packages. |
| 104 | +
|
| 105 | +**NoNotification** |
| 106 | +> Do not send desktop notifications. |
| 107 | +
|
| 108 | +**NewsNum=**_n_ |
| 109 | +> How many Arch news items to show (default 5). |
| 110 | +
|
| 111 | +**AURHelper=**_paru_|_yay_|_pikaur_ |
| 112 | +> AUR helper to use. If unset, the first of paru, yay, pikaur found on PATH is used. |
| 113 | +
|
| 114 | +**PrivilegeElevationCommand=**_sudo_|_sudo-rs_|_doas_|_run0_ |
| 115 | +> Privilege-elevation command. If unset, the first of those found on PATH is used. |
| 116 | +
|
| 117 | +**KeepOldPackages=**_n_ |
| 118 | +> Old package versions to keep in the pacman cache (default 3). |
| 119 | +
|
| 120 | +**KeepUninstalledPackages=**_n_ |
| 121 | +> Uninstalled package versions to keep in the cache (default 0). |
| 122 | +
|
| 123 | +**DiffProg=**_editor_ |
| 124 | +> Editor used when processing pacnew files (default **$DIFFPROG**, else **vimdiff**). |
| 125 | +
|
| 126 | +The check interval is not in this file: edit the user timer with **systemctl --user edit --full arch-update.timer** and change **OnUnitActiveSec**. |
| 127 | + |
| 128 | +# CAVEATS |
| 129 | + |
| 130 | +Arch Linux (and derivatives that use pacman) only. Applying updates needs a working privilege-elevation command; none installed is a hard error. GNOME Shell has no native systray, so the applet needs an AppIndicator extension. Clicking the tray icon uses **gio** to open a terminal; if no known emulator is installed, install **xdg-terminal-exec** and list one in **~/.config/xdg-terminals.list**. Two instances cannot run at once. |
| 131 | + |
| 132 | +# HISTORY |
| 133 | + |
| 134 | +**arch-update** is written by Robin Candau and released under GPL-3.0-or-later. It is packaged on the AUR as **arch-update**, with **arch-update-bin**, **arch-update-cli**, and **arch-update-git** variants. |
| 135 | + |
| 136 | +# INSTALL |
| 137 | + |
| 138 | +```aur: yay -S arch-update``` |
| 139 | + |
| 140 | +<!-- packages: 2026-09-15 --> |
| 141 | + |
| 142 | +# SEE ALSO |
| 143 | + |
| 144 | +[checkupdates](/man/checkupdates)(8), [pacman](/man/pacman)(8), [pacdiff](/man/pacdiff)(8), [paccache](/man/paccache)(8), [paru](/man/paru)(8), [yay](/man/yay)(8), [flatpak](/man/flatpak)(1) |
| 145 | + |
| 146 | +# RESOURCES |
| 147 | + |
| 148 | +```[Source code](https://github.com/Antiz96/arch-update)``` |
| 149 | + |
| 150 | +```[Documentation](https://github.com/Antiz96/arch-update/blob/main/README.md)``` |
| 151 | + |
| 152 | +<!-- verified: 2026-09-15 --> |
0 commit comments