;;; time.el --- display time and load in mode line of Emacs.
-;; Copyright (C) 1985, 86, 87, 93, 94, 1996 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 86, 87, 93, 94, 96, 2000 Free Software Foundation, Inc.
;; Maintainer: FSF
:group 'mail)
+;;;###autoload
+(defcustom display-time-mode nil
+ "Toggle display of time, load level, and mail flag in mode lines.
+Setting this variable directly does not take effect;
+use either \\[customize] or the function `display-time-mode'."
+ :set (lambda (symbol value)
+ (display-time-mode (or value 0)))
+ :initialize 'custom-initialize-default
+ :type 'boolean
+ :group 'display-time
+ :require 'time
+ :version "20.3")
+
+
(defcustom display-time-mail-file nil
"*File name of mail inbox file, for indicating existence of new mail.
Non-nil and not a string means don't check for mail. nil means use
(let ((on (if (null arg)
(not display-time-timer)
(> (prefix-numeric-value arg) 0))))
+ (setq display-time-mode on)
(and display-time-timer (cancel-timer display-time-timer))
(setq display-time-timer nil)
(setq display-time-string "")
:group 'display-time)
(defcustom display-time-string-forms
- '((if (and (not display-time-format) display-time-day-and-date)
+ `((if (and (not display-time-format) display-time-day-and-date)
(format-time-string "%a %b %e " now)
"")
(format-time-string (or display-time-format
(if display-time-24hr-format "%H:%M" "%-I:%M%p"))
now)
load
- (if mail " Mail" ""))
+ (if mail ,(propertize " Mail"
+ 'help-echo "mouse-2: Read mail"
+ 'local-map (make-mode-line-mouse2-map
+ (lambda (e)
+ (interactive "e")
+ (funcall read-mail-command))))
+ ""))
"*A list of expressions governing display of the time in the mode line.
For most purposes, you can control the time format using `display-time-format'
which is a more standard interface.
(time (current-time-string now))
(load (condition-case ()
(if (zerop (car (load-average))) ""
+ ;; The load average number is myterious, so
+ ;; propvide some help.
(let ((str (format " %03d" (car (load-average)))))
- (concat (substring str 0 -2) "." (substring str -2))))
+ (propertize
+ (concat (substring str 0 -2) "." (substring str -2))
+ 'help-echo "System load average")))
(error "")))
(mail-spool-file (or display-time-mail-file
(getenv "MAIL")
(mail (and (stringp mail-spool-file)
(or (null display-time-server-down-time)
;; If have been down for 20 min, try again.
- (> (- (nth 1 (current-time))
- display-time-server-down-time)
- 1200))
+ (> (- (nth 1 now) display-time-server-down-time)
+ 1200)
+ (and (< (nth 1 now) display-time-server-down-time)
+ (> (- (nth 1 now) display-time-server-down-time)
+ -64336)))
(let ((start-time (current-time)))
(prog1
(display-time-file-nonempty-p mail-spool-file)
(and (file-exists-p file)
(< 0 (nth 7 (file-attributes (file-chase-links file))))))
+(if display-time-mode
+ (display-time-mode t))
+
(provide 'time)
;;; time.el ends here