summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Eglen <stephen@gnu.org>1998-01-29 09:26:38 +0000
committerStephen Eglen <stephen@gnu.org>1998-01-29 09:26:38 +0000
commit2f6a45b719116d82f564866999841eb8d8ec838c (patch)
tree886c8b135de4682964c916edbae07cd39bd705d7
parent0553b7d6b16dbd60c34ba25d817c5940450bf465 (diff)
downloademacs-2f6a45b719116d82f564866999841eb8d8ec838c.tar.gz
(type-break-mode): New customize variable to automatically load the package.
Other variables customized.
-rw-r--r--lisp/type-break.el86
1 files changed, 62 insertions, 24 deletions
diff --git a/lisp/type-break.el b/lisp/type-break.el
index 1ff6e949ddb..a367b0539a8 100644
--- a/lisp/type-break.el
+++ b/lisp/type-break.el
@@ -8,7 +8,7 @@
;; Status: Works in GNU Emacs 19.25 or later, some versions of XEmacs
;; Created: 1994-07-13
-;; $Id$
+;; $Id: type-break.el,v 1.12 1997/06/23 05:28:51 friedman Exp stephen $
;; This file is part of GNU Emacs.
@@ -69,17 +69,31 @@
;;; Code:
+(defgroup type-break nil
+ "Encourage the user to take a rest from typing at suitable intervals."
+ :prefix "type-break"
+ :group 'keyboard)
+
;;;###autoload
-(defvar type-break-mode nil
+(defcustom type-break-mode nil
"*Non-`nil' means typing break mode is enabled.
-See the docstring for the `type-break-mode' command for more information.")
+See the docstring for the `type-break-mode' command for more information.
+You must modify via \\[customize] for this variable to have an effect."
+ :set (lambda (symbol value)
+ (type-break-mode (if value 1 -1)))
+ :initialize 'custom-initialize-default
+ :type 'boolean
+ :group 'type-break
+ :require 'type-break)
;;;###autoload
-(defvar type-break-interval (* 60 60)
- "*Number of seconds between scheduled typing breaks.")
+(defcustom type-break-interval (* 60 60)
+ "*Number of seconds between scheduled typing breaks."
+ :type 'integer
+ :group 'type-break)
;;;###autoload
-(defvar type-break-good-rest-interval (/ type-break-interval 6)
+(defcustom type-break-good-rest-interval (/ type-break-interval 6)
"*Number of seconds of idle time considered to be an adequate typing rest.
When this variable is non-`nil', emacs checks the idle time between
@@ -87,10 +101,12 @@ keystrokes. If this idle time is long enough to be considered a \"good\"
rest from typing, then the next typing break is simply rescheduled for later.
If a break is interrupted before this much time elapses, the user will be
-asked whether or not really to interrupt the break.")
+asked whether or not really to interrupt the break."
+ :type 'integer
+ :group 'type-break)
;;;###autoload
-(defvar type-break-keystroke-threshold
+(defcustom type-break-keystroke-threshold
;; Assuming typing speed is 35wpm (on the average, do you really
;; type more than that in a minute? I spend a lot of time reading mail
;; and simply studying code in buffers) and average word length is
@@ -105,7 +121,7 @@ asked whether or not really to interrupt the break.")
(lower (/ upper 5)))
(cons lower upper))
"*Upper and lower bound on number of keystrokes for considering typing break.
-This structure is a pair of numbers.
+This structure is a pair of numbers (MIN . MAX).
The first number is the minimum number of keystrokes that must have been
entered since the last typing break before considering another one, even if
@@ -123,12 +139,16 @@ Keys with bucky bits (shift, control, meta, etc) are counted as only one
keystroke even though they really require multiple keys to generate them.
The command `type-break-guesstimate-keystroke-threshold' can be used to
-guess a reasonably good pair of values for this variable.")
+guess a reasonably good pair of values for this variable."
+ :type 'sexp
+ :group 'type-break)
-(defvar type-break-query-mode t
+(defcustom type-break-query-mode t
"*Non-`nil' means ask whether or not to prompt user for breaks.
If so, call the function specified in the value of the variable
-`type-break-query-function' to do the asking.")
+`type-break-query-function' to do the asking."
+ :type 'boolean
+ :group 'type-break)
(defvar type-break-query-function 'yes-or-no-p
"Function to use for making query for a typing break.
@@ -137,36 +157,47 @@ Usually this should be set to `yes-or-no-p' or `y-or-n-p'.
To avoid being queried at all, set `type-break-query-mode' to `nil'.")
-(defvar type-break-query-interval 60
+(defcustom type-break-query-interval 60
"*Number of seconds between queries to take a break, if put off.
The user will continue to be prompted at this interval until he or she
-finally submits to taking a typing break.")
+finally submits to taking a typing break."
+ :type 'integer
+ :group 'type-break)
-(defvar type-break-time-warning-intervals '(300 120 60 30)
+(defcustom type-break-time-warning-intervals '(300 120 60 30)
"*List of time intervals for warnings about upcoming typing break.
At each of the intervals (specified in seconds) away from a scheduled
-typing break, print a warning in the echo area.")
+typing break, print a warning in the echo area."
+ :type '(repeat integer)
+ :group 'type-break)
-(defvar type-break-keystroke-warning-intervals '(300 200 100 50)
+(defcustom type-break-keystroke-warning-intervals '(300 200 100 50)
"*List of keystroke measurements for warnings about upcoming typing break.
At each of the intervals (specified in keystrokes) away from the upper
keystroke threshold, print a warning in the echo area.
If either this variable or the upper threshold is set, then no warnings
-Will occur.")
+will occur."
+ :type '(repeat integer)
+ :group 'type-break)
+
-(defvar type-break-warning-repeat 40
+(defcustom type-break-warning-repeat 40
"*Number of keystrokes for which warnings should be repeated.
That is, for each of this many keystrokes the warning is redisplayed
-in the echo area to make sure it's really seen.")
+in the echo area to make sure it's really seen."
+ :type 'integer
+ :group 'type-break)
-(defvar type-break-demo-functions
+(defcustom type-break-demo-functions
'(type-break-demo-boring type-break-demo-life type-break-demo-hanoi)
"*List of functions to consider running as demos during typing breaks.
When a typing break begins, one of these functions is selected randomly
to have emacs do something interesting.
Any function in this list should start a demo which ceases as soon as a
-key is pressed.")
+key is pressed."
+ :type '(repeat function)
+ :group 'type-break)
(defvar type-break-post-command-hook '(type-break-check)
"Hook run indirectly by post-command-hook for typing break functions.
@@ -180,11 +211,13 @@ remove themselves after running.")
;; Mode line frobs
-(defvar type-break-mode-line-message-mode nil
+(defcustom type-break-mode-line-message-mode nil
"*Non-`nil' means put type-break related messages in the mode line.
Otherwise, messages typically go in the echo area.
-See also `type-break-mode-line-format' and its members.")
+See also `type-break-mode-line-format' and its members."
+ :type 'boolean
+ :group 'type-break)
(defvar type-break-mode-line-format
'(type-break-mode-line-message-mode
@@ -247,6 +280,7 @@ It will be either \"seconds\" or \"keystrokes\".")
("\\bLucid\\b" . lucid)
("^Nemacs\\b" . nemacs)
("^GNU Emacs 19" . standard19)
+ ("^GNU Emacs 20" . standard19)
("^GNU Emacs 18" . emacs18)))
result)
(while alist
@@ -559,6 +593,8 @@ keystroke threshold has been exceeded."
(setq type-break-time-last-command (current-time))))
(and type-break-keystroke-threshold
+ ;; next line is test for 20.2 that can be deleted
+ ;;(setq type-break-keystroke-count (1+ type-break-keystroke-count))
(let ((keys (this-command-keys)))
(cond
;; Ignore mouse motion
@@ -1023,4 +1059,6 @@ With optional non-nil ALL, force redisplay of all mode-lines."
(provide 'type-break)
+(if type-break-mode
+ (type-break-mode 1))
;;; type-break.el ends here