diff --git a/README-fr.md b/README-fr.md index 78e3434..e64e07a 100644 --- a/README-fr.md +++ b/README-fr.md @@ -18,32 +18,33 @@ ## Description -Un notificateur & applicateur de mises à jour pour Arch Linux qui vous assiste dans les tâches importantes d'avant / après mise à jour et qui inclut une applet systray cliquable pour une intégration facile avec n'importe quel panneau sur n'importe quel environnement de bureau / gestionnaire de fenêtres. -Prise en charge optionnelle des paquets AUR / Flatpak et des notifications de bureau. +Un notificateur & applicateur de mises à jour pour Arch Linux qui vous assiste dans les tâches importantes d'avant / après mise à jour. +Inclut une applet systray dynamique & cliquable pour une intégration facile avec n'importe quel environnement de bureau / gestionnaire de fenêtres. Arch-Update est conçu pour suivre les étapes usuelles de maintenance du système, telles que décrites dans le [Arch Wiki](https://wiki.archlinux.org/title/System_maintenance). Fonctionnalités : -- Inclut une applet systray cliquable qui change dynamiquement pour agir comme un notificateur & applicateur de mise à jour. Facile à intégrer avec n'importe quel panneau sur n'importe quel environnement de bureau & gestionnaire de fenêtres. -- Vérification et listing automatiques de tous les paquets disponibles pour la mise à jour. -- Propose d'afficher les news récentes d'Arch Linux avant d'appliquer les mises à jour. -- Vérification et listing automatiques des paquets orphelins et propose de les supprimer. -- Vérification automatique de la présence d'anciens paquets et / ou paquets désinstallés dans le cache et propose de les supprimer. -- Listing et aide au traitement des fichiers pacnew / pacsave. -- Vérification automatique des mises à jour du noyau en attente nécessitant un redémarrage et propose de redémarrer s'il y en a une. -- Vérification automatique des services nécessitant un redémarrage après mise à jour et propose de les redémarrer s'il y en a. +- Vérification et listing automatiques des mises à jour disponibles. +- Vérification des Arch Linux news récentes (et propose de les afficher s'il y en a). +- Vérification des paquets orphelins (et propose de les supprimer s'il y en a). +- Vérification d'anciens paquets & paquets désinstallés dans le cache (et propose de les supprimer s'il y en a). +- Vérification des fichiers pacnew & pacsave (et propose de les traiters s'il y en a). +- Vérification des mises à jour du noyau en attente nécessitant un redémarrage (et propose de le faire s'il y en a une). +- Vérification des services nécessitant un redémarrage après mise à jour (et propose de le faire s'il y en a). - Support de `sudo`, `doas` et `run0`. -- Prise en charge optionnelle des paquets AUR (via `paru`, `yay` ou `pikaur`). -- Prise en charge optionnelle des paquets Flatpak. -- Prise en charge optionnelle des notifications de bureau lors de nouvelles mises à jour disponibles. + +Support optionnel pour : + +- Les paquets AUR (via `paru`, `yay` ou `pikaur`). +- Les paquets Flatpak (via `flatpak`). +- Les notifications de bureau (via `libnotify`). ## Installation ### AUR -Installez le paquet AUR [arch-update](https://aur.archlinux.org/packages/arch-update "arch-update AUR package"). -Consultez également la liste des dépendances optionnelles (disponible dans la section ["depuis la source"](#depuis-la-source) ci-dessous) dont vous pourriez avoir besoin. +Installez le paquet AUR [arch-update](https://aur.archlinux.org/packages/arch-update "arch-update AUR package") (consultez également la liste des dépendances optionnelles dont vous pourriez avoir envie ou besoin). ### Depuis la source @@ -53,7 +54,7 @@ Installez les dépendances requises : sudo pacman -S --needed pacman-contrib archlinux-contrib curl fakeroot htmlq diffutils hicolor-icon-theme python python-pyqt6 qt6-svg glib2 ``` -Dépendances optionnelles supplémentaires dont vous pourriez avoir besoin ou que vous pourriez souhaiter : +Dépendances optionnelles supplémentaires dont vous pourriez avoir envie ou besoin : - [paru](https://aur.archlinux.org/packages/paru) : Support des paquets AUR - [yay](https://aur.archlinux.org/packages/yay) : Support des paquets AUR @@ -69,7 +70,7 @@ Installez les dépendances de compilation requises : sudo pacman -S --asdeps make scdoc bats ``` -Téléchargez l'archive de la [dernière version stable](https://github.com/Antiz96/arch-update/releases/latest) et extrayez la *(vous pouvez également cloner ce référentiel via `git clone`)*. +Téléchargez l'archive de la [dernière version stable](https://github.com/Antiz96/arch-update/releases/latest) et extrayez la (vous pouvez également cloner ce référentiel avec `git`). Pour installer `arch-update`, allez dans le répertoire extrait / cloné et exécutez les commandes suivantes : @@ -113,23 +114,28 @@ arch-update --tray --enable systemctl --user enable --now arch-update-tray.service ``` -Si vous utilisez un gestionnaire de fenêtre ou un compositeur Wayland, vous pouvez plutôt ajouter la commande `arch-update --tray` à vos applications "auto-start" dans votre fichier de configuration. +- Ajouter la commande suivante à vos applications "auto-start" / votre fichier de configuration (si vous utilisez un gestionnaire de fenêtre ou un compositeur Wayland) : + +```bash +arch-update --tray +``` **Si l'applet systray ne démarre pas au démarrage du système malgré tout**, veuillez lire [ce chapitre](#lapplet-systray-ne-démarre-pas-au-démarrage-du-système). -L'icône du systray changera automatiquement en fonction de l'état actuel de votre système ('à jour' ou 'mises à jour disponibles'). Lorsque vous cliquez dessus, elle lance `arch-update` dans une fenêtre de terminal via le fichier [arch-update.desktop](https://github.com/Antiz96/arch-update/blob/main/res/desktop/arch-update.desktop). +L'icône du systray change dynamiquement pour indiquer l'état actuel de votre système ('à jour' ou 'mises à jour disponibles'). Lorsque vous cliquez dessus, elle lance `arch-update` dans une fenêtre de terminal via le fichier [arch-update.desktop](https://github.com/Antiz96/arch-update/blob/main/res/desktop/arch-update.desktop). **Si cliquer sur l'applet systray ne fait rien**, veuillez lire [ce chapitre](#lancer-arch-update-dans-un-émulateur-de-terminal-spécifique). ### Le timer systemd -Il existe un service systemd (sous `/usr/lib/systemd/user/arch-update.service` ou `/usr/local/lib/systemd/user/arch-update.service` si vous avez installé `Arch-Update` [depuis la source](#depuis-la-source)) qui exécute la fonction `check` quand il est démarré (voir le chapitre [Documentation](#documentation)). -Pour le démarrer automatiquement **au démarrage du système puis une fois toutes les heures**, activez le timer systemd associé (vous pouvez modifier le cycle de vérification automatique à votre guise, voir les [Trucs et astuces - Modifier le cycle de vérification automatique](#modifier-le-cycle-de-vérification-automatique)) : +Pour effectuer des vérifications automatiques et périodiques des mises à jour disponibles, activez le timer systemd associé : ```bash systemctl --user enable --now arch-update.timer ``` +Par défaut, une vérification est effectuée **au démarrage du système puis une fois toutes les heures**. Le cycle de vérification peut être personnalisé, voir [ce chapitre](#modifier-le-cycle-de-vérification). + ### Captures d'écran Une fois démarrée, l'applet systray apparait dans la zone systray de votre panneau. @@ -137,11 +143,11 @@ C'est l'icône à droite de celle du wifi dans la capture d'écran ci-dessous: ![systray-icon](https://github.com/Antiz96/arch-update/assets/53110319/fe032e68-3582-470a-9e6d-b51a9ea8c1ba) -Avec [le systemd timer](#le-timer-systemd) activé, `Arch-Update` vérifie automatiquement les mises à jour au démarrage du système puis une fois chaque heure. La vérification peut être manuellement déclenchée en exécutant la commande `arch-update --check` ou en faisant un clic droit sur l'icône du systray puis en cliquant sur l'entrée `Vérifier les mises à jour` depuis le menu : +Avec [le timer systemd](#le-timer-systemd) activé, les vérifications des mises à jour sont effectuées automatiqument et périodiquement, mais vous pouvez en déclencher une manuellement depuise l'applet systray en faisant un clic droit dessus puis en cliquant sur l'entrée `Vérifier les mises à jour` depuis le menu : ![check_menu_fr](https://github.com/user-attachments/assets/b0b7730b-0196-4973-ac90-bceb8a74845e) -Si de nouvelles mises à jour sont disponibles, l'icône du systray affichera un cercle rouge et une notification de bureau indiquant le nombre de mises à jour disponibles sera envoyée (nécessite [libnotify](https://archlinux.org/packages/extra/x86_64/libnotify/ "paquet libnotify") et un serveur de notification en cours d'exécution) : +Si de nouvelles mises à jour sont disponibles, l'icône du systray affiche un cercle rouge et une notification de bureau indiquant le nombre de mises à jour disponibles est envoyée : ![notif_fr](https://github.com/user-attachments/assets/56d72147-bde4-492b-8ad1-20caed9f22a9) @@ -149,149 +155,69 @@ Vous pouvez alors voir la liste des mises à jour disponibles dans l'infobulle d ![tooltip_fr](https://github.com/user-attachments/assets/8bc3d339-f7ab-4c8b-aa3f-2b88ea68af42) -Alternativement, vous pouvez voir la liste des mises à jour disponible dans le menu déroulant en faisant un clic droit sur l'icône du systray : +Autrement, vous pouvez voir la liste des mises à jour disponible dans le menu déroulant en faisant un clic droit sur l'icône du systray : ![dropdown_menu_fr](https://github.com/user-attachments/assets/60c3c0d8-8091-4047-b8da-ce8f8bc72476) -Quand l'icône du systray est cliquée, elle affiche la liste des paquets disponibles pour la mise à jour dans une fenêtre de terminal et demande la confirmation de l'utilisateur pour procéder à l'installation (peut aussi être lancé en exécutant la commande `arch-update`, requiert [paru](https://aur.archlinux.org/packages/paru "paru"), [yay](https://aur.archlinux.org/packages/yay "yay") ou [pikaur](https://aur.archlinux.org/packages/pikaur "pikaur") pour le support des paquets AUR et [flatpak](https://archlinux.org/packages/extra/x86_64/flatpak/) pour le support des paquets Flatpak). +Quand l'icône du systray est cliquée, elle lance `arch-update` dans une fenêtre de terminal : ![listing_packages-FR](https://github.com/Antiz96/arch-update/assets/53110319/60547cde-f327-46f8-907c-61bf9bbee6c5) -Par défaut, si au moins une news Arch Linux a été publiée depuis la dernière exécution, `Arch-Update` vous proposera de lire les dernières news Arch Linux directement depuis votre fenêtre de terminal. -Les news publiées depuis la dernière exécution sont tagguées comme `[NOUVEAU]` : +Si au moins une news Arch Linux a été publiée depuis la dernière exécution, `Arch-Update` vous proposera de lire les dernières news Arch Linux directement depuis la fenêtre de terminal. +Les news publiées depuis la dernière exécution sont labellisées comme `[NOUVEAU]` : -![listing_news-FR](https://github.com/Antiz96/arch-update/assets/53110319/ec4032f3-835e-418c-b19a-b7bd089d6bd9) +![listing_news-FR](https://github.com/Antiz96/arch-update/assets/53110319/72819197-d4f7-4c50-af21-0aac1c60ba41) -Quand la liste des news récentes est affichée, vous pouvez sélectionner les news à lire (par exemple: 1 3 5), sélectionner 0 pour toutes les lire ou appuyer sur "entrée" pour procéder à la mise à jour. -Si aucune news n'a été publiée depuis la dernière exécution, `Arch-Update` procédera directement à la mise à jour après que vous ayez donné votre confirmation. +Si aucune news n'a été publiée depuis la dernière exécution, `Arch-Update` demande directement votre confirmation pour procéder à la mise à jour. -Dans les deux cas, à partir de là, vous avez simplement à laisser `Arch-Update` vous guider à travers les différentes étapes requises pour une mise à jour complète et appropriée de votre système ! :smile: +À partir de là, laissez simplement `Arch-Update` vous guider à travers les différentes étapes requises pour une mise à jour complète et appropriée de votre système ! :smile: -Certaines options peuvent être activées, désactivées ou modifiées via le fichier de configuration `arch-update.conf`. Voir le [chapitre de documentation arch-update.conf](#fichier-de-configuration-arch-update) pour plus de détails. +Certaines options peuvent être activées, désactivées ou modifiées via le fichier de configuration `arch-update.conf`. Voir la [page de manuel arch-update.conf(5)](https://github.com/Antiz96/arch-update/blob/main/doc/man/fr/arch-update.conf.5.scd) pour plus de détails. ## Documentation ### arch-update -```text -Un notificateur & applicateur de mises à jour pour Arch Linux qui vous assiste dans les -tâches importantes d'avant / après mise à jour. - -Lancez arch-update pour exécuter la fonction principale « update » : -Afficher la liste des paquets disponibles pour mise à jour, puis demander la confirmation de l'utilisateur -pour procéder à l'installation. -Avant d'effectuer la mise à jour, propose d'afficher les dernières Arch news. -Après la mise à jour, vérification de la présence de paquets orphelins & inutilisés, d'anciens paquets mis en cache, -de fichiers pacnew & pacsave, de mise à jour du noyau en attente ainsi que des services nécessitant un redémarrage après mise à jour -et, s'il y en a, propose de les traiter. - -Options : --c, --check Vérifier les mises à jour disponibles, changer l'icône du systray et envoyer une notification de bureau contenant le nombre de mises à jour disponibles (s'il y a des nouvelles mises à jour disponibles depuis le dernier check). --l, --list Afficher la liste des mises à jour en attente. --d, --devel Inclure les mises à jour des paquets de développement AUR. --n, --news [Num] Afficher les dernieres Arch News, vous pouvez optionellement spécifier le nombre de Arch news à afficher avec `--news [Num]` (e.g. `--news 10`). --D, --debug Afficher les traces de débogage. ---gen-config Générer un fichier de configuration `arch-update.conf` par défaut / exemple (voir la page de manuel arch-update.conf(5) pour plus de détails), vous pouvez optionnellement passer l'argument `--force` pour écraser un fichier de configuration `arch-update.conf` existant. ---show-config Afficher le fichier de configuration `arch-update.conf` actuellement utilisé (s'il existe). ---edit-config Editer le fichier de configuration `arch-update.conf` actuellement utilisé (s'il existe). ---tray Lancer l'applet systray d'Arch-Update, vous pouvez optionnellement ajouter l'argument `--enable` pour la démarrer automatiquement au démarrage du système.. --h, --help Afficher ce message d'aide et quitter. --V, --version Afficher les informations de version et quitter. - -Codes de sortie : -0 OK. -1 Option invalide. -2 Aucune commande d'élévation de privilège (sudo, doas ou run0) n'est installée ou celle définie dans le fichier de configuration `arch-update.conf` n'est pas disponible. -3 Erreur lors du lancement de l'applet systray d'Arch-Update. -4 L'utilisateur n'a pas donné la confirmation de procéder. -5 Erreur lors de la mise à jour des paquets. -6 Erreur lors de l'appel de la commande reboot pour appliquer une mise à jour du noyau en attente. -7 Aucune mise à jour en attente durant l'utilisation de l'option `-l / --list`. -8 Erreur lors de la génération d'un fichier de configuration avec l'option `--gen-config`. -9 Erreur lors de la lecture du fichier de configuration avec l'option `--show-config`. -10 Erreur lors de la creation du fichier desktop autostart pour l'applet systray avec l'option `--tray --enable`. -11 Erreur lors du redémarrage des services nécessitant un redémarrage après mise à jour. -12 Erreur lors du traitement des fichiers pacnew. -13 Erreur lors de l'édition du fichier de configuration avec l'option `--edit-config`. -14 Le dossier de librairies n'a pas été trouvé. -15 L'éditeur "diff prog" défini dans le fichier de configuration `arch-update.conf` n'est pas disponible. -``` - -Pour plus d'informations, consultez la page de manuel arch-update(1). -Certaines options peuvent être activées, désactivées ou modifiées via le fichier de configuration arch-update.conf, voir la page de manuel arch-update.conf(5). +Voir `arch-update --help` et la [page de manuel arch-update(1)](https://github.com/Antiz96/arch-update/blob/main/doc/man/fr/arch-update.1.scd). ### Fichier de configuration arch-update -```text -Le fichier arch-update.conf est un fichier de configuration facultatif pour arch-update permettant -d'activer, désactiver ou modifier certaines options dans le script. - -Ce fichier de configuration doit se trouver dans "${XDG_CONFIG_HOME}/arch-update/arch-update.conf" -ou "${HOME}/.config/arch-update/arch-update.conf". -Un fichier de configuration par défaut / exemple peut être généré en exécutant : `arch-update --gen-config` - -Les options prises en charge sont : - -- NoColor # Ne pas coloriser la sortie. -- NoVersion # Ne pas afficher les modifications de versions des paquets lors du listing des mises à jour en attente (y compris lors de l'utilisation de l'option `-l / --list`). -- NewsNum=[Num] # Nombre de Arch news à affcher avant la mise à jour et avec l'option `-n / --news` (voir la page de manuel arch-update(1) pour plus de details). La valeur par défaut est 5. -- AURHelper=[AUR Helper] # AUR helper à utiliser pour la prise en charge des paquets AUR. Les valeurs valides sont `paru`, `yay` ou `pikaur`. Si cette option n'est pas spécifiée, Arch-Update utilisera le premier AUR helper disponible dans l'ordre suivant : `paru` puis `yay` puis `pikaur` (si aucun d'eux n'est installé, Arch-Update ne prendra pas en compte les paquets AUR). -- PrivilegeElevationCommand=[Cmd] # Commande à utiliser pour l'élévation de privilège. Les valeurs valides sont `sudo`, `doas` ou `run0`. Si cette option n'est pas spécifiée, Arch-Update utilisera la première commande disponible dans l'odre suivant : `sudo`, `doas` puis `run0`. -- KeepOldPackages=[Num] # Nombre d'anciennes versions de paquets à conserver dans le cache de pacman. La valeur par défaut est 3. -- KeepUninstalledPackages=[Num] # Nombre de versions de paquets désinstallés à conserver dans le cache de pacman. La valeur par défaut est 0. -- DiffProg=[Editeur] # Editeur à utiliser pour visualiser / editer les différences durant le traitement des fichiers pacnew. La valeur par défaut est la valeur de la variable d'environnement `$DIFFPROG` (ou `vimdiff` si `$DIFFPROG` n'est pas paramétrée). -- TrayIconStyle=[Style / Color] # Style à utiliser pour l'icône de l'applet systray. Les valeurs valides sont les variantes de style / couleur disponibles pour le set d'icône, listées ici : https://github.com/Antiz96/arch-update/tree/main/res/icons. La valeur par défaut est "light". - -Les options sont sensibles à la casse, les majuscules doivent donc être respectées. -``` - -Pour plus d'informations, consultez la page de manuel arch-update.conf(5). +Voir la [page de manuel arch-update.conf(5)](https://github.com/Antiz96/arch-update/blob/main/doc/man/fr/arch-update.conf.5.scd). ## Trucs et astuces -### Support du AUR - -Arch-Update prend en charge les paquets AUR si **paru**, **yay** ou **pikaur** est installé : -Voir et -Voir et -Voir et - -### Support de Flatpak - -Arch-Update prend en charge les paquets Flatpak si **flatpak** est installé : -Voir et - -### Support des notifications de bureau - -Arch-Update prend en charge les notifications de bureau lors de l'exécution de la fonction `--check` si **libnotify** est installé (et qu'un serveur de notification est en cours d'exécution) : -Voir - ### L'applet systray ne démarre pas au démarrage du système Assurez vous d'avoir suivi les instructions de [ce chapitre](#lapplet-systray). Si l'applet systray ne démarre pas malgré tout, cela peut être le résultat d'une [situation de compétition](https://fr.wikipedia.org/wiki/Situation_de_comp%C3%A9tition). -Dans ce cas, il peut être utile de légèrement retarder le démarrage de l'applet systray en utilisant une déclaration `sleep` au préalable : +Pour éviter ceci, vous pouvez ajouter un léger délai au démarrage de l'applet systray en utilisant la commande `sleep` : - Si vous avez utilisé `arch-update --tray --enable`, modifiez la ligne `Exec=` dans le fichier `arch-update-tray.desktop` (qui se trouve sous `~/.config/autostart/` par défaut), comme ceci : -> Exec=sh -c "sleep 3 && arch-update --tray" +```text +Exec=sh -c "sleep 3 && arch-update --tray" +``` - Si vous avez utilisé le service systemd `arch-update-tray.service`, exécutez `systemctl --user edit --full arch-update-tray.service` et modifiez la ligne `ExecStart=`, comme ceci : -> ExecStart=sh -c "sleep 3 && arch-update --tray" +```text +ExecStart=sh -c "sleep 3 && arch-update --tray" +``` -- Si vous utilisez un gestionnaire de fenêtres ou un compositeur Wayland, ajoutez une déclaration `sleep` avant la commande `arch-update --tray` dans vos applications "auto-start" dans votre fichier de configuration, comme ceci : +- Si vous utilisez un gestionnaire de fenêtres ou un compositeur Wayland, modifiez la commande dans vos applications "auto-start" / vôtre fichier de configuration, comme ceci : -> `sleep 3 && arch-update --tray` +```text +sleep 3 && arch-update --tray +``` -Si l'applet systray ne démarre toujours au démarrage du système, essayez de graduellement augmenter la valeur du `sleep`. +Si l'applet systray ne démarre toujours pas au démarrage du système, essayez de graduellement augmenter la valeur du `sleep`. -### Modifier le cycle de vérification automatique +### Modifier le cycle de vérification -Si vous avez activé le [timer systemd](#le-timer-systemd), l'option `--check` est automatiquement lancée au démarrage du système puis une fois par heure. +Si vous avez activé le [timer systemd](#le-timer-systemd), une vérification des mises à jour disponible est lancée au démarrage du système puis une fois par heure. -Si vous souhaitez modifier le cycle de vérification, exécutez la commande `systemctl --user edit --full arch-update.timer` et modifiez la valeur `OnUnitActiveSec` à votre convenance. +Si vous souhaitez personnaliser le cycle de vérification, exécutez la commande `systemctl --user edit --full arch-update.timer` et modifiez la valeur `OnUnitActiveSec` à votre convenance. Par exemple, si vous voulez qu'`Arch-Update` vérifie plutôt les nouvelles mises à jour toutes les 10 minutes : ```text @@ -310,14 +236,14 @@ Dans le cas où vous voulez qu'`Arch-Update` ne vérifie les nouvelles mises à ### Lancer Arch-Update dans un émulateur de terminal spécifique `gio` (utilisé pour lancer l'application `arch-update` dans un terminal via le fichier `arch-update.desktop` lorsque l'applet systray est cliquée) a actuellement une liste limitée d'émulateurs de terminal connus par défaut. -Ainsi, si aucun de ces émulateurs de terminal "connus" n'est installé sur votre système, vous pourriez être confronté à un problème où le fait de cliquer sur l'applet du systray ne fait rien (car `gio` n'a pas pu trouver un émulateur de terminal dans la liste en question). Par ailleurs, vous pouvez avoir plusieurs émulateurs de terminal installés sur votre système. Dans les deux cas, vous pouvez spécifier quel émulateur de terminal utiliser. +Ainsi, si aucun de ces émulateurs de terminal "connus" n'est installé sur votre système, vous pourriez être confronté à un problème où le fait de cliquer sur l'applet du systray ne fait rien (car `gio` n'a pas pu trouver un émulateur de terminal dans la liste en question). Par ailleurs, vous pouvez avoir plusieurs émulateurs de terminal installés sur votre système. Dans les deux cas, vous pouvez spécifier l'émulateur de terminal à utiliser. Pour ce faire, installez le paquet AUR [xdg-terminal-exec](https://aur.archlinux.org/packages/xdg-terminal-exec), créez le fichier `~/.config/xdg-terminals.list` et ajoutez-y le nom du fichier `.desktop` de l'émulateur de terminal de votre choix (par exemple `Alacritty.desktop`). Voir pour plus de détails. ## Contribuer -Veuillez lire le [guide de contribution](https://github.com/Antiz96/arch-update/blob/main/CONTRIBUTING.md). +Voir le [guide de contribution](https://github.com/Antiz96/arch-update/blob/main/CONTRIBUTING.md). ## Licence diff --git a/README.md b/README.md index 74fb018..1bbc8e6 100644 --- a/README.md +++ b/README.md @@ -18,32 +18,33 @@ ## Description -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 Desktop Environment / Window Manager. -Optional support for AUR / Flatpak packages and desktop notifications. +An update notifier & applier for Arch Linux that assists you with important pre / post update tasks. +Includes a dynamic & clickeable systray applet for an easy integration with any Desktop Environment / Window Manager. Arch-Update is designed to follow usual system maintenance steps, as described in the [Arch Wiki](https://wiki.archlinux.org/title/System_maintenance). Features: -- Includes a clickeable systray applet that dynamically changes to act as an update notifier & applier. Easy to integrate with any panel on any Desktop Environment & Window Manager. -- 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. -- Automatic check for services requiring a post upgrade restart and offers to do so if there are. +- 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`, `doas` & `run0`. -- Optional support for AUR packages (through `paru`, `yay` or `pikaur`). -- Optional support for Flatpak packages. -- Optional support for desktop notifications on new available updates. + +Optional support for: + +- AUR packages (via `paru`, `yay` or `pikaur`). +- Flatpak packages (via `flatpak`). +- Desktop notifications (via `libnotify`). ## Installation ### AUR -Install the [arch-update](https://aur.archlinux.org/packages/arch-update "arch-update AUR package") AUR package. -See also the list of optional dependencies (available in the ["from source"](#from-source) section below) you may need. +Install the [arch-update](https://aur.archlinux.org/packages/arch-update "arch-update AUR package") AUR package (also check the list of optional dependencies for anything you may want or need). ### From Source @@ -53,7 +54,7 @@ Install required dependencies: sudo pacman -S --needed pacman-contrib archlinux-contrib curl fakeroot htmlq diffutils hicolor-icon-theme python python-pyqt6 qt6-svg glib2 ``` -Additional optional dependencies you might need or want: +Additional optional dependencies you might want or need: - [paru](https://aur.archlinux.org/packages/paru): AUR Packages support - [yay](https://aur.archlinux.org/packages/yay): AUR Packages support @@ -69,7 +70,7 @@ Install required build dependencies: sudo pacman -S --asdeps make scdoc bats ``` -Download the archive of the [latest stable release](https://github.com/Antiz96/arch-update/releases/latest) and extract it *(alternatively, you can clone this repository via `git clone`)*. +Download the archive of the [latest stable release](https://github.com/Antiz96/arch-update/releases/latest) and extract it (alternatively, you can clone this repository with `git`). To install `arch-update`, go into the extracted / cloned directory and run the following commands: @@ -113,23 +114,28 @@ arch-update --tray --enable systemctl --user enable --now arch-update-tray.service ``` -If you use a Window Manager or a Wayland Compositor, you can add the `arch-update --tray` command to your "auto-start" apps in your configuration file instead. +- Add the following command to your "auto-start" apps / configuration file (in case you use a Window Manager or a Wayland Compositor): + +```bash +arch-update --tray +``` **If the systray applet doesn't start at boot regardless**, please read [this chapter](#the-systray-applet-does-not-start-at-boot). -The systray icon will automatically change depending on the current state of your system ('up to date' or 'updates available'). When clicked, it launches `arch-update` in a terminal window via the [arch-update.desktop](https://github.com/Antiz96/arch-update/blob/main/res/desktop/arch-update.desktop) file. +The systray icon dynamically changes to indicate the current state of your system ('up to date' or 'updates available'). When clicked, it launches `arch-update` in a terminal window via the [arch-update.desktop](https://github.com/Antiz96/arch-update/blob/main/res/desktop/arch-update.desktop) file. **If clicking the systray applet does nothing**, please read [this chapter](#run-arch-update-in-a-specific-terminal-emulator). ### The systemd timer -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](#from-source)) that executes the `check` function when started (see the [Documentation](#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](#modify-the-auto-check-cycle) chapter): +To perform automatic and periodic checks for available updates, enable the associated systemd timer: ```bash systemctl --user enable --now arch-update.timer ``` +By default, a check is performed **at boot and then once every hour**. The check cycle can be customized, see [this chapter](#modify-the-check-cycle). + ### Screenshots Once started, the systray applet appears in the systray area of your panel. @@ -137,11 +143,11 @@ It is the icon at the right of the 'wifi' one in the screenshot below: ![systray-icon](https://github.com/Antiz96/arch-update/assets/53110319/fe032e68-3582-470a-9e6d-b51a9ea8c1ba) -With [the system timer](#the-systemd-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 or by right-clicking the systray icon and then clicking on the `Check for updates` menu entry: +With [the systemd timer](#the-systemd-timer) enabled, checks for updates are automatically and periodically performed, but you can manually trigger one from the systray applet icon by right-clicking it and then clicking on the `Check for updates` menu entry: ![check_for_updates](https://github.com/user-attachments/assets/86c3107d-d7aa-4ced-b9aa-69668c2e3c2a) -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](https://archlinux.org/packages/extra/x86_64/libnotify/ "libnotify package") and a running notification server): +If there are new available updates, the systray icon shows a red circle and a desktop notification indicating the number of available updates is sent: ![notif](https://github.com/user-attachments/assets/55301470-fab6-463f-af2e-ebe4e3d65af7) @@ -153,145 +159,65 @@ Alternatively, you can see the list of available updates in the dropdown menu en ![dropdown_menu](https://github.com/user-attachments/assets/4621d7d2-a9e4-40c3-851f-ee1687e6cf1e) -When the systray icon is left-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 [paru](https://aur.archlinux.org/packages/paru "paru"), [yay](https://aur.archlinux.org/packages/yay "yay") or [pikaur](https://aur.archlinux.org/packages/pikaur "pikaur") for AUR packages support and [flatpak](https://archlinux.org/packages/extra/x86_64/flatpak/) for Flatpak packages support). +When the systray icon is left-clicked, it runs `arch-update` in a terminal window: ![listing_packages](https://github.com/Antiz96/arch-update/assets/53110319/ed552414-0dff-4cff-84d2-6ff13340259d) -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. +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 the terminal window. The news published since the last run are tagged as `[NEW]`: ![listing_news](https://github.com/Antiz96/arch-update/assets/53110319/ec4032f3-835e-418c-b19a-b7bd089d6bd9) -When recent news get listed, you can select the news to read (e.g. 1 3 5), select 0 to read them all or press "enter" to proceed with update. -If no news has been published since the last run, `Arch-Update` will directly proceed to the update after you gave your confirmation. +If no news has been published since the last run, `Arch-Update` directly asks for your confirmation to proceed with update. -In both cases, from there, you just have to let `Arch-Update` guide you through the various steps required for a complete and proper update of your system! :smile: +From there, just let `Arch-Update` guide you through the various steps required for a complete and proper update of your system! :smile: -Certain options can be enabled, disabled or modified via the `arch-update.conf` configuration file. See the [arch-update.conf documentation chapter](#arch-update-configuration-file) for more details. +Certain options can be enabled, disabled or modified via the `arch-update.conf` configuration file. See the [arch-update.conf(5) man page](https://github.com/Antiz96/arch-update/blob/main/doc/man/arch-update.conf.5.scd) for more details. ## Documentation ### arch-update -```text -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, -pending kernel update, as well as services requiring a post upgrade restart and, if there are, -offers to process them. - -Options: --c, --check Check for available updates, change the systray icon and send a desktop notification containing the number of available updates (if there are new available updates compared to the last check). --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 `arch-update.conf` configuration file (see the arch-update.conf(5) man page for more details), you can optionally pass the `--force` argument to overwrite any existing `arch-update.conf` configuration file. ---show-config Display the `arch-update.conf` configuration file currently used (if it exists). ---edit-config Edit the `arch-update.conf` configuration file currently used (if it exists). ---tray Launch the Arch-Update systray applet, you can optionally add the `--enable` argument to start it automatically at boot.. --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 command (sudo, doas or run0) is installed or the one set in the `arch-update.conf` configuration file isn't found. -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. -9 Error when reading the configuration file with the `--show-config` option. -10 Error when creating the autostart desktop file for the systray applet with the `--tray --enable` option. -11 Error when restarting services that require a post upgrade restart. -12 Error during the pacnew files processing. -13 Error when editing the configuration file with the `--edit-config` option. -14 Libraries directory not found. -15 The diff prog editor set in the `arch-update.conf` configuration file isn't found. -``` - -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. +See `arch-update --help` and the [arch-update(1) man page](https://github.com/Antiz96/arch-update/blob/main/doc/man/arch-update.1.scd). ### arch-update configuration file -```text -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). -- 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. -- AURHelper=[AUR Helper] # AUR helper to be used for AUR packages support. Valid values are `paru`, `yay` or `pikaur`. If this option is not set, Arch-Update will use the first AUR helper available in the following order: `paru` then `yay` then `pikaur` (in case none of them is installed, Arch-Update will not take AUR packages into account). -- PrivilegeElevationCommand=[Cmd] # Command to be used for privilege elevation. Valid values are `sudo`, `doas` or `run0`. If this option is not set, Arch-Update will use the first command available in the following order: `sudo`, `doas` then `run0`. -- 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. -- DiffProg=[Editor] # Editor to use to visualize / edit differences during the pacnew files processing. Defaults to the `$DIFFPROG` environment variable's value (or `vimdiff` if `$DIFFPROG` isn't set). -- TrayIconStyle=[Style / Color] # Style to be used for the systray applet icon. Valid values are the available style / color variants for the icon set, listed in https://github.com/Antiz96/arch-update/tree/main/res/icons. Defaults to "light". - -Options are case sensitive, so capital letters have to be respected. -``` - -For more information, see the arch-update.conf(5) man page. +See the [arch-update.conf(5) man page](https://github.com/Antiz96/arch-update/blob/main/doc/man/arch-update.conf.5.scd). ## Tips and tricks -### AUR support - -Arch-Update supports AUR packages if **paru**, **yay** or **pikaur** is installed: -See and -See and -See and - -### Flatpak support - -Arch-Update supports Flatpak packages if **flatpak** is installed: -See and - -### Desktop notifications support - -Arch-Update supports desktop notifications when performing the `--check` function if **libnotify** is installed (and a notification server is running): -See - ### The systray applet does not start at boot Make sure you followed instructions of [this chapter](#the-systray-applet). If the systray applet doesn't start regardless, this could be the result of a [race condition](https://en.wikipedia.org/wiki/Race_condition#In_software). -In such case, it might be useful to slightly delay the startup of the systray applet by using a `sleep` statement beforehand: +To prevent that, you can add a small delay to the systray applet startup using the `sleep` command: - If you used `arch-update --tray --enable`, modify the `Exec=` line in the `arch-update-tray.desktop` file (which is under `~/.config/autostart/` by default), like so: -> Exec=sh -c "sleep 3 && arch-update --tray" +```text +Exec=sh -c "sleep 3 && arch-update --tray" +``` - If you used the `arch-update-tray.service` systemd service, run `systemctl --user edit --full arch-update-tray.service` and modify the `ExecStart=` line, like so: -> ExecStart=sh -c "sleep 3 && arch-update --tray" +```text +ExecStart=sh -c "sleep 3 && arch-update --tray" +``` -- If you're using a standalone Window Manager or a Wayland Compositor, add a `sleep` statement before the `arch-update --tray` command in your "auto-start" apps in your configuration file, like so: +- If you're using a standalone Window Manager or a Wayland Compositor, modify the command in your "auto-start" apps / your configuration file, like so: -> `sleep 3 && arch-update --tray` +```text +sleep 3 && arch-update --tray +``` -If the systray applet still does not start at boot, try to gradually increase the value of the `sleep`. +If the systray applet still does not start at boot, try to gradually increase the `sleep` value. -### Modify the auto-check cycle +### Modify the check cycle -If you enabled the [systemd.timer](#the-systemd-timer), the `--check` option is automatically launched at boot and then once per hour. +If you enabled the [systemd timer](#the-systemd-timer), a check for available updates is automatically launched at boot and then once per hour. -If you want to change the check cycle, run `systemctl --user edit --full arch-update.timer` and modify the `OnUnitActiveSec` value to your liking. +If you want to customize the check cycle, run `systemctl --user edit --full arch-update.timer` and modify the `OnUnitActiveSec` value to your liking. For instance, if you want `Arch-Update` to check for new updates every 10 minutes instead: ```text @@ -317,7 +243,7 @@ See + +

+ +- Updates available: + +

+ +

+ +## dark + +- Up to date: + +

+ +

+ +- Updates available: + +

+ +

+ +## blue + +- Up to date: + +

+ +

+ +- Updates available: + +

+ +