Skip to content

Instantly share code, notes, and snippets.

@joeheyming
Forked from camdez/breaktime.el
Last active August 25, 2015 23:18
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joeheyming/5e22b44f9cc0d0a75ac1 to your computer and use it in GitHub Desktop.
Save joeheyming/5e22b44f9cc0d0a75ac1 to your computer and use it in GitHub Desktop.
/u/joeheyming's Emacs break timer (modified)
;;; See: https://www.reddit.com/r/emacs/comments/3icpo7/take_a_break_every_3_hours/
(defvar breaktime-timer nil
"Holds the running break timer (if any).")
(defvar breaktime-wait "3 hours"
"How long to wait for the next break.")
(defun breaktime--set-next-breaktime ()
"If we kill a breaktime buffer, set another wait timeout"
(when (string= (buffer-name) "*breaktime*")
(setq breaktime-timer (run-at-time breaktime-wait nil 'breaktime--take-a-break))))
(add-hook 'kill-buffer-hook #'breaktime--set-next-breaktime)
(defun breaktime--take-a-break ()
(interactive)
(switch-to-buffer (get-buffer-create "*breaktime*"))
(let ((inhibit-read-only t))
(erase-buffer)
(delete-other-windows)
(animate-string "Time to take a break"
(/ (window-height) 2) (- (/ (window-width) 2) 12)))
(set-buffer-modified-p nil)
(view-mode))
(defun breaktime-start ()
(interactive)
(when breaktime-timer
(cancel-timer breaktime-timer))
(setq breaktime-timer
(run-at-time breaktime-wait nil 'breaktime--take-a-break)))
(defun breaktime-stop ()
(interactive)
(when breaktime-timer
(cancel-timer breaktime-timer)
(setq breaktime-timer nil)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment