Je suis sous Xubuntu 15.04, mais peut-être que cette question a une solution générale pour tous les goûts Ubuntu.
Je laisse généralement de longs calculs en cours d'exécution dans une fenêtre de terminal, ce qui peut prendre de quelques minutes à quelques heures, voire plusieurs jours. Ce serait bien si je pouvais être alerté quand un terminal a fini d'exécuter une commande. Cela ne devrait être nécessaire que pour les terminaux minimisés.
Y at-il un moyen de mettre en place quelque chose comme ça? Idéalement, la fenêtre du terminal pourrait clignoter ou peut-être une notification s'afficherait.
Il y a plusieurs façons, toutes les deux avec l'opérateur &&
(AND logique) (qui s'exécute uniquement lorsque la dernière commande a réussi). Si vous souhaitez exécuter la notification, que la commande ait ou non réussi, utilisez le point-virgule ;
au lieu de &&
.
Graphique
myscript.sh && notify-send 'DONE'
L'audio:
myscript.sh && aplay /usr/share/sounds/speech-dispatcher/test.wav
Notez que vous pouvez utiliser n’importe quel fichier audio au lieu de celui que j’ai utilisé ici.
Tous les deux:
myscript.sh && aplay /usr/share/sounds/speech-dispatcher/test.wav && notify-send 'DONE !'
Vous pouvez utiliser zenity pour afficher une fenêtre contextuelle.
Après votre commande Shell, ajoutez
&& zenity --info --text "STRING"
Je suggère d'utiliser le notify-send
de libnotify pour les notifications. J'ai créé le script suivant pour cela:
#!/bin/bash
$1 && \
notify-send -u critical -i info 'Command execution finished' "The command '$1' terminated successfully" || \
notify-send -u critical 'Command execution failed' "The command '$1' exited with errors"
Si vous enregistrez le script ci-dessus dans un fichier appelé, par exemple, nexec
et le rendre exécutable à l'aide de chmod +x nexec
, puis déplacez le programme dans un répertoire de votre variable shells PATH
(par exemple, /usr/local/bin/
), vous pouvez exécuter toute commande avec
nexec 'long-time-command some arguments'
Par exemple.
nexec 'Sudo apt-get update && apt-get dist-upgrade'
si libnotify le fait (du moins sur mon système, je suppose que cela peut différer d’un bureau à l’autre), les notifications affichées marquées comme "critiques" jusqu’à ce qu’elles soient renvoyées manuellement (par exemple en les cliquant). Comme vous pouvez le déduire du code, vous recevrez une notification différente si la commande renvoie un résultat différent de zéro.
Avez-vous déjà entendu parler de ndistract-me ? Il semble que cela corresponde à vos besoins et son code est sur github .
Je pense que le paquet est dans le dépôt officiel Ubuntu, donc devrait être suffisant
Sudo apt-get install undistract-me
vous devez ensuite fermer et rouvrir votre terminal, il suffit de laisser les modifications prendre effet et vous pouvez le tester avec un simple
sleep 11
N'oubliez pas de changer votre fenêtre active, sinon vous ne verrez aucune notification.