Function: type-break-demo-boring
type-break-demo-boring is a byte-compiled function defined in
type-break.el.gz.
Signature
(type-break-demo-boring)
Documentation
Boring typing break demo.
Source Code
;; Defined in /usr/src/emacs/lisp/type-break.el.gz
;; Boring demo, but doesn't use many cycles
(defun type-break-demo-boring ()
"Boring typing break demo."
(let ((rmsg (if type-break-terse-messages
""
"Press any key to resume from typing break"))
(buffer-name "*Typing Break Buffer*")
lines elapsed timeleft tmsg)
(condition-case ()
(progn
(switch-to-buffer (get-buffer-create buffer-name))
(buffer-disable-undo (current-buffer))
(setq lines (/ (window-body-height) 2))
(unless type-break-terse-messages (setq lines (1- lines)))
(if type-break-demo-boring-stats
(setq lines (- lines 2)))
(setq lines (make-string lines ?\C-j))
(while (not (input-pending-p))
(erase-buffer)
(setq elapsed (type-break-time-difference
type-break-time-last-break
nil))
(let ((good-interval (or type-break-good-rest-interval
type-break-good-break-interval)))
(cond
(good-interval
(setq timeleft (- good-interval elapsed))
(if (> timeleft 0)
(setq tmsg
(format (if type-break-terse-messages
"Break remaining: %s"
"You should rest for %s more")
(type-break-format-time timeleft)))
(setq tmsg
(format (if type-break-terse-messages
"Break complete (%s elapsed in total)"
"Typing break has lasted %s")
(type-break-format-time elapsed)))))
(t
(setq tmsg
(format (if type-break-terse-messages
"Break has lasted %s"
"Typing break has lasted %s")
(type-break-format-time elapsed))))))
(insert lines
(make-string (/ (- (window-width) (length tmsg)) 2) ?\ )
tmsg)
(if (> (length rmsg) 0)
(insert "\n"
(make-string (/ (- (window-width) (length rmsg)) 2)
?\ )
rmsg))
(if type-break-demo-boring-stats
(let*
((message
(format
(if type-break-terse-messages
"Since last break: %s keystrokes\n"
"Since your last break you've typed %s keystrokes\n")
type-break-keystroke-count))
(column-spaces
(make-string (/ (- (window-width) (length message)) 2)
?\ ))
(wpm (/ (/ (float type-break-keystroke-count) 5)
(/ (type-break-time-difference
type-break-interval-start
type-break-time-last-break)
60.0))))
(insert "\n\n" column-spaces message)
(if type-break-terse-messages
(insert (format " %s%.2f wpm"
column-spaces
wpm))
(setq message
(format "at an average of %.2f words per minute"
wpm))
(insert
(make-string (/ (- (window-width) (length message)) 2)
?\ )
message))))
(goto-char (point-min))
(sit-for 60))
(read-event)
(type-break-catch-up-event)
(kill-buffer buffer-name))
(quit
(and (get-buffer buffer-name)
(kill-buffer buffer-name))))))