Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
linuxCowboy
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Beitrag
von linuxCowboy » 21.03.2021 19:55:20
Die
bash sollte einen
Countdown-Timer haben!
Code: Alles auswählen
Ftimer ()
{
[[ ! $1 =~ ^[0-9]+$ ]] &&
echo "
$FUNCNAME seconds # countdown timer
" && return
for i in `seq $1 -1 1`; do
echo "$((100 - ${i}00 / $1))\n#Countdown: $i"
sleep 1
done | DISPLAY=:0.0 WINDOWID= zenity --progress --auto-close --title=Timer
}
-der_linux_cowboy --- Besser werden! ... f*** w$$
-
linuxCowboy
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Beitrag
von linuxCowboy » 23.03.2021 13:06:28
Update:
Code: Alles auswählen
Ftimer ()
{
[[ ! $1 =~ ^[0-9]+$ ]] &&
echo "
$FUNCNAME seconds [title] # countdown timer
" && return
for i in `seq $1 -1 1`; do
echo "$((100 - ${i}00 / $1))\n#Countdown: $i"
sleep 1
done | DISPLAY=:0.0 WINDOWID= zenity --progress --auto-close --title="${2-Timer}"
}
-der_linux_cowboy --- Besser werden! ... f*** w$$
-
linuxCowboy
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Beitrag
von linuxCowboy » 23.03.2021 14:17:09
Der Okay Button sollte sofort aktiviert sein und den Focus haben!
Dann wäre Enter = Okay = Return 0 = weiter und Escape = Cancel = Return 1 = Abbruch.
-der_linux_cowboy --- Besser werden! ... f*** w$$
-
heinz
- Beiträge: 535
- Registriert: 20.12.2007 01:43:49
Beitrag
von heinz » 23.03.2021 15:34:09
Hallo linuxCowboy,
das soll nur ein Hinweis, keine Kritik sein.
Deine Variante hat ein Problem, wenn der Timer laengere Zeitraeume laufen soll.
Der sleep 1 Befehl wartet zwar immer relativ genau 1 sekunde aber bis zum Naechsten sleep vergeht auch immer etwas Zeit.
Mal etwas mehr, mal etwas weniger. Und das Summiert sich bei laengeren Laufzeiten ganz schoen. (Eigene Erfahrung mit aehnlichen Konstrukten...)
Um die Genauigkeit bei laengeren Laufzeiten zu erhoehen wuerde ich Empfehlen vlt. mit date zu arbeiten.
(Die Uhrzeit ermitteln wann der Timer abgelaufen ist und diese Zeit dann sekuendlich mit der aktuellen Zeit vergleichen...)
Nur so als Anregung...
Gruss,
heinz
-
linuxCowboy
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Beitrag
von linuxCowboy » 23.03.2021 17:06:25
heinz hat geschrieben: 23.03.2021 15:34:09
Deine Variante hat ein Problem, wenn der Timer laengere Zeitraeume laufen soll.
Soll er nicht. Maximal einige 100 Sekunden. Bei 5 Minuten ca. +2s. Kann man mit leben.
Es geht darum in Sekundenintervallen sichtbar runterzuzählen.
Ich nutze ihn als Rückmeldung bei
xmacro.
-der_linux_cowboy --- Besser werden! ... f*** w$$
-
linuxCowboy
- Beiträge: 287
- Registriert: 05.02.2013 19:47:41
Beitrag
von linuxCowboy » 24.03.2021 12:19:12
linuxCowboy hat geschrieben: 23.03.2021 14:17:09
Der
Okay Button sollte sofort aktiviert sein
und den Focus haben!
Dann wäre
Enter = Okay = Return 0 = weiter und
Escape = Cancel = Return 1 = Abbruch.
Okay wurde in
/usr/share/zenity/zenity.ui deaktiviert.
Code: Alles auswählen
<object class="GtkButton" id="zenity_progress_ok_button">
800c800
< <property name="sensitive">False</property>
---
> <!-- <property name="sensitive">False</property> -->
Auskommentieren,
Okay wird aktiv und kriegt den
Focus.
-der_linux_cowboy --- Besser werden! ... f*** w$$