Простий нагадування на Linux

linux
простий
Для людей, які працюють в офісі з персональним комп'ютером - бухгалтерів, інженерів, секретарів, менеджерів, фахівців, експертів, начальників структурних підрозділів і тим більше директорів - сьогодні звичайною справою є супроводжувати рішення кількох питань одночасно.

Наприклад, дзвонить покупець і просить внести зміни до договору. Ти кладеш трубку - і тут дзвонить твій колега і просить тебе направити йому давно забутий матеріал, який треба ще постаратися знайти. Не встигаєш ти домовитись з колегою, як дзвонить на стільниковий директор і просить скласти йому невеликий звіт. Адже до цього ти займався своїм питанням! Потрібно все запам'ятати, нічого не проґавити! Типова ситуація, чи не так?

Для того, щоб все встигати в таких ситуаціях, допоможе простий нагадунок. Але що таке просте нагадування? Які критерії її простоти? Для мене «простим нагадувачем» є та, яка діє за таким принципом:

  • Відкриваєш діалогове вікно нагадування гарячою клавішею (ну, або поєднанням клавіш, наприклад Ctrl+Shift+X)
  • Вводиш час і текст нагадування простими зрозумілими словами (наприклад, «через 15 хвилин скинути Олексію матеріал», «о 11-й звіт директору», «о 13-15 обід», «завтра о 15:10 простежити за листом», «у середу в 10 до податкової»)
  • Натискаєш Enter.
  • У заданий час вискакує нагадування, яке можна закрити чи відкласти.

Найкращим, на мою думку, рішенням такого завдання є програма XMinder. Напевно, якби я писав технічне завдання на розробку простого нагадування, вона б виглядала саме як XMinder. Цією програмою я користувався довгий час, поки одного разу не вирішив встановити на робочому комп'ютері операційну систему Linux (на жаль,програма XMinder написана лише під Windows).

Втрата такого чудового нагадування була суттєвою, необхідно було знаходити вихід і… я вирішив написати програму сам.

Раніше я мав невеликий досвід написання програм у html, php, actionscript (flash). Однак для цього завдання вирішив вибрати зв'язку Python+Bash+Zenity+At. Чому Python? — Тому що за ним знайшлася хороша документація, тому що за умовчанням він встановлений у моєму дистрибутиві Linux Mint 17. Вже після перших кроків освоювання нової мови я розумів, що вирішення завдання мені буде посильним. Чому Bash? — Це окрема історія і пов'язана вона з функцією «Відкласти» у моєму нагадуванні. Чому Zenity? — Тому що просто, лаконічно і знову ж таки — вбудоване за замовчуванням більшість дистрибутивів LInux. Чому At? — Так саме ця програма все завдання і вирішує! І вміє зберігати дані навіть після перезавантаження комп'ютера!

Таким чином, я тільки зібрав у єдину пару програм і додав потрібний синтаксис. У результаті у мене вийшло 2 файлики:

Файли потрібно покласти в одну директорію (у мене це

/remindme) і зробити виконуваними (наприклад, командою «chmod +x»). На файл remind.py необхідно призначати гарячі клавіші (у різних дистрибутивах це робиться по-різному), наприклад, поєднання клавіш Ctrl+Shift+X.

Файли для завантаження доступні за посиланням. Проект викладено на GitHub.