Put the "recommended OS reboot" notification like the one on EOS, but on Arch

Hello everyone!

One of EOS’s many advantages is that it’s essential and minimal, as per Arch tradition, but it integrates things (very cleverly, in my opinion) that you’d have to install elsewhere. These include updating the Arch and EndeavourOS mirror list via a graphical interface, or rather, via a shortcut on the Welcome panel, or the orphaned package cleaner, or a pre-activated firewall (from what little I’ve seen and recall, it’s the only distro that already has it installed and activated; neither of these are a given), or, indeed, a notification that warns you after important updates that it’s time to reboot.

Is there something similar that can be installed on Arch? It’s always via “graphical” notifications (just like on EOS, in short).

Concerning the notification it seems to be EOS specific, if I look at his thread.

1 Like

Some pointers can be found in this old thread.

Basically it can be replicated on pure Arch by by creating a simple pacman hook which calls a script which prints e. g. “Reboot needed” if one of the packages you defined were updated.

Something like the following…

  1. Create a pacman hook, e. g.
    sudo nano /etc/pacman.d/hooks/reboot-recommended.hook
  2. Add the following to the new hook:
[Trigger]
Operation = Upgrade
Type = Package
Target = amd-ucode
Target = intel-ucode
Target = btrfs-progs
Target = cryptsetup
Target = linux
Target = linux-hardened
Target = linux-lts
Target = linux-zen
Target = linux-rt
Target = linux-rt-lts
Target = linux-firmware*
Target = nvidia
Target = nvidia-dkms
Target = nvidia-*xx-dkms
Target = nvidia-*xx
Target = nvidia-*lts-dkms
Target = nvidia*-lts
Target = mesa
Target = systemd*
Target = wayland
Target = virtualbox-guest-utils
Target = virtualbox-host-dkms
Target = virtualbox-host-modules-arch
Target = egl-wayland
Target = xf86-video-*
Target = xorg-server*
Target = xorg-fonts*

[Action]
Description = Check if user should be informed about rebooting after certain system package upgrades.
When = PostTransaction
Exec = /usr/local/bin/check-reboot-recommended
  1. Create the script that runs when the hook is triggered:
    sudo nano /usr/local/bin/check-reboot-recommended
  2. Add the following to the script:
#!/bin/bash

echo "One or more critical packages were updated."
echo "It is recommended to reboot your system."
  1. Make the script executable:
    sudo chmod +x /usr/local/bin/check-reboot-recommended
2 Likes

Thanks!

Thanks for the reply! I have an AMD graphics card (and CPU), so I need AMD (open) drivers. Could these be added to those scripts, or are those enough?

I think I was able to make something wrong. :thinking: :rofl:

Last updated in this, he did not perform the script because he had something missing (I forgot to mark the error). At the next important update I will mark the mistake that gives me.

Meanwhile, let’s see if the rest is correct. This is the reboot-recommeded.hook file:

[Trigger] 
Operation = Upgrade 
Type = Package 
Target = amd-ucode 
Target = intel-ucode 
Target = btrfs-progs 
Target = cryptsetup 
Target = linux 
Target = linux-hardened 
Target = linux-lts 
Target = linux-zen 
Target = linux-rt 
Target = linux-rt-lts 
Target = linux-firmware* 
Target = nvidia 
Target = nvidia-dkms 
Target = nvidia-*xx-dkms 
Target = nvidia-*xx 
Target = nvidia-*lts-dkms 
Target = nvidia*-lts 
Target = mesa 
Target = systemd* 
Target = wayland 
Target = virtualbox-guest-utils 
Target = virtualbox-host-dkms 
Target = virtualbox-host-modules-arch 
Target = egl-wayland 
Target = xf86-video-* 
Target = xorg-server* 
Target = xorg-fonts* 

[Action] 
Description = Controlla se l'utente deve essere informato del riavvio dopo determinati aggiornamenti dei pacchetti di sistema. 
When = PostTransaction 
Exec = /usr/local/bin/check-reboot-recommended

And this is the check-reboot-recomended file:

#!/bin/bash

echo “Uno o più pacchetti critici sono stati aggiornati.”
echo “Si consiglia di riavviare il sistema.”

But in addition to doing this, do you need some specific packages on Arch?

If yes, perhaps I have not installed it.

PS: Yes, I translated the description and comment after Echo, do I have to put them back in English?

Mmmhhh, it seems to work instead! Then maybe I read badly the first time.

(4/5) Controlla se l’utente deve essere informato del riavvio dopo determinati aggiornamenti dei pacchetti di sistema.
Uno o più pacchetti critici sono stati aggiornati.
Si consiglia di riavviare il sistema.

This is the complete log of the update:

[sermor@sermorarchpc ~]$ sudo pacman -Syyu && yay -Syyu
[sudo] password di sermor: 
:: Sincronizzazione dei database in corso...
 core                                      119,4 KiB   690 KiB/s 00:00 [########################################] 100%
 extra                                       7,8 MiB  21,9 MiB/s 00:00 [########################################] 100%
 multilib                                  133,3 KiB   749 KiB/s 00:00 [########################################] 100%
:: Aggiornamento del sistema in corso...
risoluzione delle dipendenze in corso...
ricerca dei pacchetti in conflitto in corso...

Pacchetti (9) harfbuzz-11.3.3-1  harfbuzz-icu-11.3.3-1  lib32-harfbuzz-11.3.3-1  lib32-mesa-1:25.1.7-1
              lib32-vulkan-radeon-1:25.1.7-1  mesa-1:25.1.7-1  noto-fonts-1:2025.08.01-1  python-opengl-3.1.9-1
              vulkan-radeon-1:25.1.7-1

Dimensione totale dei pacchetti da scaricare:    57,28 MiB
Dimensione totale dei pacchetti da installare:  244,84 MiB
Dimensione netta dell'aggiornamento:             -0,36 MiB

:: Vuoi procedere con l'installazione? [S/n] 
:: Download dei pacchetti in corso...
 vulkan-radeon-1:25.1.7-1-x86_64             2,8 MiB  10,1 MiB/s 00:00 [########################################] 100%
 lib32-vulkan-radeon-1:25.1.7-1-x86_64       2,9 MiB  8,88 MiB/s 00:00 [########################################] 100%
 lib32-mesa-1:25.1.7-1-x86_64               10,3 MiB  28,9 MiB/s 00:00 [########################################] 100%
 python-opengl-3.1.9-1-any                2025,3 KiB  9,24 MiB/s 00:00 [########################################] 100%
 harfbuzz-11.3.3-1-x86_64                 1135,2 KiB  5,52 MiB/s 00:00 [########################################] 100%
 mesa-1:25.1.7-1-x86_64                     10,2 MiB  17,3 MiB/s 00:01 [########################################] 100%
 lib32-harfbuzz-11.3.3-1-x86_64            944,9 KiB  4,61 MiB/s 00:00 [########################################] 100%
 harfbuzz-icu-11.3.3-1-x86_64                7,9 KiB   128 KiB/s 00:00 [########################################] 100%
 noto-fonts-1:2025.08.01-1-any              27,2 MiB  33,7 MiB/s 00:01 [########################################] 100%
 Totale (9/9)                               57,3 MiB  67,0 MiB/s 00:01 [########################################] 100%
(9/9) verifica delle chiavi presenti nel portachiavi                   [########################################] 100%
(9/9) verifica dell'integrità dei pacchetti                            [########################################] 100%
(9/9) caricamento dei file dei pacchetti                               [########################################] 100%
(9/9) controllo dei conflitti in corso                                 [########################################] 100%
(9/9) controllo dello spazio disponibile sul disco                     [########################################] 100%
:: Esecuzione degli hook di pre-transazione...
(1/1) Performing snapper pre snapshots for the following configurations...
==> root: 163
:: Elaborazione delle modifiche al pacchetto...
(1/9) aggiornamento in corso di harfbuzz                               [########################################] 100%
(2/9) aggiornamento in corso di harfbuzz-icu                           [########################################] 100%
(3/9) aggiornamento in corso di lib32-harfbuzz                         [########################################] 100%
(4/9) aggiornamento in corso di mesa                                   [########################################] 100%
(5/9) aggiornamento in corso di lib32-mesa                             [########################################] 100%
(6/9) aggiornamento in corso di vulkan-radeon                          [########################################] 100%
(7/9) aggiornamento in corso di lib32-vulkan-radeon                    [########################################] 100%
(8/9) aggiornamento in corso di noto-fonts                             [########################################] 100%
(9/9) aggiornamento in corso di python-opengl                          [########################################] 100%
:: Esecuzione degli hook di post-transazione...
(1/5) Arming ConditionNeedsUpdate...
(2/5) Updating fontconfig cache...
(3/5) Updating 32-bit fontconfig cache...
(4/5) Controlla se l'utente deve essere informato del riavvio dopo determinati aggiornamenti dei pacchetti di sistema.
Uno o più pacchetti critici sono stati aggiornati.
Si consiglia di riavviare il sistema.
(5/5) Performing snapper post snapshots for the following configurations...
==> root: 164
:: Sincronizzazione dei database in corso...
 core                                      119,4 KiB   829 KiB/s 00:00 [########################################] 100%
 extra                                       7,8 MiB  24,0 MiB/s 00:00 [########################################] 100%
 multilib                                  133,3 KiB   889 KiB/s 00:00 [########################################] 100%
:: Ricerca di aggiornamenti su AUR in corso...
:: Ricerca di aggiornamenti nei database in corso...
:: 1 pacchetto da aggiornare/installare.
1  aur/hypnotix-wayland  5.0-1 -> 5.1-1
==> Pacchetti da escludere: (es: "1 2 3", "1-3", "^4" o il nome del repo)
 -> L'esclusione di pacchetti potrebbe causare aggiornamenti parziali e danneggiare i sistemi
==> 
AUR Explicit (1): hypnotix-wayland-5.1-1
:: (1/1) PKGBUILD scaricato: hypnotix-wayland
  1 hypnotix-wayland                         (Installato) (I file di compilazione sono già presenti)
==> Pacchetti da compilare in modo pulito?
==> [N]essuno [A]Tutti [Ab]Annulla [I]nstallati [No]nInstallati oppure (1 2 3, 1-3, ^4)
==> a
:: Eliminazione (1/1): /home/sermor/.cache/yay/hypnotix-wayland
HEAD ora si trova a aaf3d6b bump to 5.1
Eliminazione di hypnotix-5.0.tar.gz in corso
Eliminazione di hypnotix-wayland-5.0-1-any.pkg.tar.zst in corso
  1 hypnotix-wayland                         (Installato) (I file di compilazione sono già presenti)
==> Differenze da mostrare?
==> [N]essuno [A]Tutti [Ab]Annulla [I]nstallati [No]nInstallati oppure (1 2 3, 1-3, ^4)
==> a
diff --git /home/sermor/.cache/yay/hypnotix-wayland/PKGBUILD /home/sermor/.cache/yay/hypnotix-wayland/PKGBUILD
new file mode 100644
index 1cacbfa..29cb1ea 100644
--- /home/sermor/.cache/yay/hypnotix-wayland/PKGBUILD
+++ /home/sermor/.cache/yay/hypnotix-wayland/PKGBUILD
@@ -2,7 +2,7 @@
 # Maintainer: pusi77 <pusineriandrea+gmail+com>
 
 pkgname=hypnotix-wayland
-pkgver=5.0
+pkgver=5.1
 pkgrel=1
 pkgdesc="An IPTV streaming application. (With Wayland support)."
 arch=(any)
@@ -22,7 +22,7 @@ depends=(
         )
 conflicts=(hypnotix hypnotix-git)
 source=("hypnotix-$pkgver.tar.gz::https://github.com/linuxmint/hypnotix/archive/refs/tags/${pkgver}.tar.gz")
-sha256sums=('5f82c78163319206406e4e3c7392b4cddb9233b647c27cf9680a8a87f98aee82')
+sha256sums=('9b52f9426e676c77c59230cc44ed793aeda452ae92f62a3500bbd5399150b9dd')
 prepare() {
         cd hypnotix-$pkgver
         sed -i "s/__DEB_VERSION__/$pkgver/g" usr/lib/hypnotix/hypnotix.py

:: Procedere con l'installazione? [S/n] 
==> Creazione del pacchetto: hypnotix-wayland 5.1-1 (ven 1 ago 2025, 15:58:30)
==> Download dei sorgenti in corso...
  -> Download di hypnotix-5.1.tar.gz in corso...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  170k  100  170k    0     0   266k      0 --:--:-- --:--:-- --:--:--  266k
==> ATTENZIONE: Sto ignorando la verifica delle firme PGP.
==> Validazione di source file con sha256sums...
    hypnotix-5.1.tar.gz ... Verificato
:: (1/1) Analisi SRCINFO: hypnotix-wayland
==> Creazione del pacchetto: hypnotix-wayland 5.1-1 (ven 1 ago 2025, 15:58:31)
==> Controllo delle dipendenze durante l'avvio in corso...
==> Controllo delle dipendenze durante la compilazione in corso...
==> Download dei sorgenti in corso...
  -> È stato trovato hypnotix-5.1.tar.gz
==> Validazione di source file con sha256sums...
    hypnotix-5.1.tar.gz ... Verificato
==> Rimozione dell'esistente directory $srcdir/ in corso...
==> Estrazione dei sorgenti in corso...
  -> Estrazione di hypnotix-5.1.tar.gz usando bsdtar in corso...
==> Avvio di prepare() in corso...
==> I sorgenti sono pronti.
==> Creazione del pacchetto: hypnotix-wayland 5.1-1 (ven 1 ago 2025, 15:58:32)
==> Controllo delle dipendenze durante l'avvio in corso...
==> Controllo delle dipendenze durante la compilazione in corso...
==> ATTENZIONE: Sto usando il tree esistente di $srcdir/
==> Avvio di build() in corso...
==> Entro nell'ambiente fakeroot...
==> Avvio di package() in corso...
==> Rimozione dei dati superflui in corso...
  -> Rimozione dei file libtool in corso...
  -> Eliminazione dei file indesiderati in corso...
  -> Rimozione dei file dalle librerie statiche...
  -> Rimozione dei simboli non necessari dai binari e dalle librerie in corso...
  -> Compressione delle pagine man ed info in corso...
==> Controllo per il rilascio dei pacchetti in corso...
==> Creazione del pacchetto "hypnotix-wayland" in corso...
  -> Generazione del file .PKGINFO in corso...
  -> Generazione del file .BUILDINFO in corso...
  -> Creazione del file .MTREE in corso...
  -> Compressione del pacchetto in corso...
==> Uscita dall'ambiente di fakeroot.
==> Compilazione terminata: hypnotix-wayland 5.1-1 (ven 1 ago 2025, 15:58:33)
==> Pulizia in corso...
caricamento dei pacchetti in corso...
risoluzione delle dipendenze in corso...
ricerca dei pacchetti in conflitto in corso...

Pacchetti (1) hypnotix-wayland-5.1-1

Dimensione totale dei pacchetti da installare:  0,46 MiB
Dimensione netta dell'aggiornamento:            0,00 MiB

:: Vuoi procedere con l'installazione? [S/n] 
(1/1) verifica delle chiavi presenti nel portachiavi                   [########################################] 100%
(1/1) verifica dell'integrità dei pacchetti                            [########################################] 100%
(1/1) caricamento dei file dei pacchetti                               [########################################] 100%
(1/1) controllo dei conflitti in corso                                 [########################################] 100%
(1/1) controllo dello spazio disponibile sul disco                     [########################################] 100%
:: Esecuzione degli hook di pre-transazione...
(1/1) Performing snapper pre snapshots for the following configurations...
==> root: 165
:: Elaborazione delle modifiche al pacchetto...
(1/1) aggiornamento in corso di hypnotix-wayland                       [########################################] 100%
:: Esecuzione degli hook di post-transazione...
(1/5) Arming ConditionNeedsUpdate...
(2/5) Compiling GSettings XML schema files...
(3/5) Updating icon theme caches...
(4/5) Updating the desktop file MIME type cache...
(5/5) Performing snapper post snapshots for the following configurations...
==> root: 166
[sermor@sermorarchpc ~]$ 

Thanks again!

1 Like

I finally managed to add a graphic notification too.

I added this line to the check-reboot-recommended file:

#!/bin/bash

# Messaggio per il terminale
echo "Uno o più pacchetti critici sono stati aggiornati."
echo "Si consiglia di riavviare il sistema."

# Notifica grafica con kdialog
kdialog --title "Riavvio consigliato" --msgbox "Uno o più pacchetti critici sono stati aggiornati. Si consiglia di riavviare il sistema."

I think it can be changed again, to make it a popup with a countdown for example, or change the style and position of the notification window. But for now I am satisfied like this.

1 Like