Kreminder
Инструмент для напоминаний о необходимости отдыха после определённого периода работы за компьютером.
Идея создания
Для людей, которые проводят много времени за компьютером, регулярные перерывы важны для поддержания здоровья и продуктивности. Однако часто бывает трудно вспомнить о необходимости отдохнуть или сложно заставить себя встать из-за рабочего стола. Я решил создать инструмент, который будет напоминать мне об отдыхе.
Я написал скрипт, который использует notify-send для вывода всплывающего окна с напоминанием и установил crontab для периодического запуска скрипта. Это стало основой проекта.
Принцип реализации
После того как я реализовал основную функцию с помощью notify-send и crontab, я обнаружил, что гибкость этого подхода недостаточна, а перенос на другую машину требует дополнительной настройки. Поэтому я решил написать собственный скрипт на Python. Сначала я использовал notify-send напрямую в Python, но затем обнаружил модуль pynotify, который предоставляет аналогичные функции.
Вместо crontab я использовал бесконечный цикл со sleep. Таким образом, я заменил использование notify-send на pynotify и избавился от необходимости дополнительной настройки.
Со временем я понял, что забываю заказать обед в полдень. Я добавил функцию, которая напоминает мне о заказе обеда перед обеденным перерывом. Для этого мне пришлось использовать отдельный поток, так как основной поток был занят бесконечным циклом.
Чтобы упростить добавление новых функций, я решил использовать конфигурационный файл для хранения всех необходимых настроек. Это позволило мне добавлять новые функции без изменения кода.
Однако после запуска программы я заметил, что вентилятор компьютера начал работать громче. Это было связано с постоянным получением текущего времени в цикле. Я начал искать новое решение и нашёл APScheduler — фреймворк для работы с планировщиком задач в Python. Я решил переписать программу с использованием APScheduler.
После завершения переделки я обнаружил проблемы совместимости между pynotify и APScheduler, поэтому решил использовать PyQt вместо pynotify. PyQt позволяет создавать системные уведомления и всплывающие окна. Я также решил, что в будущем смогу расширить функциональность программы на основе этой платформы.
Таким образом, проект получил свою базовую форму.
Использование
Программа зависит от apscheduler и pyqt4. После загрузки исходного кода выполните install.sh в каталоге проекта для установки:
./install.sh
После установки измените конфигурационный файл:
vi ~/.kreminder/config/kreminder.conf
Программа запускается автоматически при каждом включении компьютера. Выйти из программы можно через пункт меню «Выход» в системном трее.
Для удаления программы удалите каталог .kreminder в домашнем каталоге пользователя:
rm -rf ~/.kreminder
Проект будет постоянно улучшаться и дополняться новыми функциями.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )