mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-01 09:51:22 -08:00
(display-time-mode): Set display-time-load-average here.
(display-time-load-average): Initialize to nil. (display-time-default-load-average): Add "None" alternative. (display-time-update): Handle "None" alternative for load-average.
This commit is contained in:
parent
63e489f595
commit
fe6456af41
1 changed files with 48 additions and 43 deletions
91
lisp/time.el
91
lisp/time.el
|
|
@ -39,7 +39,7 @@
|
||||||
"*File name of mail inbox file, for indicating existence of new mail.
|
"*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
|
Non-nil and not a string means don't check for mail. nil means use
|
||||||
default, which is system-dependent, and is the same as used by Rmail."
|
default, which is system-dependent, and is the same as used by Rmail."
|
||||||
:type '(choice (const :tag "(None)" none)
|
:type '(choice (const :tag "None" none)
|
||||||
(const :tag "Default" nil)
|
(const :tag "Default" nil)
|
||||||
(file :format "%v"))
|
(file :format "%v"))
|
||||||
:group 'display-time)
|
:group 'display-time)
|
||||||
|
|
@ -67,10 +67,12 @@ Almost every system can provide values of load for past 1 minute, past 5 or
|
||||||
past 15 minutes. The default is to display 1 minute load average."
|
past 15 minutes. The default is to display 1 minute load average."
|
||||||
:type '(choice (const :tag "1 minute load" 0)
|
:type '(choice (const :tag "1 minute load" 0)
|
||||||
(const :tag "5 minutes load" 1)
|
(const :tag "5 minutes load" 1)
|
||||||
(const :tag "15 minutes load" 2))
|
(const :tag "15 minutes load" 2)
|
||||||
|
(const :tag "None" nil))
|
||||||
:group 'display-time)
|
:group 'display-time)
|
||||||
|
|
||||||
(defvar display-time-load-average display-time-default-load-average)
|
(defvar display-time-load-average nil
|
||||||
|
"Load average currently being shown in mode line")
|
||||||
|
|
||||||
(defcustom display-time-load-average-threshold 0.1
|
(defcustom display-time-load-average-threshold 0.1
|
||||||
"*Load-average values below this value won't be shown in the mode line."
|
"*Load-average values below this value won't be shown in the mode line."
|
||||||
|
|
@ -245,26 +247,28 @@ would give mode line times like `94/12/30 21:07:48 (UTC)'."
|
||||||
(defun display-time-update ()
|
(defun display-time-update ()
|
||||||
(let* ((now (current-time))
|
(let* ((now (current-time))
|
||||||
(time (current-time-string now))
|
(time (current-time-string now))
|
||||||
(load (condition-case ()
|
(load (if (null display-time-load-average)
|
||||||
;; Do not show values less than
|
""
|
||||||
;; `display-time-load-average-threshold'.
|
(condition-case ()
|
||||||
(if (> (* display-time-load-average-threshold 100)
|
;; Do not show values less than
|
||||||
(nth display-time-load-average (load-average)))
|
;; `display-time-load-average-threshold'.
|
||||||
""
|
(if (> (* display-time-load-average-threshold 100)
|
||||||
;; The load average number is mysterious, so
|
(nth display-time-load-average (load-average)))
|
||||||
;; provide some help.
|
""
|
||||||
(let ((str (format " %03d" (nth display-time-load-average (load-average)))))
|
;; The load average number is mysterious, so
|
||||||
(propertize
|
;; provide some help.
|
||||||
(concat (substring str 0 -2) "." (substring str -2))
|
(let ((str (format " %03d" (nth display-time-load-average (load-average)))))
|
||||||
'local-map (make-mode-line-mouse-map 'mouse-2
|
(propertize
|
||||||
'display-time-next-load-average)
|
(concat (substring str 0 -2) "." (substring str -2))
|
||||||
'help-echo (concat "System load average for past "
|
'local-map (make-mode-line-mouse-map 'mouse-2
|
||||||
(if (= 0 display-time-load-average)
|
'display-time-next-load-average)
|
||||||
"1 minute"
|
'help-echo (concat "System load average for past "
|
||||||
(if (= 1 display-time-load-average)
|
(if (= 0 display-time-load-average)
|
||||||
"5 minutes"
|
"1 minute"
|
||||||
"15 minutes")) "; mouse-2: next" ))))
|
(if (= 1 display-time-load-average)
|
||||||
(error "")))
|
"5 minutes"
|
||||||
|
"15 minutes")) "; mouse-2: next" ))))
|
||||||
|
(error ""))))
|
||||||
(mail-spool-file (or display-time-mail-file
|
(mail-spool-file (or display-time-mail-file
|
||||||
(getenv "MAIL")
|
(getenv "MAIL")
|
||||||
(concat rmail-spool-directory
|
(concat rmail-spool-directory
|
||||||
|
|
@ -330,26 +334,27 @@ If `display-time-day-and-date' is non-nil, the current day and date
|
||||||
are displayed as well.
|
are displayed as well.
|
||||||
This runs the normal hook `display-time-hook' after each update."
|
This runs the normal hook `display-time-hook' after each update."
|
||||||
:global t :group 'display-time
|
:global t :group 'display-time
|
||||||
(and display-time-timer (cancel-timer display-time-timer))
|
(and display-time-timer (cancel-timer display-time-timer))
|
||||||
(setq display-time-timer nil)
|
(setq display-time-timer nil)
|
||||||
(setq display-time-string "")
|
(setq display-time-string "")
|
||||||
(or global-mode-string (setq global-mode-string '("")))
|
(or global-mode-string (setq global-mode-string '("")))
|
||||||
(if display-time-mode
|
(setq display-time-load-average display-time-default-load-average)
|
||||||
(progn
|
(if display-time-mode
|
||||||
(or (memq 'display-time-string global-mode-string)
|
(progn
|
||||||
(setq global-mode-string
|
(or (memq 'display-time-string global-mode-string)
|
||||||
(append global-mode-string '(display-time-string))))
|
(setq global-mode-string
|
||||||
;; Set up the time timer.
|
(append global-mode-string '(display-time-string))))
|
||||||
(setq display-time-timer
|
;; Set up the time timer.
|
||||||
(run-at-time t display-time-interval
|
(setq display-time-timer
|
||||||
'display-time-event-handler))
|
(run-at-time t display-time-interval
|
||||||
;; Make the time appear right away.
|
'display-time-event-handler))
|
||||||
(display-time-update)
|
;; Make the time appear right away.
|
||||||
;; When you get new mail, clear "Mail" from the mode line.
|
(display-time-update)
|
||||||
(add-hook 'rmail-after-get-new-mail-hook
|
;; When you get new mail, clear "Mail" from the mode line.
|
||||||
'display-time-event-handler))
|
(add-hook 'rmail-after-get-new-mail-hook
|
||||||
(remove-hook 'rmail-after-get-new-mail-hook
|
'display-time-event-handler))
|
||||||
'display-time-event-handler)))
|
(remove-hook 'rmail-after-get-new-mail-hook
|
||||||
|
'display-time-event-handler)))
|
||||||
|
|
||||||
(provide 'time)
|
(provide 'time)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue