Questions générales sur Manjaro Linux.
S'il vous plaît, avant de poster, essayez la fonction de recherche du forum.
Répondre

Aide pour script

#1Messageil y a 4 ans

Bonjour,

Je cherche un moyen simple d'avoir un rappel pour des évènements et je suis tombé sur ce script : https://brettterpstra.com/2016/01/22/qu ... -terminal/ et https://gist.github.com/ttscoff/cded212ec4dd457186ca .

Il fonctionne, je peux ajouter un rappel en tapant dans un terminal "dontforget test 1h" ; ce qui est censé me rappeler l'évènement "test" dans une heure.

Cependant, le rappel a une erreur, j'obtiens ceci dans mon terminal au moment du rappel :

/usr/local/bin/dontforget: line 96: /usr/bin/afplay: No such file or directory
/usr/local/bin/dontforget: line 97: say: command not found
Quand je regarde le script je vois :
/usr/bin/afplay /System/Library/Sounds/Glass.aiff
say "$reminder
"

Mais je n'ai pas afplay, d'où l'erreur, comment faire alors ?

Merci.
Dernière modification par damien674il y a 4 ans, modifié au total 2 fois.

Aide pour script

#2Messageil y a 4 ans

bonjour,
cette ligne n'est que pour jouer un son donc peut-être commentée si pas utile pour toi

je suppose que tu n'as pas Glass.aiff ni afplay ? tu peux remplacer par pas mal de commandes (si installée) comme par exemple

mpg123 "~/Musique/Linux - my best ring.mp3" &
cvlc "~/Musique/Linux - my best ring.mp3" &
...
-----

Avec le paquet at installé et service "atd" lancé, il est possible de faire une simple commande pour lancer une notification gui à 13h40

echo 'notify-send -t 9000 "toto"' | at 13:40

Aide pour script

#3Messageil y a 4 ans

Merci!
Comment rendre la notification persistante avec

echo 'notify-send -t 9000 "toto"' | at 14:26
?

Aide pour script

#4Messageil y a 4 ans

Avec at, je ne sais pas faire, mais personnellement, j'utilise ma crontab pour des tâches à répéter périodiquement.

Commande crontab -e pour ouvrir la crontab en édition.
Ajout des lignes suivantes :
DISPLAY=0.0
XAUTHORITY=$HOME/.Xauthority
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/<id_a_remplacer>/bus
46 14 * * * /usr/bin/notify-send -t 9000 "toto"


donnera la notification "toto" tous les jours à 14h46.
Les 5 1ere champs permettent de jouer avec le temps pour définir le type de répétition (minute, heure, jour du mois, mois, jour de la semaine). Il y a pléthore de combinaison, une recherche internet te donnera moult exemple si cela t'intéresse.

env | grep DBUS_SESSION_BUS_ADDRESS te donnera la bonne valeur de la variable.

Aide pour script

#5Messageil y a 4 ans

>persistante
il suffit de jouer avec l'option -t (-t 9000 = 9 secondes), avec -t 0 la notification reste

man notify
man fr de at . Avec at pas de répétitions comme cron (pas de répétition avec ton script)

Aide pour script

#6Messageil y a 4 ans

il suffit de jouer avec l'option -t (-t 9000 = 9 secondes), avec -t 0 la notification reste
Merci, parfait.

Aide pour script

#7Messageil y a 4 ans

Merci @fbe

Aide pour script

#8Messageil y a 4 ans

un script pour faire plus simple à l'utilisation

#!/usr/bin/bash
#set -x

# lancer service "at" si non lancé
systemctl is-active atd -q || sudo systemctl start atd

title="${1:-Entrer un paramètre}"
temps="${2:-60minutes}"
if [[ "$2" =~ ":" ]]; then
    verb=""
else
    verb="now + "
fi

echo "notify-send -t 0 \"${title}\" -i \"$HOME/.face\"  " | at ${verb} ${temps}
# ou avec du son ?
#echo "notify-send -t 0 \"${title}\" -i \"$HOME/.face\" && mpg123 \"$HOME/Musique/Ring.mp3\" " | at ${verb} ${temps}
# verif
at -l
utilisation :

notif "pause film" 21:05
notif "une pause dans peu de temps" 45minutes
notif "(encore) une pause en fin de journée" 2hours
notif "par defaut ici c'est dans une heure si temps non donné en param 2"

Aide pour script

#9Messageil y a 4 ans

Et bien je suis bon pour retourner suivre des cours de français! :clap

Aide pour script

#10Messageil y a 4 ans

fbe a écrit : il y a 4 ans Et bien je suis bon pour retourner suivre des cours de français! :clap
Pourquoi ? Je ne comprends pas...

Aide pour script

#11Messageil y a 4 ans

papajoke a écrit : il y a 4 ans un script pour faire plus simple à l'utilisation
Merci beaucoup @papajoke , ça marche très bien!

Aide pour script

#12Messageil y a 4 ans

damien674 a écrit : il y a 4 ans Pourquoi ? Je ne comprends pas...
:salut: comme fbe je n'étais pas sûr de ta demande ...
Tu désirais la persistance des popup de notification ou la persistance de la demande (il était dit dans ton article que la fermeture du terminal annulait la demande)
Puisque fbe à compris une chose, j'ai simplement répondu (au cas où) à une autre pour être complémentaire avec fbe
Pour moi, avec cron, nous sommes plus dans la gestion d'un calendrier et cela existe comme application

Aide pour script

#13Messageil y a 4 ans

Ah, je vois. Je souhaitais la persistance de la popup de notification. C'est assez pratique ton script, car souvent j'ai des rappels d'évènements tout au long de la journée et je peux ainsi les ajouter facilement. Merci encore.

Aide pour script

#14Messageil y a 1 mois

Bonjour,

Je rouvre ce sujet car le script de @papajoke

#!/usr/bin/bash
#set -x

# lancer service "at" si non lancé
systemctl is-active atd -q || sudo systemctl start atd

title="${1:-Entrer un paramètre}"
temps="${2:-60minutes}"
if [[ "$2" =~ ":" ]]; then
    verb=""
else
    verb="now + "
fi

echo "notify-send -t 0 \"${title}\" -i \"$HOME/.face\"  " | at ${verb} ${temps}
# ou avec du son ?
#echo "notify-send -t 0 \"${title}\" -i \"$HOME/.face\" && mpg123 \"$HOME/Musique/Ring.mp3\" " | at ${verb} ${temps}
# verif
at -l
ne marche plus depuis deux jours et ce sans aucune raison.

Il m'était bien pratique pour ajouter, par exemple, un rappel en tapant dans un terminal :

notif "ouvrir cave" 16:50
Merci de vos conseils.

Actuellement, quand je tape :

notif "ouvrir cave" 16:50
j'obtiens dans le terminal :

~ > notif "ouvrir cave" 16:50
warning: commands will be executed using /bin/sh
job 77 at Sun Mar 16 16:50:00 2025
71      Mon Mar 17 12:08:00 2025 a arnauld
75      Mon Mar 17 12:17:00 2025 a arnauld
77      Sun Mar 16 16:50:00 2025 a arnauld
~ >
Mais la notification à l'heure demandée ne s'affiche plus.

Aide pour script

#15Messageil y a 1 mois

:salut:

je viens de tester, et apparemment, on ne peut plus passer 0 à -t (sur ma kde... un bug kde depuis dernière maj ?)

notify-send -t 0 -a "mémoire" -i "$HOME/.face"  "notification 0"
ne fait rien :saispas:

notify-send -t 60000 -a "mémoire" -i "$HOME/.face"  "notification 6"
affiché pendant 60 secondes :gsourire:

notif "c'est à faire dans une minute!" 1minute a bien fonctionné :pompom:
avec ligne 15:

echo "notify-send -t 990000 \"${title}\" -i \"$HOME/.face\" -a 'Mémoire'  " | at ${verb} ${temps} 2>/dev/null
note : nouveautés en plus :
-a 'Mémoire' == titre de la popup
2>/dev/null == supprimer la ligne "warning: commands will be executed using /bin/sh"




---------------------------------------

Soyons fou :lol: je suis chez free, et nous pouvons facilement nous envoyer un sms ...
script modifié qui envoi au bureau et un sms

#!/usr/bin/env bash
#set -x

# lancer service "at" si non lancé
systemctl is-active atd -q || run0 systemctl start atd

title="${1:-Entrer un paramètre}"
temps="${2:-60minutes}"
if [[ "$2" =~ ":" ]]; then
    verb=""
else
    verb="now + "
fi

echo "notify-send -t 990000 \"${title}\" -i \"$HOME/.face\" -a 'Ne pas oublier (notif)'  " | at ${verb} ${temps} 2>/dev/null
# ou avec du son ?
#echo "notify-send -t 6000 \"${title}\" -i \"$HOME/.face\" && mpg123 \"$HOME/Musique/Ring.mp3\" " | at ${verb} ${temps}


# fichier ~/.config/environment.d/sms.conf
#    API_FREE_SMS="xxXxxxxXxxxx"
#    API_FREE_SMS_ID="12345678"

[[ -n "$API_FREE_SMS" ]] && {
    # Données de connexion    https://mobile.free.fr/account/mes-options
    login=$API_FREE_SMS_ID  # identifiant free
    passd=$API_FREE_SMS  # clé api mes options -> "Notifications par SMS"

    echo "curl --insecure -i --get 'https://smsapi.free-mobile.fr/sendmsg' --data-urlencode \"msg=$title\" --data \"user=${login}\" --data \"pass=${passd}\"  --write-out \"%{http_code}\" --silent" | at ${verb} ${temps} 2>/dev/null
    # Codes réponse(retour) HTTP possibles
    # 200 : Le SMS a été envoyé sur votre mobile.
    # 400 : Un des paramètres obligatoires est manquant.
    # 402 : Trop de SMS ont été envoyés en trop peu de temps.
    # 403 : Le service n'est pas activé su l'espace abonné, ou login / clé incorrect.
    # 500 : Erreur côté serveur. Veuillez réessayez ultérieurement. 
}
# verif
at -l
Reçu le message aux deux destinations :fete:
Image
EDIT : ok avec kde sous x11 comme avec wayland

Aide pour script

#16Messageil y a 1 mois

Merci beaucoup @papajoke !

Malheureusement cela ne fonctionne toujours pas pour moi et là je n'ai pas le temps de m'en occuper, je chercherai plus tard... si je trouve…

Incroyable d'être notifié également par SMS ! Mais je suis chez Orange, j'imagine qu'avec Orange, c'est niet.

Bonne journée.
Répondre