.emacs.d/lisp/init-pomodoro.el

55 lines
1.8 KiB
EmacsLisp

;;; init-pomodoro.el --- Pomodoro settings -*- lexical-binding: t -*-
;;; Commentary:
;;; Code:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; org-pomodoro
(use-package org-pomodoro
:custom-face
(org-pomodoro-mode-line ((t (:inherit warning))))
(org-pomodoro-mode-line-overtime ((t (:inherit error))))
(org-pomodoro-mode-line-break ((t (:inherit success))))
:bind (:map org-mode-map
("C-c C-x m" . org-pomodoro))
:init
(with-eval-after-load 'org-agenda
(bind-keys :map org-agenda-mode-map
("K" . org-pomodoro)
("C-c C-x m" . org-pomodoro))))
;; https://github.com/devbins/.emacs.d/blob/5341a41e2b100c1228eb2438aa5a83927857cfb0/lisp/init-func.el#L335
(defun notify-osx (title msg)
(call-process "terminal-notifier"
nil 0 nil
"-group" "Emacs"
"-title" title
;; "-sender" "org.gnu.Emacs"
"-message" msg
"-sound" "Glass"
"-active" "org.gnu.Emacs"))
;; org-pomodoro mode hooks
(add-hook 'org-pomodoro-started-hook
(lambda ()
(notify-osx "Pomodoro started!" "Time for a pomodoro.")))
(add-hook 'org-pomodoro-finished-hook
(lambda ()
(notify-osx "Pomodoro completed!" "Time for a break.")))
(add-hook 'org-pomodoro-break-finished-hook
(lambda ()
(notify-osx "Pomodoro Short Break Finished" "Ready for Another?")))
(add-hook 'org-pomodoro-long-break-finished-hook
(lambda ()
(notify-osx "Pomodoro Long Break Finished" "Ready for Another?")))
(add-hook 'org-pomodoro-killed-hook
(lambda ()
(notify-osx "Pomodoro Killed" "One does not simply kill a pomodoro!")))
(provide 'init-pomodoro)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; init-pomodoro.el ends here