web-dev-qa-db-de.com

Wie kann ich die eOS-Terminalbenachrichtigung in Ubuntu verwenden?

elementaryOS verfügt über die folgende Funktion, um den Benutzer über einen abgeschlossenen Terminalprozess zu benachrichtigen.

Ist es möglich, diese Funktion in Ubuntu zu verwenden?

enter image description here

Abbildung 1: Beispiel einer eOS-Terminalbenachrichtigung

5
orschiro

Was Sie höchstwahrscheinlich schon wollen, ist über Ihren ~/.bashrc mit freundlicher Genehmigung verfügbar this und this :

Hinweis: Dies setzt voraus, dass Sie libnotify-bin installiert haben. Wenn dies nicht der Fall ist, führen Sie einfach Sudo apt-get install libnotify-bin aus, um es abzurufen.

Überprüfen Sie, ob Ihr ~/.bashrc folgende Zeilen enthält:

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Task finished" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

Beachten Sie, dass "Task beendet" im Originalcode nicht vorhanden ist.

In Ihrem konkreten Beispiel werden Sie also ausgeführt

Sudo apt-get update; alert

Wenn die Benachrichtigung länger auf dem Bildschirm angezeigt werden soll, verwenden Sie -t 3000 (in Millisekunden). Wenn die Benachrichtigung angezeigt werden soll, bis Sie sie schließen, verwenden Sie --urgency=critical.

Folgendes sehe ich:

OSD alert

8
DK Bose

ndistract-me gibt Benachrichtigungen für Terminalbefehle aus, deren Ausführung länger als 10 Sekunden dauert.

  1. Sudo apt install undistract-me
  2. echo 'source /etc/profile.d/undistract-me.sh' >> ~/.bashrc
3
orschiro

Sie können $Prompt_COMMAND so einstellen, dass bei Beendigung eines Befehls in notify-send ein ~/.bashrc -Befehl ausgelöst wird:

Prompt_COMMAND='notify-send --icon=/usr/share/icons/Adwaita/256x256/apps/utilities-terminal.png "Task finished" "$(history | sed -n "\$s/^  [0-9]\+  //p")"'

enter image description here

Der Vorbehalt ist, dass dies bald ziemlich ärgerlich werden kann, da es jedes Mal eine Benachrichtigung sendet, wenn ein Befehl ausgeführt wird.

1
kos