Набрал в поиске таймер линукс и он выдал , что таймер можно использовать с помощью systemd,cron , ну и конечно различными clock-ами.
Попробовал гномовский , но там столько зависимостей для моей оси,что не стал заморачиваться и написал простейший таймер.
Конечно можно сказать,что это ‘непрограммирование’,возможно,но работает))
if [ -z "$(which yad)" ]; then echo "Пакет 'yad' не установлен"; exit 0; fi; TIME_CHOOSE=$(yad --form --separator=" " --field=Дни:NUM --field=Часы:NUM --field=Минуты:NUM --field=Секунды:NUM --field="Самозапуск:CHK" | awk -F ' ' '{print "sleep "$1"d "$2"h "$3"m "$4"s "}{print $5}'); if [ "$(echo "$TIME_CHOOSE" | grep 'FALSE')" ]; then eval "$(echo "$TIME_CHOOSE" | head -1)" && yad --geometry "1500x850+100+50" --text-info --title="Пора сделать разминку" --timeout=2 --fontname="Serif bold italic 150" --fore=red --back=black --justify=center <<< $(echo -e "^|^ Пора \nсделать\n разминку") > /dev/null; else i=1; while true; do eval "$(echo "$TIME_CHOOSE" | head -1)" && yad --geometry "1500x850+100+50" --text-info --title="Пора сделать разминку" --timeout=2 --fontname="Serif bold italic 150" --fore=red --back=black --justify=center <<< $(echo -e "^|^ Пора \nсделать\n разминку"); i=$(($i + 1)); done; fi
Написал в одну строчку,чтобы удобнее было запустить в терминале и посмотреть. Правда одна зависимость есть - нужен yad || zenity.(можно заменить все yad на zenity)
Если поставить галочку, будет появлятся сообщение через установленное время автоматически.
–timeout=2 время показа баннера
–geometry «1500x850+100+50» размеры и расположение баннера
Останавливается как обычно ctrl+c.
Надеюсь поможет незасиживаться.
Развернутая версия
#!/bin/sh
if [ -z "$(which yad)" ]; then echo "Пакет 'yad' не установлен"; exit 0; fi
TIME_CHOOSE=$(yad --form --separator=" " --field=Дни:NUM !0..60 \
--field=Часы:NUM !0..23 \
--field=Минуты:NUM !0..59 \
--field=Секунды:NUM !0..59 \
--field="Самозапуск:CHK" | awk -F ' ' '{print "sleep "$1"d "$2"h "$3"m "$4"s "}{print $5}')
if [ "$(echo "$TIME_CHOOSE" | grep 'FALSE')" ]; then
eval "$(echo "$TIME_CHOOSE" | head -1)" && \
yad --geometry "1500x850+100+50" \
--text-info \
--title="Пора сделать разминку" \
--timeout=2 \
--fontname="Serif bold italic 150" \
--fore=red \
--back=black \
--justify=center \
--undecorated \
--no-buttons \
--skip-taskbar \
--on-top <<< $(echo -e "^|^ Пора \nсделать\n разминку") > /dev/null
else
i=1
while true
do
eval "$(echo "$TIME_CHOOSE" | head -1)" && \
yad --geometry "1500x850+100+50" \
--text-info \
--title="Пора сделать разминку" \
--timeout=2 \
--fontname="Serif bold italic 150" \
--fore=red \
--back=black \
--justify=center \
--undecorated \
--skip-taskbar \
--no-buttons \
--on-top <<< $(echo -e "^|^ Пора \nсделать\n разминку")
i=$(($i + 1))
done
fi