43 Pomodoro

Utilizar la técnica de time boxing va bien para acotar tiempo para concentrarse y para medir lo que nos puede costar algo.

Emacs incorpora una plugin llamado pomidor que nos puede ayudar.

Para instalarlo necesitamos primero escribir este código en el archivo .emacs para que arranque la referencia al repositorio y pueda encontrarlo:

;;; #14 Añadir repositorio
(require 'package) ;; You might already have this line
(add-to-list 'package-archives
             '("melpa" . "https://melpa.org/packages/"))
(when (< emacs-major-version 24)
  ;; For important compatibility libraries like cl-lib
  (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))
(package-initialize) ;; You might already have this line

;;; #15 Carga los paquestes del repositorio
(add-to-list 'package-archives
'("melpa-stable" . "https://stable.melpa.org/packages/") t)

Se trata del repositorio MELPA (Milkypostman’s Emacs Lisp Package Archive).

Instalar

M-x pomidor

Instrucciones

Podemos ver las instrucciones en el repositorio del autor https://github.com/TatriX/pomidor.

Ponlo en marcha

M-x pomidor

Imagen

Pomidor

Keybindings

Key Descrición
Enter Iniciar nuevo pomodoro
Space Iniciar un break
R Resetear el timer
q Salir del buffer pomidor
Q Apagar pomidor

Adaptación - Customization

Puedes adaptarlo con M-x customize-group RET pomidor o editando .emacs.

Para cambiar timer:

(setq pomidor-seconds (* 25 60)) ; 25 minutos
(setq pomidor-break-seconds (* 5 60)) ; 5 minutos

Para desactivar los sonidos:

(setq pomidor-sound-tick nil
      pomidor-sound-tack nil
      pomidor-sound-overwork (expand-file-name (concat pomidor-dir "overwork.wav"))
	  pomidor-sound-break-over (expand-file-name (concat (getenv "HOME") "/Music/overwork.wav")))

Para cambiar la apareincia tu puedes adaptar o configurar el tema directamente:

;; for a full list of available faces see `customize' or search for `defface' in the source code
(progn
  (set-face-attribute 'pomidor-break-face nil :foreground "#00ff00")
  (set-face-attribute 'pomidor-overwork-face nil :foreground "#00abff")
  (set-face-attribute 'pomidor-skip-face nil :foreground "#abbac3")
  (set-face-attribute 'pomidor-work-face nil :foreground "#ff0000"))

Sonidos

Si tu Emacs no puede reproducir sonidos tu puedes proveerlo con una función para ello:

(setq pomidor-play-sound-file
      (lambda (file)
        (start-process "my-pomidor-play-sound"
                       nil
                       "mplayer"
                       file)))

Notificación

Por defecto pomidor mostrará una notificación una vez por minuto. Mira alert documentación para aprender cómo configurarlo.

Tu puedes cambiar la notificación globalmente:

(setq alert-default-style 'libnotify)
;; or 'growl (see alert docs)

Puedes cambiar la notificación configurando la variable pomidor-alert (defaults to pomidor-default-alert):

(setq pomidor-alert (lambda () (alert "OMG!11")))

Puedes configurar pomidor-update-hook para hacer que trabaje cada vez que se actualice.

(defun my-pomidor-update-hook ()
  (alert "Zzz"))

(add-hook 'pomidor-update-hook #'my-pomidor-update-hook)

Puedes ajustar el intervalo de actualización configurando la variable pomidor-update-interval

(setq pomidor-update-interval 30) ; seconds