Библиотека сайта rus-linux.net
calcurse - бесплатный календарь и планировщик для командной строки
Оригинал: calcurse – free calendar and scheduling application for the command line
Автор: Steve Emms
Дата публикации: 21 сентября 2018 года
Перевод: А. Кривошей
Дата перевода: июнь 2019 г.
calcurse - это текстовый календарь и планировщик с открытым исходным кодом. Программа отслеживает события, встречи и повседневные задачи.
Программа легкая, быстрая и надежная. Она предназначена для консоли или терминала, работает локально или на удаленной машине.
Настраиваемая система уведомлений напоминает пользователям о предстоящих сроках, интерфейс на основе curses можно настраивать в соответствии с потребностями пользователей, а очень мощный набор параметров командной строки можно использовать для фильтрации и форматирования встреч, что делает ее пригодным для использования в скриптах.
Установка
GitHub проекта предлагает файлы zip и tar.gz. А на сайте есть ссылки на пакеты для самых популярных дистрибутивов Linux, включая Ubuntu, Fedora, openSUSE, Debian и Arch Linux. Есть также пакеты для OpenBSD, FreeBSD, NetBSD, а также Mac OS X.
Вы можете получить не самую последнюю версию, если используете пакет дистрибутива. Поэтому зачастую лучше загрузить исходный пакет с веб-сайта проекта и скомпилировать его самостоятельно.
tar zxvf calcurse-4.3.0.tar.gz cd calcurse ./configure && make -j4 sudo make install
флаг -j ускоряет компиляцию для систем с многоядерными процессорами.
Работа с calcurse
calcurse работает в двух режимах: интерактивном или неинтерактивном.
Интерактивный режим
В интерактивном режиме вы просматриваете свой персональный органайзер с текстовым интерфейсом.
Экран разделен на 3 панели: встречи, календарь и TODO. В нижней части экрана находится панель уведомлений и строка состояния. Перемещение по панелям производится с помощью клавиши табуляции.
На панели календаря дни с неповторяющимися элементами отличаются по цвету от дней, содержащих только повторяющиеся элементы. Настройки гибкие. Например, есть поддержка пунктуальных встреч (которые не имеют времени окончания), повторяющихся встреч, элементов задач с заданным приоритетом или неопределенным приоритетом, Vim-подобных copy/paste и многого другого.
Все параметры calcurse настраиваются в меню «Configuration», доступном при нажатии клавиши C. Затем вы попадаете в подменю с шестью возможными вариантами: общие параметры, параметры макета, боковая панель, цветовая тема и настройка клавиш. Опция боковой панели позволяет изменять ширину панелей календаря/задач.
Я проиллюстрирую один из этих вариантов, настройку макета. Как показано на рисунке ниже, пользователь может выбрать расположение 3-х панелей.
Макет по умолчанию имеет панель календаря в правом верхнем углу терминала, панель задач в правом нижнем углу, а панель встреч отображается в левой части экрана.
Неинтерактивный режим
Неинтерактивный режим позволяет легко создавать напоминания, просто добавляя calcurse с соответствующими аргументами командной строки на вкладке cron или в скрипте инициализации оболочки. Это означает, что нужная информация будет отображена, и после этого calcurse просто закроется, и вы вернетесь обратно в приглашение оболочки.
Доступен мощный набор параметров командной строки. Есть переключатели фильтров, которые ограничивают набор элементов, считываемых из файла. Вы можете выполнять grep, query, filter и многое другое.
Скажем, вы хотите знать свои встречи на ближайшие 7 дней. Введите calcurse -r7 в оболочке:
Одна из областей, в которой программное обеспечение с открытым исходным кодом может превосходить коммерческое, это пользовательская документация. calcurse предоставляет интерактивную справочную систему, которая вызывается нажатием клавиши ?. В этой справочной системе описаны все команды. Это полезно для новичков, так как помогает справиться с особенностями calcurse и привязками клавиш.
Когда в меню настройки уведомлений включен режим демона, calcurse остается в фоновом режиме, когда пользовательский интерфейс не запущен. В фоновом режиме calcurse проверяет предстоящие встречи и при необходимости запускает пользовательскую команду уведомления.
Программа написана на языке программирования Си.
Другие преимущества:
1. Запуск скриптов при загрузке/сохранении данных, например чтобы поставить данные календаря под систему контроля версий. Эта функция может использоваться для автоматической фиксации Git или синхронизации с сервером при записи файлов данных. Проект предоставляет несколько примеров сценариев.
2. Экспериментальная поддержка CalDAV - синхронизируйте калькулятор с вашими мобильными устройствами или другим компьютером. Это скрипт Python, который синхронизирует calcurse с сервером CalDAV.
3. Поддержка сервисов, требующих аутентификации OAuth2, таких как Календарь Google.
4. Поддержка различных типов встреч и предметов TODO, включая события на весь день и повторяющиеся встречи (ежедневно, еженедельно, ежемесячно и ежегодно).
5. Быстрый и настраиваемый интерфейс на основе curses.
6. Поиск на основе регулярных выражений.
7. Мощный неинтерактивный интерфейс командной строки, полезный для скриптов.
8. Пользовательские привязки клавиш. Клавиши по умолчанию будут знакомы пользователям vi.
9. Полностью настраиваемая система уведомлений (возможность отправлять письма или что-либо еще, что может напомнить вам о ваших предстоящих встречах).
10. Прикрепление заметок к встречам, событиям и задачам.
11. Расчет фаз Луны.
12. Возможность импорта с поддержкой формата iCalendar. Данные в формате icalendar могут быть импортированы, как описано в спецификации rfc2445.
13. Возможности экспорта с поддержкой форматов iCalendar и pcal.
14. Прикрепите заметки к каждому элементу календаря и редактируйте их в своем любимом текстовом редакторе.
15. Поддержка не цветных терминалов.
16. Поддержка интернационализации (i18n) с текстами на английском, французском, немецком, голландском, испанском и итальянском языках.
17. Поддержка UTF-8.
Заключение
Calcurse неприхотлив, быстр и прост в использовании. Это прекрасный текстовый календарь и планировщик.
Сайт:
Поддержка: Список рассылки объявлений, хранилище GitHub
Разработчик: Лукас Флейшер и команда (оригинальный разработчик: Фредерик Кулот)
Лицензия: BSD