Ich bin sehr, sehr neu in der Skripterstellung. Hier ist das einfache Skript (das funktioniert), das ich geschrieben habe und das nach Ablauf von 5 Minuten ein Bild anzeigt:
sleep 300 && firefox file:///home/tasks/fiveminutes.jpg
Hier ist meine Frage: Manchmal kann ich mich nicht erinnern, ob ich den Timer gestartet habe. Gibt es eine Möglichkeit, eine Text- oder Symbolanzeige (idealerweise in der Taskleiste, aber überall wäre großartig) hinzuzufügen, die 5 Minuten lang angezeigt wird (vom Start des Timers bis zum Ende des Timers)?
Vielen Dank für alle Vorschläge.
Antworten:
Sie können eine Popup-Benachrichtigung anzeigen, wenn der Prozess startet. Ändern Sie einfach Ihr Skript in
Sie können die Dauer der Benachrichtigungsblase mit dem
-t
Parameter (und der Zeit in Millisekunden) mit demnotify-send
Befehl festlegen, um beispielsweise die Dauer für die Verwendung von 5 Minuten festzulegenaber dieser Parameter vollständig ignoriert werden kann abhängig von Ihrer Desktop - Umgebung (siehe diese ).
quelle
Es reicht aus, ein Skript wie das folgende zu haben:
Dies ist eine sehr typische Methode und wird häufig in Shell-Skripten verwendet. Dies führt zu einer kontinuierlichen Ausführung und überprüft jede Viertelsekunde, ob Ihr Skript über ausgeführt wird
pgrep -f
.if..fi
Anweisungen in Shell-Skripten arbeiten mit dem Exit-Status von Befehlen.pgrep -f
Wenn Sie also den erfolgreichen Exit-Status zurückgeben, wird der Prozess Ihres Skripts gefunden und ausgeführt. Ansonsten gehen wir zur else-Anweisung.In beiden Fällen drucken wir eine Textzeile, die dem Benutzer mitteilt, ob sie ausgeführt wird oder nicht. Es wurde auch
printf "\r%b" "\033[2K"
eine Drucksequenz zum Löschen der Zeile gedruckt (nur für eine sauberere Ausgabe).Von dort ist der Himmel die Grenze. Sie können diesen Text per Pipe an einen anderen Prozess im Terminal übergeben oder die Ausgabe des Überwachungsskripts an den Indikator-Sysmonitor übergeben , der die Anzeige benutzerdefinierter Informationen im Indikator ermöglicht. Es kann über installiert werden
Konfigurieren Sie danach einfach den Indikator so, dass ein benutzerdefinierter Befehl angezeigt wird, der das Überwachungsskript ist. Ein Beispiel für die Konfiguration eines benutzerdefinierten Befehls finden Sie hier .
Natürlich könnte man in Python einen eigenen Indikator schreiben, aber dies könnte nur ein Overkill sein, wenn es dafür bereits ein Tool gibt.
quelle
indicator-sysmonitor
klingt nützlich, ich sollte es versuchen.Hier ist Python Launcher, basierend auf dieser Antwort und einer zusätzlichen Recherche im Internet, die in Ubuntu 16.04 gut funktioniert:
Erstellen Sie eine ausführbare Datei und platzieren Sie die obigen Zeilen als Inhalt. Nehmen wir an, die Datei wird aufgerufen
script-indicator.py
. Abhängig von Ihren Anforderungen und Ihrer Skriptart können Sie diesen Launcher auf eine der folgenden Arten verwenden:script.sh
möchten Sie angeben?Screenshot gemacht, wenn das
script.sh
beendet ist:Alternativ können Sie das Skript so platzieren
/usr/local/bin
, dass es systemweit als Shell-Befehl zugänglich ist. Sie können es von diesem speziellen GitHub Gist herunterladen :Ich habe es mit der folgenden Syntax getestet:
quelle
Mit
osd_cat
Sie können
osd_cat
aus demxosd-bin
Paket verwenden, zB:Dies zeigt "Läuft" mit der Schriftgröße
100
für5
Sekunden an der Position20,50
auf dem Bildschirm an und startet,firefox
wenn es fertig ist - das brauchen Siesleep
bei diesem Ansatz nicht. Sie könnenxfontsel
den X Logical Font Descriptor (dieses seltsame-*-*-…
Ding) für die-f
Option verwenden, z. B. wenn Sie eine andere Schriftart verwenden möchten. Lesen Sieman osd_cat
für weitere Optionen.Mit
yad
Sie können
yad
Folgendes verwenden:Dies hat den Vorteil, dass Sie den Befehl abbrechen oder sofort ausführen können. Wenn Sie nichts tun, wird er
5
in diesem Beispiel nach Sekunden geschlossen.quelle
yad
fenster kann minimiert werden, der osd text kann nicht.Sie können dieses bereits funktionierende Skript verwenden
multi-timer
und den Großteil davon für einen generischen Countdown-Timer entfernen:Es wird dasselbe verwendet, das
indicator-sysmonitor
in Serges Antwort beschrieben ist.Der Systray-Teil
Brightness: 2344
wird ebenfalls von demselben Skript angezeigt.Wenn es für neue Benutzer zu schwierig ist, nicht benötigte Teile des Bash-Codes zu entfernen, würde ich gerne hier ein Skript
show-sleep
mit der erforderlichen eingeschränkten Funktionalität veröffentlichen. Schreiben Sie einfach einen Kommentar unten.quelle