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 имеет следующие столбцы:
timestamp
status
(stopped
,paused
илиrunning
)kind
(work
,short-break
,long-break
илиnil
)iteration
context
- Чтобы настроить временную метку, установите переменную
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
).- Это добавлено для того, чтобы при опоздании с перерыва таймер не запускался бы без пользователя.