# Calendar + Mail Popup Notes Заметка по идее компактного календарно-почтового инструмента для Fedora + Niri + Waybar. ## Цель Нужны две связанные поверхности: 1. Понятное решение в `waybar`, откуда можно быстро открыть календарь и увидеть нужную информацию. 2. Отдельное компактное `tool-window` / popup-окно с календарем и мини-почтой. Это не должен быть полноценный тяжелый PIM-комбайн на первом этапе. Основной приоритет — быстрый обзор и быстрые действия. ## Что нужно уметь ### В Waybar - Кликнуть по модулю. - Увидеть календарную информацию без переключения в большой клиент. - Быстро понять: - что сегодня; - что дальше по неделе; - есть ли ближайшие события; - есть ли непрочитанная почта. ### В popup/tool-window - Посмотреть календарь на неделю и месяц. - Увидеть список ближайших событий. - Создать событие. - Иметь мини-почту как обзор, а не как полноценный mail client. ## Ограничения текущего Waybar Встроенный `clock` модуль Waybar умеет: - показывать месяц/год; - переключать режимы; - листать календарь; - запускать команды по клику. Но встроенный календарь Waybar — только display layer: - он не показывает реальные CalDAV / Nextcloud / Google события; - он не умеет создавать события; - он не является полноценным event-aware календарем. Следствие: Waybar должен быть entry point, а не местом, где живет вся календарная логика. ## Вывод по архитектуре Нужна связка из двух частей: 1. `waybar` как обзор и кнопка входа; 2. отдельное маленькое приложение/окно как рабочая поверхность. Рекомендованный подход: - hover в `waybar` показывает компактный календарный overview; - click открывает собственный popup/tool-window; - popup уже работает с реальными данными календаря и почты. ## Предлагаемый UX ### 1. Waybar popover / overview Минимальный состав: - верх: дата, `Today`, кнопка `+ Event`; - слева: мини-месяц; - справа или снизу: блок `Today / Tomorrow / This Week`; - отдельный короткий блок `Unread mail`. Роль этого слоя: - быстрое чтение; - быстрый переход; - минимум действий; - без тяжелой навигации. ### 2. Tool-window / popup Форма окна: - не полноценное большое desktop app окно; - не полноразмерный почтовый клиент; - компактное floating window, открываемое по клику из `waybar`. Предпочтительная компоновка: - левая колонка: мини-месяц + список календарей; - центральная зона: week view или month-agenda; - правая колонка: `Upcoming`, `Reminders`, `Unread mail`. Верхняя строка: - `Today` - `New event` - `Search` - переключение `Week / Month` ## Мини-почта: что это значит Почта в этом окне должна быть не отдельным MUA, а summary layer: - unread messages; - flagged / important; - письма за сегодня; - клик по письму открывает внешний клиент. Нежелательно на первом этапе: - полноценный composing; - threading; - archive/reply прямо в popup; - попытка заменить Thunderbird или другой почтовик. Идея: calendar-first окно с mail summary, а не равноправный split mail/calendar комбайн. ## Референсы по форме и UX ### Основной референс по форме `Fantastical Mini Window` - маленькое окно поверх рабочего контекста; - быстрый обзор событий; - быстрый add/search; - ощущается как utility window, а не как полноразмерное приложение. Ссылка: - https://flexibits.com/blog/2022/04/mini-window-big-productivity-getting-the-most-from-fantastical-for-macs-mini-window/ ### Референс по базовым календарным экранам `GNOME Calendar` - чистый month/week view; - отдельный event editor; - понятная структура desktop calendar без перегруза. Ссылка: - https://apps.gnome.org/Calendar/ ### Референс по плотной рабочей компоновке `Notion Calendar` - маленький месяц + основной agenda/week layout; - показывает, как совместить overview и рабочую область. Ссылка: - https://habr.com/ru/news/787144/ ### Референс по идее mail+calendar продукта `Thunderbird` - полезен не как popup reference, а как пример того, что почтовый summary и календарь могут жить рядом; - для нашего UX слишком тяжел как direct reference. Ссылка: - https://www.thunderbird.net/en-US/ ## Практический вывод Лучшее направление для реализации: - брать `Fantastical Mini Window` как референс формы; - брать `GNOME Calendar` как референс календарных экранов; - делать calendar-first popup; - оставлять почту в формате короткого summary. ## Следующий логический шаг Перед реализацией нужно решить: 1. popup должен быть очень маленьким overview-окном или уже почти полноценным mini-organizer; 2. mini-mail нужен только для чтения summary или уже с действиями вроде `mark read`, `archive`, `open`.