Недавно я решил просмотреть все советы снова и обнаружил, что некоторые из них позабылись. Так что я решил сделать что-то, что переодически напоминало бы их. Лучшим выбором оказались всплывающие оповещения.
Плюсы:
- всплывающее окно легко сделать;
- всплывающее окно не требует от меня каких либо действий, так что я могу пропустить совет, если хочу.
Реализация
Для начала я создал следующий скрипт и сделал его исполняемым:
#!/bin/sh export DISPLAY=:0 CAPTION="Random advice" PHRASES=/home/rasen/phrases.txt cat "$PHRASES" | sed '/^$/d' | sort -R | head -1 | tr -d '\n' | xargs -0 notify-send "$CAPTION"
Скрипт извлекает одну произвольную строку из файла и отображает ее как оповещение.
Давайте разберем скрипт по кусочку:
export DISPLAY=:0
нужно, чтобы скрипт заработал из-под cron;sed '/^$/d'
убирает пустые строки;sort -R | head -1
извлекает произвольную строку;tr -d '\n'
убирает ведомый пробел;xargs -0 notify-send "$CAPTION"
отображает конечную строку в виде оповещения.
Запуск скрипта по расписанию
После этого, я запустил crontab -e
и добавил задание с помощью следующей строчки:
0 * * * * /home/rasen/random-advice.sh
Это правило cron для запуска указанной комманды каждый час.
После этого, каждый час будет появляться всплывающее окно с одним советом.
Альтернативы
Если у Вас нет cron’а или вы не хотите его использовать, вы можете выбрать любой другой способ, который будет запускать скрипт с указанной частотой.
Например, можно запустить скрипт руками внутри бесконечного цикла:
while true ;do sleep 3600 && ~/random-advice.sh done
Как еще одну альтернативу, вы можете использовати события systemd (не забудьте запускать скрипт от имени своего пользователя).
ссылка на оригинал статьи http://habrahabr.ru/post/221661/
Добавить комментарий