💾 Archived View for tilde.team › ~rami › calcurse.gmi captured on 2024-12-17 at 11:35:29. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

~Rami ₪ MANUALS

רמי

SUBJECT: Calcurse: Консольный календарь / Менеджер задач

AUTHOR: Rami Rosenfeld

DATE: 22/10/24

TIME: 05.00

LANG: ru, en

LICENSE: GNU FDL 1.3

TAGS: gnu, gnome, software, opensource, linux, system, man, manual, bash, privacy, security, rhel, centos, mate, xfce, lxde, calendar, calcurse

Calcurse: Консольный календарь / Менеджер задач

INTRO

Давно имелась идея - подобрать для личного пользования удобный консольный календарь. И в своих поисках я не поленился протестировать с десяток подобных программ. Как правило, все они страдают единым недостатком: необходимостью помнить (и вводить в командной строке) сотни разнообразных ключей и выражений (или, как Taskwarrior, ограничены в наглядном и удобном выводе информации на экран; хотя начинал я именно с него - примерно 20+ лет назад).

В отличии от них, Calcurse, на котором я остановился в конечном итоге, очень прост, нагляден, использует все экранное пространство (и подстраивается под его размеры). Плюс - обладает управлением, схожим, к примеру, с Midnight Commander.

Ниже я приведу минимальное описание, а также примеры конфигурации программы и содержимого календаря/списка задач.

NOTE

Calcurse устанавливается из стандартных репозиториев:

dnf install calcurse

- hooks – запуск скриптов при загрузке/сохранении данных;

- экспериментальная поддержка CalDAV - синхронизация с мобильными устройствами;

- поддержка различных типов событий, встреч, дел (TODO), включая события, занимающие весь день, и повторяющиеся события;

- быстродействующий и легко настраиваемый curses-based интерфейс;

- расширенный неинтерактивный интерфейс командной строки, в котором можно использовать скрипты;

- переназначаемые пользователем "управляющие клавиши";

- конфигурируемая пользователем система оповещений, включающая возможность отсылки писем или запуска программ напоминания о наступающих событиях;

- импорт календаря с поддержкой iCalendar;

- экспорт календаря с поддержкой ical и pcal;

- возможность прикрепления заметок к каждому элементу/событию календаря (и редактирование их в предпочтительном стороннем редакторе);

- мультиязычный интерфейс;

- поддержка UTF-8.

Calcurse TUI

Интерфейс разделен на четыре области:

- описание текущих событий календаря;

- календарь;

- задачи;

- панель управления.

Перемещение фокуса между областями циклично осуществляется при помощи клавиши [TAB].

Выбор событий в отдельной области осуществляется стрелками "вниз/вверх".

Короткая сводка по управляющими клавишам (на самом деле, их очень много - целых четыре(!) панели; переход между ними возможен при нажатии клавиши "o"):

a - добавить событие или задачу (зависит от активной области);

e - редактировать событие или задачу;

d - удалить событие или задачу;

s - сохранить изменения;

i - импорт данных;

x - экспорт данных;

C - вход в настройки;

? - справка;

q - выход из настроек, вложенного подменю или программы.

Все настройки можно легко конфигурировать как при помощи удобного TUI (псевдографического интерфейса), так и непосредственной правкой конфигурационного файла. Ниже в качестве примера приводится преднастроенный мною файл conf, расположенный по адресу ~/.config/calcurse/

appearance.calendarview=monthly
appearance.compactpanels=yes
appearance.defaultpanel=calendar
appearance.layout=1
appearance.headerline=no
appearance.eventseparator=no
appearance.dayseparator=no
appearance.emptyline=no
appearance.emptyday=--
appearance.notifybar=no
appearance.sidebarwidth=33
appearance.theme=cyan on default
appearance.todoview=hide-completed
appearance.headingpos=left-justified
daemon.enable=no
daemon.log=no
format.inputdate=2
format.notifydate=%a %F
format.notifytime=%T
format.appointmenttime=%H:%M
format.outputdate=%D
format.dayheading=%B %e, %Y
general.autogc=yes
general.autosave=yes
general.confirmdelete=yes
general.confirmquit=yes
general.firstdayofweek=monday
general.multipledays=yes
general.periodicsave=5
general.systemevents=yes
notification.command=printf '\a'
notification.notifyall=flagged-only
notification.warning=300

Я очистил конфигурационный файл от всякого рода излишеств: разделителей в интерфейсе, лишних пробелов и т.п., поэтому предлагаю первоначально воспользоваться именно им, а уж затем - дополнительно подстроить под свои нужды.

Внести любое событие можно при помощи TUI-интерфейса или вручную - правкой соответствующих файлов календаря и todo-списка. Лично мне показался удобным и быстрым второй способ.

Данные календаря и todo расположены по адресу:

ls ~/.local/share/calcurse

/notes

apts

todo

Структура списка задач/дел (файл todo):

[1] Тестовая задача № 1

[0] Неприоритетная задача № 2

(для наглядности - соотнесите эти данные с иллюстрацией, приведенной выше)

Структура календаря (файл apts):

10/22/2024 @ 05:00 -> 10/22/2024 @ 06:00|Ограниченное временем событие

10/22/2024 [1] Тестовое событие на целый день

04/21/2026 [1] {1Y} ♨ Голда Меир - день рождения!

05/20/2026 [1] {1Y} ♨ Моше Даян - день рождения!

10/16/2026 [1] {1Y} ♨ Давид бен-Гурион - день рождения!

Как следует из приводимых данных:

10/22/2024 @ 05:00 -> 10/22/2024 @ 06:00| - указывает на длительность события;

04/21/2026 - дата вносится в формате МЕСЯЦ/ДЕНЬ/ГОД; ВАЖНО - месяц идет первым!

[1] - событие занимает весь день;

{1Y} - событие будет повторяться с периодичностью каждый год.

ВАЖНО! Если вы вносите повторяющееся календарное событие посредством TUI-интерфейса:

- вначале создайте событие (например - день рождения);

- затем назначьте этому выделенному событию рекуррентность, нажав на клавишу "r" (этой кнопки нет на управляющей панели, и я долго искал такую возможность, пока не догадался заглянуть в FAQ на сайте производителя: этот вопрос приведен первым в списке!)

Современные электронные календари, пользуясь расширенным стандартом на количество и содержание полей в отдельном событии, вносят в конечный файл огромное количество мусорных данных. Поэтому я предпочел создать новый календарь вручную (см. пример выше); после чего попробовал экспортировать его: как результат, получился очень чистый файл. Он экспортируется в несколько ином формате, поэтому переименуйте его расширение .ical на привычное .ics (по сути, это одно то же), затем импортируйте в любую другую программу.

Дополнительно см.: man calcurse

Calcurse Homepage

Calcurse Manual

₪ Back to home ₪

🄯 Rami Rosenfeld, 2024. GNU FDL 1.3.