Emacs. Пакет pomm

2025-02-08 · 3 мин. для прочтения

Emacs. Пакет pomm.

Содержание

1 Общая информация

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).
    • Это добавлено для того, чтобы при опоздании с перерыва таймер не запускался бы без пользователя.
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.