Как стать автором
Обновить

Мой способ не забывать о событиях и делах

Время на прочтение3 мин
Количество просмотров1.9K
Описывать буду не столько сам способ, потому что в нём нет ничего нового, сколько реализацию, причём завязанную на UNIX-подобные ОС.

Скриншот

А на этом скриншоте информации меньше, но в более крупном разрешении.

Введение


На мой взгляд, лучшее место для размещения списка дел, когда их не очень много, — это рабочий стол. Большое количество пространства позволяет легко оценить весь объём дел. И посмотреть список дел легко — достаточно переключиться на свободный workspace.

Я выбрал группировку дел и событий по «области» (у меня «дом», «учёба», «программирование»; о работе дома стараюсь не думать). Важность событий я отмечаю цветом, получается вполне наглядно.

Описание


conky

В Linux я нашёл единственный способ отобразить текст поверх рабочего стола, как на скриншоте, — использовать программу conky. В первую очередь это монитор системы (загрузка процессора, версия ядра Linux и пр.), но и для моих целей подходит вполне.

Если бы мне пришлось реализовывать всё это в Windows, для отображения информации на рабочем столе я использовал бы возможность Windows отображать на рабочем столе HTML-страницу. Жаль, что для Linux такой технологии нет (afaik).

Информацию для отображения conky берёт из переданного через параметр командной строки конфигурационного файла или, если конфигурационный файл не задан, из конфигурационного файла по умолчанию ~/.conkyrc. Содержимое конфига имеет вид
<КОНФИГУРАЦИЯ>
TEXT
<СОДЕРЖИМОЕ>
Настройки, доступные в разделе конфигурации, описаны на странице ~/.conkyrc settings. Содержимое — текст с возможностью включения управляющих последовательностей, описанных на странице Conky Variables.

Можно запустить несколько экземпляров conky и указать каждому свой собственный конфигурационный файл. У меня за каждый столбец (см. скриншот) отвечает отдельный экземпляр conky.

XML и скрипты

Вручную редактировать конфиги conky очень неудобно, поэтому я предпочёл хранить дела и события в XML и написать простой скрипт преобразования. (на диаграмме ниже — conky-format.py)

В формате XML-файлов нет ничего интересного, поэтому здесь его не привожу, чтобы не перегружать статью.

Так как иногда возникала необходимость просмотреть дела вне дома, я написал также скрипт для экспорта дел в HTML. Достаточно запустить скрипт и скопировать полученную HTML-страницу, например, на КПК. (на диаграмме ниже — html-format.py)

Для фильтрации неактуальных событий (например, запланированных на месяц вперёд) я написал отдельный скрипт, чтобы не вносить в скрипты преобразования функционал, не относящийся напрямую к их обязанностям. (на диаграмме ниже — remind.py)

Наконец, я развязал скрипты преобразования от представления. Скрипт преобразования лишь берёт указанный XML-файл и возвращает кусок HTML или кусок текста, который надо поместить в раздел содержимого конфига conky. Путями к файлам и настройкой цветов текста, шрифтов и прочего занимаются отдельные сценарии командной оболочки. (на диаграмме ниже — conky-events и html-events)

Есть и отдельный скрипт, который создаёт все доступные представления дел. Изменил список событий, вызвал скрипт и все дела. (на диаграмме ниже — make-events)

Последовательность вызовов скриптов

Пример


Естественно, всё это можно пощупать. Для этого распакуйте в домашнюю директорию архив с XML-файлами (папка events), архив со скриптами преобразования (папка py/pySimpleRemind/src/) и архив со скриптами командной оболочки (папка bin).

Для запуска скриптов преобразования нужны пакеты python и python-lxml. Чтобы запустить скрипты командной оболочки, папка bin должна быть включена в переменную окружения PATH. Не забудьте после распаковки архивов добавить для всех исполняемых файлов право на исполнение! Чтобы посмотреть дела на рабочем столе, вам понадобится пакет conky.

После выполнения скрипта make-events запустите conky и наслаждайтесь (если я нигде не напортачил, естественно). Результирующие HTML-странички складываются в ~/html-events/. Если хотите изменить пути, отредактируйте скрипты в папке bin.

UPD: Обновил топик согласно комментарию. Положил новую версию архивов и нарисовал новую диаграмму скриптов.
Теги:
Хабы:
Всего голосов 30: ↑23 и ↓7+16
Комментарии41

Публикации

Ближайшие события