Emacs. Пакет pomm
2025-02-08
·
3 мин. для прочтения
Emacs. Пакет pomm.
Содержание
1 Общая информация
- Страница: https://sqrtminusone.xyz/packages/pomm/
- Репозиторий: https://github.com/SqrtMinusOne/pomm.el
- Реализация техник Pomodoro (см. Метод pomodoro) и Third Time.
- Управление на основе transient (см. Emacs. Пакет transient).
2 Использование
- Запустите
M-x pomm. - Откроется transient-буфер.
- Таймер может иметь 3 состояния.
- Выключенный.
- Можно запустить с
sилиM-x pomm-start. - Запустится таймер.
- Можно запустить с
- На паузе.
- Можно продолжить с
sилиM-x pomm-start. - Можно полностью остановить с
SилиM-x pomm-stop.
- Можно продолжить с
- Работает.
- Можно поставить на паузу с
pилиM-x pomm-pause. - Можно остановить с
SилиM-x pomm-stop.
- Можно поставить на паузу с
- Выключенный.
- Состояние таймера может быть сброшено с
RилиM-x pomm-reset. Uобновляет transient-буфер.- С
rилиM-x pomm-set-contextможно установить текущий контекст, то есть описание задачи, над которой вы в настоящее время работаете. - Это описание будет отображаться в истории и в файле CSV.
M-x pomm-start-with-contextзапрашивает контекст, а затем запускает таймер.
3 Оповещения
- Пакет отправляет оповещения через
alert.el - Стиль оповещения по умолчанию - простой
message, но если вы хотите графическое уведомление, установитеalert-default-style:(setq alert-default-style 'libnotify)
4 Звуки
- По умолчанию звуки отключены.
- Установите
pomm-audio-enabledвtдля включения. - Установите
pomm-audio-tick-enabledвt, если вы хотите тикающий звук во время работы.
5 Интерфейс к polybar
- Для отображения состояния Pomodoro в чем-то типа polybar:
(add-hook 'pomm-on-tick-hook 'pomm-update-mode-line-string) (add-hook 'pomm-on-status-changed-hook 'pomm-update-mode-line-string) - Для получения информации создайте сценарий:
if ps -e | grep emacs >> /dev/null then emacsclient --eval "(if (boundp 'pomm-current-mode-line-string) pomm-current-mode-line-string \"\") " | xargs echo -e fi - Добавьте определение модуля polybar:
[module/pomm]
type = custom/script
exec = /home/pavel/bin/polybar/pomm.sh
interval = 1
6 Расположение файла состояния
- Чтобы сохранить состояние между сеансами emacs, пакет хранит своё состояние в следующих файлах:
pomm-state-file-location,.emacs.d/pommпо умолчанию.pomm-third-time-state-file-location,/.emacs.d/pomm-third-timeпо умолчанию.
7 История в формате csv
- Если вы установите переменную
pomm-csv-history-file, пакет будет регистрировать свою историю в формате CSV. - Файл для техники Pomodoro имеет следующие столбцы:
timestampstatus(stopped,pausedилиrunning)kind(work,short-break,long-breakилиnil)iterationcontext
- Чтобы настроить временную метку, установите переменную
pomm-csv-history-file-timestamp-format. - Например, для традиционных
YYYY-MM-DD HH:mm:ss:(setq pomm-csv-history-file-timestamp-format "%F %T") - Формат такой же, как и в
format-time-string.
8 Использование с org-clock
- Пакет можно интегрировать с org-mode:
(add-hook 'pomm-on-status-changed-hook #'pomm--sync-org-clock) (add-hook 'pomm-third-time-on-status-changed-hook #'pomm-third-time--sync-org-clock) - Запустите таймер
pommиorg-clock-in, в любом порядке. - Пакет вызовет
org-clock-out, когда начнётся перерыв. - Пакет вызовет
org-clock-in-last, когда перерыв закончится. - Если установить параметр
pomm-org-clock-in-immediatelyвnil, то вызовorg-clock-in-lastоткладывается до тех пор, пока не поступит какая-либо команда от пользователя (черезpost-command-hook).- Это добавлено для того, чтобы при опоздании с перерыва таймер не запускался бы без пользователя.