Mercurial > emacs
annotate lisp/time.el @ 51242:661e2fe7e775
(autoconf-mode setups): Recognise AH_ and AU_ entries in "(autoconf)Autoconf
Macro Index". Add "(autoconf)M4 Macro Index" and "(autoconf)Autotest Macro
Index". Remove duplicate copy of "(automake)Macro and Variable Index". Keep
automake after all autoconf possibilities, so as to prefer those.
author | Juanma Barranquero <lekktu@gmail.com> |
---|---|
date | Sun, 25 May 2003 21:03:57 +0000 |
parents | 5dd79184bc3a |
children | 695cf19ef79e |
rev | line source |
---|---|
50395 | 1 ;;; time.el --- display time, load and mail indicator in mode line of Emacs -*-coding: utf-8 -*- |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
2 |
50395 | 3 ;; Copyright (C) 1985, 86, 87, 93, 94, 96, 2000, 2001, 2002, 2003 |
37364
5082f7c31b0e
Remove a stray carriage return character.
Gerd Moellmann <gerd@gnu.org>
parents:
33197
diff
changeset
|
4 ;; Free Software Foundation, Inc. |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
5 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
6 ;; Maintainer: FSF |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
7 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
8 ;; This file is part of GNU Emacs. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
9 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
10 ;; GNU Emacs is free software; you can redistribute it and/or modify |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
11 ;; it under the terms of the GNU General Public License as published by |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
12 ;; the Free Software Foundation; either version 2, or (at your option) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
13 ;; any later version. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
14 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
15 ;; GNU Emacs is distributed in the hope that it will be useful, |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
18 ;; GNU General Public License for more details. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
19 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
20 ;; You should have received a copy of the GNU General Public License |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
23 ;; Boston, MA 02111-1307, USA. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
24 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
25 ;;; Commentary: |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
26 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
27 ;; Facilities to display current time/date and a new-mail indicator |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
28 ;; in the Emacs mode line. The single entry point is `display-time'. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
29 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
30 ;;; Code: |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
31 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
32 (defgroup display-time nil |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
33 "Display time and load in mode line of Emacs." |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
34 :group 'modeline |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
35 :group 'mail) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
36 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
37 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
38 (defcustom display-time-mail-file nil |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
39 "*File name of mail inbox file, for indicating existence of new mail. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
40 Non-nil and not a string means don't check for mail. nil means use |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
41 default, which is system-dependent, and is the same as used by Rmail." |
47486
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
42 :type '(choice (const :tag "None" none) |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
43 (const :tag "Default" nil) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
44 (file :format "%v")) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
45 :group 'display-time) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
46 |
42998
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
47 (defcustom display-time-mail-directory nil |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
48 "*Name of mail inbox directory, for indicating existence of new mail. |
45041
cbfb6a5db0be
(display-time-mail-directory, display-time-mail-function): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
42998
diff
changeset
|
49 Any nonempty regular file in the directory is regarded as newly arrived mail. |
cbfb6a5db0be
(display-time-mail-directory, display-time-mail-function): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
42998
diff
changeset
|
50 If nil, do not check a directory for arriving mail." |
42998
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
51 :type '(choice (const :tag "None" nil) |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
52 (directory :format "%v")) |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
53 :group 'display-time) |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
54 |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
55 (defcustom display-time-mail-function nil |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
56 "*Function to call, for indicating existence of new mail. |
45041
cbfb6a5db0be
(display-time-mail-directory, display-time-mail-function): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
42998
diff
changeset
|
57 If nil, that means use the default method: check that the file |
cbfb6a5db0be
(display-time-mail-directory, display-time-mail-function): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
42998
diff
changeset
|
58 specified by `display-time-mail-file' is nonempty or that the |
cbfb6a5db0be
(display-time-mail-directory, display-time-mail-function): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
42998
diff
changeset
|
59 directory `display-time-mail-directory' contains nonempty files." |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
60 :type '(choice (const :tag "Default" nil) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
61 (function)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
62 :group 'display-time) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
63 |
42261
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
64 (defcustom display-time-default-load-average 0 |
50395 | 65 "*Which load average value will be shown in the mode line. |
42261
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
66 Almost every system can provide values of load for past 1 minute, past 5 or |
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
67 past 15 minutes. The default is to display 1 minute load average." |
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
68 :type '(choice (const :tag "1 minute load" 0) |
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
69 (const :tag "5 minutes load" 1) |
47486
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
70 (const :tag "15 minutes load" 2) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
71 (const :tag "None" nil)) |
42261
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
72 :group 'display-time) |
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
73 |
47486
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
74 (defvar display-time-load-average nil |
50395 | 75 "Load average currently being shown in mode line.") |
42261
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
76 |
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
77 (defcustom display-time-load-average-threshold 0.1 |
42494
35eeafd85667
(display-time-load-average-threshold): Fix defcustom (add type and group).
Pavel Janík <Pavel@Janik.cz>
parents:
42261
diff
changeset
|
78 "*Load-average values below this value won't be shown in the mode line." |
35eeafd85667
(display-time-load-average-threshold): Fix defcustom (add type and group).
Pavel Janík <Pavel@Janik.cz>
parents:
42261
diff
changeset
|
79 :type 'number |
35eeafd85667
(display-time-load-average-threshold): Fix defcustom (add type and group).
Pavel Janík <Pavel@Janik.cz>
parents:
42261
diff
changeset
|
80 :group 'display-time) |
42261
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
81 |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
82 ;;;###autoload |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
83 (defcustom display-time-day-and-date nil "\ |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
84 *Non-nil means \\[display-time] should display day and date as well as time." |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
85 :type 'boolean |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
86 :group 'display-time) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
87 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
88 (defvar display-time-timer nil) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
89 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
90 (defcustom display-time-interval 60 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
91 "*Seconds between updates of time in the mode line." |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
92 :type 'integer |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
93 :group 'display-time) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
94 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
95 (defcustom display-time-24hr-format nil |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
96 "*Non-nil indicates time should be displayed as hh:mm, 0 <= hh <= 23. |
42261
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
97 nil means 1 <= hh <= 12, and an AM/PM suffix is used." |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
98 :type 'boolean |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
99 :group 'display-time) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
100 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
101 (defvar display-time-string nil) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
102 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
103 (defcustom display-time-hook nil |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
104 "*List of functions to be called when the time is updated on the mode line." |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
105 :type 'hook |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
106 :group 'display-time) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
107 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
108 (defvar display-time-server-down-time nil |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
109 "Time when mail file's file system was recorded to be down. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
110 If that file system seems to be up, the value is nil.") |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
111 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
112 ;;;###autoload |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
113 (defun display-time () |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
114 "Enable display of time, load level, and mail flag in mode lines. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
115 This display updates automatically every minute. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
116 If `display-time-day-and-date' is non-nil, the current day and date |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
117 are displayed as well. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
118 This runs the normal hook `display-time-hook' after each update." |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
119 (interactive) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
120 (display-time-mode 1)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
121 |
50395 | 122 ;; This business used to be simpler when all mode lines had the same |
123 ;; face and the image could just be pbm. Now we try to rely on an xpm | |
124 ;; image with a transparent background. Otherwise, set the background | |
125 ;; for pbm. | |
126 | |
127 (defcustom display-time-mail-face nil | |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
128 "Face to use for `display-time-mail-string'. |
50395 | 129 If `display-time-use-mail-icon' is non-nil, the image's |
130 background colour is the background of this face. Set this to | |
131 make the mail indicator stand out on a colour display." | |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
132 :group 'faces |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
133 :group 'display-time |
50395 | 134 :version "21.4" |
135 :type '(choice (const :tag "None" nil) face)) | |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
136 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
137 (defvar display-time-mail-icon |
42998
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
138 (find-image '((:type xpm :file "letter.xpm" :ascent center) |
50395 | 139 (:type pbm :file "letter.pbm" :ascent center))) |
140 "Image specification to offer as the mail indicator on a graphic display. | |
141 See `display-time-use-mail-icon' and `display-time-mail-face'.") | |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
142 |
50395 | 143 ;; Fixme: Default to icon on graphical display? |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
144 (defcustom display-time-use-mail-icon nil |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
145 "Non-nil means use an icon as the mail indicator on a graphic display. |
50395 | 146 Otherwise use `display-time-mail-string'. The icon may consume less |
147 of the mode line. It is specified by `display-time-mail-icon'." | |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
148 :group 'display-time |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
149 :type 'boolean) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
150 |
50395 | 151 ;; Fixme: maybe default to the character if we can display Unicode. |
152 (defcustom display-time-mail-string "Mail" | |
153 "String to use as the mail indicator in `display-time-string-forms'. | |
154 This can use the Unicode letter character if you can display it." | |
155 :group 'display-time | |
156 :version "21.4" | |
157 :type '(choice (const "Mail") | |
158 ;; Use :tag here because the Lucid menu won't display | |
159 ;; multibyte text. | |
160 (const :tag "Unicode letter character" "✉") | |
161 string)) | |
162 | |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
163 (defcustom display-time-format nil |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
164 "*A string specifying the format for displaying the time in the mode line. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
165 See the function `format-time-string' for an explanation of |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
166 how to write this string. If this is nil, the defaults |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
167 depend on `display-time-day-and-date' and `display-time-24hr-format'." |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
168 :type '(choice (const :tag "Default" nil) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
169 string) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
170 :group 'display-time) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
171 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
172 (defcustom display-time-string-forms |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
173 '((if (and (not display-time-format) display-time-day-and-date) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
174 (format-time-string "%a %b %e " now) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
175 "") |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
176 (format-time-string (or display-time-format |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
177 (if display-time-24hr-format "%H:%M" "%-I:%M%p")) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
178 now) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
179 load |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
180 (if mail |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
181 ;; Build the string every time to act on customization. |
50395 | 182 ;; :set-after doesn't help for `customize-option'. I think it |
183 ;; should. | |
184 (concat | |
185 " " | |
186 (propertize | |
187 display-time-mail-string | |
188 'display `(when (and display-time-use-mail-icon | |
189 (display-graphic-p)) | |
190 ,@display-time-mail-icon | |
191 ,@(if (and display-time-mail-face | |
192 (memq (plist-get (cdr display-time-mail-icon) | |
193 :type) | |
194 '(pbm xbm))) | |
195 (let ((bg (face-attribute display-time-mail-face | |
196 :background))) | |
197 (if (stringp bg) | |
198 (list :background bg))))) | |
199 'face display-time-mail-face | |
200 'help-echo "You have new mail; mouse-2: Read mail" | |
201 'local-map (make-mode-line-mouse-map 'mouse-2 | |
202 read-mail-command))) | |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
203 "")) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
204 "*A list of expressions governing display of the time in the mode line. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
205 For most purposes, you can control the time format using `display-time-format' |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
206 which is a more standard interface. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
207 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
208 This expression is a list of expressions that can involve the keywords |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
209 `load', `day', `month', and `year', `12-hours', `24-hours', `minutes', |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
210 `seconds', all numbers in string form, and `monthname', `dayname', `am-pm', |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
211 and `time-zone' all alphabetic strings, and `mail' a true/nil value. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
212 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
213 For example, the form |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
214 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
215 '((substring year -2) \"/\" month \"/\" day |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
216 \" \" 24-hours \":\" minutes \":\" seconds |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
217 (if time-zone \" (\") time-zone (if time-zone \")\") |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
218 (if mail \" Mail\" \"\")) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
219 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
220 would give mode line times like `94/12/30 21:07:48 (UTC)'." |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
221 :type 'sexp |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
222 :group 'display-time) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
223 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
224 (defun display-time-event-handler () |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
225 (display-time-update) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
226 ;; Do redisplay right now, if no input pending. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
227 (sit-for 0) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
228 (let* ((current (current-time)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
229 (timer display-time-timer) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
230 ;; Compute the time when this timer will run again, next. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
231 (next-time (timer-relative-time |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
232 (list (aref timer 1) (aref timer 2) (aref timer 3)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
233 (* 5 (aref timer 4)) 0))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
234 ;; If the activation time is far in the past, |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
235 ;; skip executions until we reach a time in the future. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
236 ;; This avoids a long pause if Emacs has been suspended for hours. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
237 (or (> (nth 0 next-time) (nth 0 current)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
238 (and (= (nth 0 next-time) (nth 0 current)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
239 (> (nth 1 next-time) (nth 1 current))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
240 (and (= (nth 0 next-time) (nth 0 current)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
241 (= (nth 1 next-time) (nth 1 current)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
242 (> (nth 2 next-time) (nth 2 current))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
243 (progn |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
244 (timer-set-time timer (timer-next-integral-multiple-of-time |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
245 current display-time-interval) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
246 display-time-interval) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
247 (timer-activate timer))))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
248 |
42261
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
249 (defun display-time-next-load-average () |
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
250 (interactive) |
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
251 (if (= 3 (setq display-time-load-average (1+ display-time-load-average))) |
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
252 (setq display-time-load-average 0)) |
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
253 (display-time-update) |
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
254 (sit-for 0)) |
4f42109edd02
(display-time-load-average-threshold): New variable.
Pavel Janík <Pavel@Janik.cz>
parents:
38759
diff
changeset
|
255 |
42998
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
256 (defun display-time-mail-check-directory () |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
257 (let ((mail-files (directory-files display-time-mail-directory t)) |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
258 (size 0)) |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
259 (while (and mail-files (= size 0)) |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
260 ;; Count size of regular files only. |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
261 (setq size (+ size (or (and (file-regular-p (car mail-files)) |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
262 (nth 7 (file-attributes (car mail-files)))) |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
263 0))) |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
264 (setq mail-files (cdr mail-files))) |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
265 (if (> size 0) |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
266 size |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
267 nil))) |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
268 |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
269 (defun display-time-update () |
50395 | 270 "Update the display-time info for the mode line. |
271 However, don't redisplay right now. | |
272 | |
273 This is used for things like Rmail `g' that want to force an | |
274 update which can wait for the next redisplay." | |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
275 (let* ((now (current-time)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
276 (time (current-time-string now)) |
47486
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
277 (load (if (null display-time-load-average) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
278 "" |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
279 (condition-case () |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
280 ;; Do not show values less than |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
281 ;; `display-time-load-average-threshold'. |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
282 (if (> (* display-time-load-average-threshold 100) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
283 (nth display-time-load-average (load-average))) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
284 "" |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
285 ;; The load average number is mysterious, so |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
286 ;; provide some help. |
50395 | 287 (let ((str (format " %03d" |
288 (nth display-time-load-average | |
289 (load-average))))) | |
47486
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
290 (propertize |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
291 (concat (substring str 0 -2) "." (substring str -2)) |
50395 | 292 'local-map (make-mode-line-mouse-map |
293 'mouse-2 'display-time-next-load-average) | |
294 'help-echo (concat | |
295 "System load average for past " | |
296 (if (= 0 display-time-load-average) | |
297 "1 minute" | |
298 (if (= 1 display-time-load-average) | |
299 "5 minutes" | |
300 "15 minutes")) | |
301 "; mouse-2: next")))) | |
47486
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
302 (error "")))) |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
303 (mail-spool-file (or display-time-mail-file |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
304 (getenv "MAIL") |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
305 (concat rmail-spool-directory |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
306 (user-login-name)))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
307 (mail (or (and display-time-mail-function |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
308 (funcall display-time-mail-function)) |
42998
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
309 (and display-time-mail-directory |
144c91651228
(display-time-mail-directory): New option.
Pavel Janík <Pavel@Janik.cz>
parents:
42838
diff
changeset
|
310 (display-time-mail-check-directory)) |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
311 (and (stringp mail-spool-file) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
312 (or (null display-time-server-down-time) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
313 ;; If have been down for 20 min, try again. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
314 (> (- (nth 1 now) display-time-server-down-time) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
315 1200) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
316 (and (< (nth 1 now) display-time-server-down-time) |
50395 | 317 (> (- (nth 1 now) |
318 display-time-server-down-time) | |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
319 -64336))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
320 (let ((start-time (current-time))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
321 (prog1 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
322 (display-time-file-nonempty-p mail-spool-file) |
50395 | 323 (if (> (- (nth 1 (current-time)) |
324 (nth 1 start-time)) | |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
325 20) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
326 ;; Record that mail file is not accessible. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
327 (setq display-time-server-down-time |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
328 (nth 1 (current-time))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
329 ;; Record that mail file is accessible. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
330 (setq display-time-server-down-time nil))))))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
331 (24-hours (substring time 11 13)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
332 (hour (string-to-int 24-hours)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
333 (12-hours (int-to-string (1+ (% (+ hour 11) 12)))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
334 (am-pm (if (>= hour 12) "pm" "am")) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
335 (minutes (substring time 14 16)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
336 (seconds (substring time 17 19)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
337 (time-zone (car (cdr (current-time-zone now)))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
338 (day (substring time 8 10)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
339 (year (substring time 20 24)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
340 (monthname (substring time 4 7)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
341 (month |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
342 (cdr |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
343 (assoc |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
344 monthname |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
345 '(("Jan" . "1") ("Feb" . "2") ("Mar" . "3") ("Apr" . "4") |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
346 ("May" . "5") ("Jun" . "6") ("Jul" . "7") ("Aug" . "8") |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
347 ("Sep" . "9") ("Oct" . "10") ("Nov" . "11") ("Dec" . "12"))))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
348 (dayname (substring time 0 3))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
349 (setq display-time-string |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
350 (mapconcat 'eval display-time-string-forms "")) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
351 ;; This is inside the let binding, but we are not going to document |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
352 ;; what variables are available. |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
353 (run-hooks 'display-time-hook)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
354 (force-mode-line-update)) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
355 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
356 (defun display-time-file-nonempty-p (file) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
357 (and (file-exists-p file) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
358 (< 0 (nth 7 (file-attributes (file-chase-links file)))))) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
359 |
31980
ceb42baae241
(display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29706
diff
changeset
|
360 ;;;###autoload |
ceb42baae241
(display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29706
diff
changeset
|
361 (define-minor-mode display-time-mode |
ceb42baae241
(display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29706
diff
changeset
|
362 "Toggle display of time, load level, and mail flag in mode lines. |
ceb42baae241
(display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29706
diff
changeset
|
363 With a numeric arg, enable this display if arg is positive. |
ceb42baae241
(display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29706
diff
changeset
|
364 |
ceb42baae241
(display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29706
diff
changeset
|
365 When this display is enabled, it updates automatically every minute. |
ceb42baae241
(display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29706
diff
changeset
|
366 If `display-time-day-and-date' is non-nil, the current day and date |
ceb42baae241
(display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29706
diff
changeset
|
367 are displayed as well. |
ceb42baae241
(display-time-mode): Use define-minor-mode.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29706
diff
changeset
|
368 This runs the normal hook `display-time-hook' after each update." |
33197
5ddf69eeb2bb
(display-time-mode): Drop unneeded positional args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
31980
diff
changeset
|
369 :global t :group 'display-time |
47486
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
370 (and display-time-timer (cancel-timer display-time-timer)) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
371 (setq display-time-timer nil) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
372 (setq display-time-string "") |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
373 (or global-mode-string (setq global-mode-string '(""))) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
374 (setq display-time-load-average display-time-default-load-average) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
375 (if display-time-mode |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
376 (progn |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
377 (or (memq 'display-time-string global-mode-string) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
378 (setq global-mode-string |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
379 (append global-mode-string '(display-time-string)))) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
380 ;; Set up the time timer. |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
381 (setq display-time-timer |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
382 (run-at-time t display-time-interval |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
383 'display-time-event-handler)) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
384 ;; Make the time appear right away. |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
385 (display-time-update) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
386 ;; When you get new mail, clear "Mail" from the mode line. |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
387 (add-hook 'rmail-after-get-new-mail-hook |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
388 'display-time-event-handler)) |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
389 (remove-hook 'rmail-after-get-new-mail-hook |
19084a962da7
(display-time-mode): Set display-time-load-average here.
Richard M. Stallman <rms@gnu.org>
parents:
45041
diff
changeset
|
390 'display-time-event-handler))) |
29706
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
391 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
392 (provide 'time) |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
393 |
1030e638c8dd
Remove trailing ^M that prevent CVS-merging.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
29693
diff
changeset
|
394 ;;; time.el ends here |