Freedesktop : Lanceur pour script (bash) avec notifications Le sujet est résolu

Demande d'aide : c'est ici.
Répondre
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

Bonjour,

Comme déjà discuté dans : Alerte : "Processus terminé" (Recherche d'un outil) sur ce même forum,

il est possible de recevoir sur le Bureau une Notification personnalisée
selon l'état de la sortie d'erreur de la commande,
en utilisant :

<ma-commande> && notify-send <paramètres succès> || notify-send <paramètres erreur>

J'ai maintenant un script qui selon les circonstances de son exécution,
se termine :
  • soit en cas de succès par : exit 0
  • soit en cas de problème par : exit 1

si j'utilise la commande :

./mon_script.sh && notify-send <paramètres succès> || notify-send <paramètres erreur>

Je reçois correctement les notifications.

Mais si pour intégrer son usage dans mon Bureau XFCE
— cela doit être indépendant du Bureau s'il respecte les conventions de freedesktop.org —
je crée un lanceur mon_script.desktop avec le code suivant :

Code : Tout sélectionner

[Desktop Entry]
Version=1.0
Type=Application
Name=Mon Script
Comment=Courte description
Exec=./mon_script.sh && notify-send <paramètres succès> || notify-send <paramètres erreur>
Icon=<nom_générique>
Terminal=true
Path=/chemin/du/répertoire/contenant_le_script

Ce lanceur permet bien l'exécution du script mais les notifications ne sont pas faites.

Noter que l'ajout d'une ligne : StartupNotify=false ou StartupNotify=true
n'y change rien.


La solution que j'ai trouvée,
consiste à créer un autre script "lanceur"
placé dans le même répertoire que mon 1er script,
nommé : exec_mon_script.sh
contenant la commande précédente,
ce qui donne :

Code : Tout sélectionner

#!/bin/bash
./mon_script.sh && notify-send <paramètres succès> || notify-send <paramètres erreur> ;
exit

et de modifier le lanceur comme cela :

Code : Tout sélectionner

[Desktop Entry]
Version=1.0
Type=Application
Name=Mon Script
Comment=Courte description
Exec=./exec_mon_script.sh
Icon=<nom_générique>
Terminal=true
Path=/chemin/du/répertoire/contenant_le_script

Cela fonctionne comme prévu,
mais je me demande et cela serait plus "propre",
s'il est possible d'éviter ce 2d script avec un lanceur adhoc ?

Merci pour vos avis.

PS:
J'ai aussi pensé à mettre dans ~/.bashrc une fonction pour lancer l'appel du script et notifications, pour créer une pseudo-commande,
mais comme cela revient aussi à introduire un 3ème élément, je trouve que ce n'est pas plus satisfaisant que le script lanceur.
**Simple Utilisateur** -- Debian stable - XFCE
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Bonjour dezix

Avec un seul script,
mais lancé dans son petit shell bash :

Code : Tout sélectionner

[Desktop Entry]
Version=1.0
Type=Application
Name=Mon Script
Comment=Courte description
Exec=bash -c './mon_script.sh && notify-send "titre du message Succès" "message OK" || notify-send "titre du message Erreur" "message PasOK"'
Icon=<nom_générique>
Terminal=false
Path=/chemin/du/répertoire/contenant_le_script
GenericName=Ce texte apparaîtra dans le champ Description des propriétés du lanceur affichées par Thunar
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

@MicP

Bonjour,

Décidément, tu es es mon bon samaritain :smile:

Merci!
**Simple Utilisateur** -- Debian stable - XFCE
MicP
Modérateur
Modérateur
Messages : 896
Inscription : 16 avr. 2016, 22:14
Status : Hors-ligne

Coup de bol : Tu tombes sur des problèmes que je sais résoudre. :smile:
Avatar de l’utilisateur
dezix
Membre hyper actif
Membre hyper actif
Messages : 3548
Inscription : 04 juin 2016, 14:50
Status : Hors-ligne

MicP a écrit : 17 juil. 2020, 23:10 Tu tombes sur des problèmes que je sais résoudre. :smile:

Oui, disons (en toute lucidité) que tu assures plutôt bien avec bash et les scripts.

Et c'est sympa de partager :023:
**Simple Utilisateur** -- Debian stable - XFCE
Répondre