it-swarm.com.de

Kann BASH im Systray als Anwendungsindikator angezeigt werden?

Ich habe ein Bash-Skript, das den Bildschirm nach einer festgelegten Zeitspanne sperrt ( Anwendung, die den Bildschirm nach einer festgelegten Zeitspanne für Ubuntu sperrt ). Ich möchte die verbleibende Zeit in Ubuntus System Tray/Application Indicator-Leiste anzeigen.

2

Die beste Methode, die ich gefunden habe, ist System Monitor Indicator aus diesem Artikel: webupd8.org - Ubuntu-Anwendungsindikator, der bash anzeigt . Es zeigt Text in der Unity-Taskleiste/Anwendungsanzeigeleiste an, der in Ihrem Bash-Skript "Echos" anzeigt.

Der obige Artikel bezieht sich auf Ubuntu 16.04 mit Unity. Weitere Informationen zu Xubuntu, Gnome-Shell + App-Indikator-Erweiterung und Budgie finden Sie auf der Entwickler-Website: fossfreedom/indicator-sysmonitor . Besuchen Sie auch die Website, um ausführlichere Anweisungen zur Installation und Konfiguration zu erhalten.

Installieren und konfigurieren Sie indicator-sysmonitor

Um den System Monitor Indicator zu installieren, müssen Sie zuerst die PPA angeben, in der indicator-sysmonitor Zu finden ist:

Sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor
Sudo apt-get update
Sudo apt-get install indicator-sysmonitor

Führen Sie nun die GUI "indicator-sysmonitor" von Dash aus (Alt+F2).

  • Klicken Sie auf den Systray-Bereich, der mit "cpu: 99% mem: 99%" angezeigt wird.
  • Wähle "Einstellungen"
  • Die Registerkarte "Allgemein" ist anfangs aktiv. Klicken Sie auf das Feld "Beim Start ausführen"
  • Wählen Sie die Registerkarte "Erweitert"
  • Klicken New Schaltfläche, um ein neues Steuerelement hinzuzufügen
  • Geben Sie im Feld Sensor custom ein.
  • Im Feld Beschreibung geben Sie Bash Indicator Ein. _ Im Feld Befehl geben Sie den Namen Ihres Bash-Skripts ein, dh /mnt/e/bin/indicator-sysmonitor-display.
  • Speichern Sie Ihren neuen benutzerdefinierten Indikator
  • Markieren Sie die Zeile custom und klicken Sie auf Add Taste, um es zu aktivieren.
  • Sie können die Standardvariablen für "CPU" und "Mem" entfernen, die für Sie möglicherweise nicht hilfreich sind.
  • Ich habe das Aktualisierungsintervall von 2 Sekunden auf .3 Sekunden geändert. Zur Unterstützung von "Spinning Pizza" siehe unten.
  • Klicken Sie nun auf die Save Taste.

Sysmonitor Indicator in Aktion

Dieses .gif Zeigt, wie es aussieht, wenn die Unity-Taskleiste von Ubuntu aktualisiert wird.

multi-timer sysmonitor indicator.gif

  • Zu Beginn der Animation enthält unsere Systray-Ausgabe "Helligkeit: 3000".
  • Dann wird multi-timer (Link unten) gestartet und durchläuft mehrere Timer.
  • Eine sich drehende Pizza erscheint zusammen mit einem Countdown der verbleibenden Zeit.

HINWEIS: Die Systemmonitoranzeige zeigt auch "Helligkeit: 3000" an. Dies ist die Tageszeiteinstellung für die Helligkeit meiner Intel Backlight-Hardware (Link unten).

Sysmonitor Indicator BASH-Skript

Erstellen Sie ein Skript, das dem folgenden ähnelt, und weisen Sie es der Variablen {Custom} In Sysmonitor Indicator zu:

#!/bin/bash

# UPDT: May 30 2018 - Cohesion with new multi-timer and old lock-screen-timer.

if [ -f ~/.lock-screen-timer-remaining ]; then
    text-spinner
    Spinner=$(cat ~/.last-text-spinner) # read last text spinner used
    String=$(cat ~/.lock-screen-timer-remaining)
    systray="$Spinner  $String"
else
    systray=""
fi

if [ -f /tmp/display-current-brightness ]; then
    Brightness=$(cat /tmp/display-current-brightness)
    systray="$systray  Brightness: $Brightness"
else
    systray="$systray  Brightness: OFF"
fi

# Below for AU answer: https://askubuntu.com/questions/1024866/is-it-possible-to-show-ip-address-on-top-bar-near-the-time
# default_interface=$(route -n | awk '$1 == "0.0.0.0" {print $8; exit}')
# ip_address=$(ifconfig "$default_interface" | awk 'sub(/.* inet addr:/, "") {print $1}')
# systray="$systray  $ip_address"

echo "$systray" # sysmon-indidicator will put echo string into systray for us.

exit 0

Nachdem Sie Sysmonitor Indicator den Namen Ihres Bash-Skripts angegeben haben, setzen Sie die Variable {Custom}, Die jedes Mal ausgeführt wird Aktualisierungsintervall. Was auch immer Ihr Bash-Skript über den Befehl echo ausgibt, erscheint in der Taskleiste von Ubuntu.

HINWEIS: Das Skript zeigt Verbleibende Zeit und Helligkeit anzeigen Werte an. Diese Werte werden durch Skripte festgelegt, die in Ask Ubuntu : Anwendung, die den Bildschirm nach einer festgelegten Zeitspanne für Ubuntu sperrt , Ein Timer zum gleichzeitigen Einstellen verschiedener Alarme und Automatische Anpassung der Anzeigehelligkeit basierend auf Sonnenaufgang und Sonnenuntergang .

Pizza drehen - text-spinner BASH-Skript

Das Bash-Skript text-spinner Erzeugt einen sich drehenden Pizza-Effekt, indem die Zeichen |, /, Und \ Durchlaufen werden. Dieser Effekt unterstreicht die Tatsache, dass etwas "funktioniert" oder "denkt". Um den "Spinning-Effekt" zu erzielen, müssen Sie das Aktualisierungsintervall des Sysmonitor-Indikators von den Standard-Sekunden 2 Auf etwa 0.30 Sekunden.

Hier ist das Bash-Skript text-spinner:

#!/bin/bash

# return '|', '/', '─', '\' sequentially with each call to this script.
# Use ~/.last-text-spinner to store last used

FILE=~/.last-text-spinner

if ! [ -f $FILE ]; then
    echo '|' > $FILE
    exit 124 # ASCII equivalent for '|'. Bash doesn't allow character return codes
fi

LAST=$(cat $FILE) # read last character used

if [[ $LAST == '|' ]]; then
    echo '/' > $FILE
    exit 47 # ASCII equivalent of "/"
Elif [[ $LAST == '/' ]]; then  # NOTE: you must have spaces around " == " else code breaks
    echo '─' > $FILE
    exit 9472 # ASCII equivalent
Elif [[ $LAST == '─' ]]; then
    echo '\' > $FILE # NOTE: must use single quote because double quote BASH reinterprets
    exit 92 # ASCII
else
    echo '|' > $FILE
    exit 124 # ASCII
fi
6