unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Daily Diary Display in Emacs emacs24 24.4+1-5
@ 2015-10-23 16:24 Charles Curley
  2015-10-23 20:44 ` Emanuel Berg
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Charles Curley @ 2015-10-23 16:24 UTC (permalink / raw)
  To: help-gnu-emacs

I have emacs24, 24.4+1-5 on Debian 8.2 jessie. In the past (e.g. emacs
23.4+1-4 on debian 7.x, wheezy), I have had emacs re-display my diary
every day automatically. This capability does not seem to work on this
version of emacs.

Relevant portions of my .emacs (watch for wrapping):

--------------------------------------------------
;; Calendar stuff:
(if (system-is-desktop)
    (progn

      ;; ---great bit of code from Jeff Miller to highlight appointments in red on modeline---

      ;; per http://www.emacswiki.org/emacs/AppointmentMode
      (defface appt-face
        '((t (:foreground "red" :background "white")))
        "Face to indicate a current appointment."
        :group 'appt)

      (defadvice appt-disp-window (before appt-hilite-more activate)
        (when appt-mode-string
          (put-text-property 1 (- (length appt-mode-string) 1)
                             'face 'appt-face appt-mode-string)))

      (defadvice appt-check (after appt-hilite activate)
        (when appt-mode-string
          (put-text-property 1 (- (length appt-mode-string) 1)
                             'face 'appt-face appt-mode-string)
          (force-mode-line-update)))

      ;; ---------------------------------
      ;; (seq appt-display-mode-line t)    ; explicitly enable it.


      ;; set my home co-ordinates for sunrise/sunset calculations
      (setq calendar-latitude xx.x)
      (setq calendar-longitude xxx.x)
      (setq calendar-location-name "obfuscated")
      (calendar)                       ; fire up the calendar display.
      (setq show-trailing-whitespace nil)
      ;; (setq cal-tex-diary t)
      ;; (setq cal-tex-rules t)

      (progn
        (calendar-mark-holidays)
        (diary-mark-entries)
        (other-window 1) ; Now switch to the main window on this frame.
        ;; Set a vector for the number of days in advance to show
        ;; appointments. Then turn the diary mode on.
        (setq diary-number-of-entries [2 3 3 3 3 5 2])
        ;; Add the appointment generator to the diary hook.

        (if ( < emacs-major-version 24) ; emacs 23 or less
            (add-hook 'diary-hook 'appt-make-list)
          )

        ;; (add-hook 'diary-display-function 'diary-fancy-display)
        (setq diary-display-function 'diary-fancy-display)
        )

      ;; If this is non-nil, Emacs rings the terminal bell for appointment
      ;; reminders. The default is t.
      ;; (setq appt-audible nil)

      (setq appt-activate 1 ; http://www.emacswiki.org/emacs/AppointmentMode
            appt-display-duration 59)

      ;; Also from http://www.emacswiki.org/emacs/AppointmentMode
      (defun diary-save-hook ()
        "Stuff to do when saving the diary files."
        (appt-initialize))
      (defun add-diary-save-hook ()
        "find-file-hooks hook to add the diary-save-hook when appropriate"
        (if (string-match "diary" (buffer-name))
            (add-hook 'after-save-hook 'diary-save-hook)))
      (add-hook 'find-file-hooks 'add-diary-save-hook)

      (diary)
      
      )
  )
;; end calendar/diary stuff
--------------------------------------------------


-- 

The right of the people to be secure in their persons, houses, papers,
and effects, against unreasonable searches and seizures, shall not be
violated, and no Warrants shall issue, but upon probable cause,
supported by Oath or affirmation, and particularly describing the
place to be searched, and the persons or things to be seized.
-- U.S. Const. Amendment IV

Key fingerprint = CE5C 6645 A45A 64E4 94C0  809C FFF6 4C48 4ECD DFDB



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Daily Diary Display in Emacs emacs24 24.4+1-5
  2015-10-23 16:24 Daily Diary Display in Emacs emacs24 24.4+1-5 Charles Curley
@ 2015-10-23 20:44 ` Emanuel Berg
  2015-10-23 22:11   ` Charles Curley
  2015-10-24  0:28 ` John Mastro
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Emanuel Berg @ 2015-10-23 20:44 UTC (permalink / raw)
  To: help-gnu-emacs

Charles Curley <charlescurley@charlescurley.com>
writes:

> I have emacs24, 24.4+1-5 on Debian 8.2 jessie.
> In the past (e.g. emacs 23.4+1-4 on debian 7.x,
> wheezy), I have had emacs re-display my diary every
> day automatically. This capability does not seem to
> work on this version of emacs.
>
> Relevant portions of my .emacs ...

That code is very disorganized. Try to clean it up.
Consider moving it all to file of its own, e.g.,
my-calendar.el and then `load' it from .emacs.

You don't mention which part of the code doesn't work
- as for me, I don't even have a "system-is-desktop"
function, which is the first line of your code - I'm
on

    GNU Emacs 24.4.1 (x86_64-pc-linux-gnu, GTK+
    Version 3.14.5) of 2015-03-07 on trouble, modified
    by Debian

but it might be a package thing rather.

Anyway, what is it that you want to happen? You write
"I have had emacs re-display my diary every day
automatically." Literally, that sounds like you have
Emacs on 24/7 and you want it to automatically update
the diary every 24 hours. But more likely (since you
mention "desktop") you want Emacs to bring up the
diary on startup. Or? Which is it?

In general, instead relying on such wild-west code, do
what you want interactively, with M-x (and shortcuts),
then, when you get it to work, replicate what you just
did in code. It shouldn't be like several pages!
Keep configuration (settings, usually `setq') and
behavior (functions, i.e. `defun's) apart.

-- 
underground experts united
http://user.it.uu.se/~embe8573




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Daily Diary Display in Emacs emacs24 24.4+1-5
  2015-10-23 20:44 ` Emanuel Berg
@ 2015-10-23 22:11   ` Charles Curley
  2015-10-24  0:20     ` Emanuel Berg
  0 siblings, 1 reply; 9+ messages in thread
From: Charles Curley @ 2015-10-23 22:11 UTC (permalink / raw)
  To: help-gnu-emacs

On Fri, 23 Oct 2015 22:44:11 +0200
Emanuel Berg <embe8573@student.uu.se> wrote:

> Charles Curley <charlescurley@charlescurley.com>
> writes:
> 
> > I have emacs24, 24.4+1-5 on Debian 8.2 jessie.
> > In the past (e.g. emacs 23.4+1-4 on debian 7.x,
> > wheezy), I have had emacs re-display my diary every
> > day automatically. This capability does not seem to
> > work on this version of emacs.
> >
> > Relevant portions of my .emacs ...
> 
> That code is very disorganized. Try to clean it up.
> Consider moving it all to file of its own, e.g.,
> my-calendar.el and then `load' it from .emacs.

Yeah, I know it's disorganized. I've been using emacs since version
19.x, and across that many version, it just metastasizes.

> 
> You don't mention which part of the code doesn't work
> - as for me, I don't even have a "system-is-desktop"
> function, which is the first line of your code - I'm
> on

Sorry about that. "system-is-desktop" is a function local to my network
which looks at the host name, and returns t or nil depending on whether
I consider the computer a desktop machine or a server.

I don't think it's a matter of the current code not working (as far as I
know). It's a matter what used to work no longer does so. Since I have
not changed my code going from 23 to 24, that suggests the problem is
somewhere in emacs.




> 
>     GNU Emacs 24.4.1 (x86_64-pc-linux-gnu, GTK+
>     Version 3.14.5) of 2015-03-07 on trouble, modified
>     by Debian
> 
> but it might be a package thing rather.
> 
> Anyway, what is it that you want to happen? You write
> "I have had emacs re-display my diary every day
> automatically." Literally, that sounds like you have
> Emacs on 24/7 and you want it to automatically update
> the diary every 24 hours.

Exactly. I leave my desktops on 24/7 whenever I can.

> But more likely (since you
> mention "desktop") you want Emacs to bring up the
> diary on startup. Or? Which is it?
> 
> In general, instead relying on such wild-west code, do
> what you want interactively, with M-x (and shortcuts),
> then, when you get it to work, replicate what you just
> did in code. It shouldn't be like several pages!

I can get it to do what I want manually. M-x diary does it. I suspect
there's a hook in there somewhere to which I should be adding some code
which ultimately calls diary.

What I don't know is, what used to tell emacs to run diary every night?
That is what is no longer working.



-- 

The right of the people to be secure in their persons, houses, papers,
and effects, against unreasonable searches and seizures, shall not be
violated, and no Warrants shall issue, but upon probable cause,
supported by Oath or affirmation, and particularly describing the
place to be searched, and the persons or things to be seized.
-- U.S. Const. Amendment IV

Key fingerprint = CE5C 6645 A45A 64E4 94C0  809C FFF6 4C48 4ECD DFDB



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Daily Diary Display in Emacs emacs24 24.4+1-5
  2015-10-23 22:11   ` Charles Curley
@ 2015-10-24  0:20     ` Emanuel Berg
  0 siblings, 0 replies; 9+ messages in thread
From: Emanuel Berg @ 2015-10-24  0:20 UTC (permalink / raw)
  To: help-gnu-emacs

Charles Curley <charlescurley@charlescurley.com>
writes:

> Yeah, I know it's disorganized. I've been using
> emacs since version 19.x, and across that many
> version, it just metastasizes.

At least your code did ;)

> I don't think it's a matter of the current code not
> working (as far as I know). It's a matter what used
> to work no longer does so. Since I have not changed
> my code going from 23 to 24, that suggests the
> problem is somewhere in emacs.

As you know, it has been known to happen, that code
that worked in one version doesn't work in the next.
And, if it "works" in the sense it doesn't produce an
error message but seizes to produce the desired
behavior, then it sort of doesn't work, does it?
Always, the cleaner the code, the more easy to
troubleshoot whatever the scenario...

> Exactly. I leave my desktops on 24/7 whenever I can.
>
> I can get it to do what I want manually. M-x diary
> does it. I suspect there's a hook in there somewhere
> to which I should be adding some code which
> ultimately calls diary.
>
> What I don't know is, what used to tell emacs to run
> diary every night? That is what is no
> longer working.

Examine the calendar and/or diary variables,
documentation, and so on.

You can schedule it manually ~like this:

(require 'cl-lib)

(defvar my-timer)
(setq my-timer (timer-create))

(defvar *its* 0)
(setq *its* 0)

;; replace this with a diary updating function
(defun every-five ()
  (message "Five! %s"(make-string (cl-incf *its*) ?\.)))

(timer-set-function my-timer 'every-five)
(timer-set-time my-timer (current-time) 5) ; once a day = every 86400 second!
(timer-activate my-timer)
;; (cancel-timer my-timer)

-- 
underground experts united
http://user.it.uu.se/~embe8573




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Daily Diary Display in Emacs emacs24 24.4+1-5
  2015-10-23 16:24 Daily Diary Display in Emacs emacs24 24.4+1-5 Charles Curley
  2015-10-23 20:44 ` Emanuel Berg
@ 2015-10-24  0:28 ` John Mastro
  2015-10-24 15:44 ` Stephen Berman
  2015-10-24 17:48 ` Charles Curley
  3 siblings, 0 replies; 9+ messages in thread
From: John Mastro @ 2015-10-24  0:28 UTC (permalink / raw)
  To: help-gnu-emacs@gnu.org; +Cc: Charles Curley

Charles Curley <charlescurley@charlescurley.com> wrote:
> I have emacs24, 24.4+1-5 on Debian 8.2 jessie. In the past (e.g. emacs
> 23.4+1-4 on debian 7.x, wheezy), I have had emacs re-display my diary
> every day automatically. This capability does not seem to work on this
> version of emacs.

As an example, this will call the `diary' function every night at
midnight. Is this the functionality you have in mind or do you need
something more sophisticated? I didn't see anything in the code you
posted that seems to do anything on a schedule. (But note that I don't
use `diary' myself).

    (defvar my-diary-update-timer
      (run-at-time "12am" (* 60 60 24) #'diary)
      "Timer to call `diary' ever night at midnight.")
    ;; To cancel:
    ;; (cancel-timer my-diary-update-timer)

-- 
john



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Daily Diary Display in Emacs emacs24 24.4+1-5
  2015-10-23 16:24 Daily Diary Display in Emacs emacs24 24.4+1-5 Charles Curley
  2015-10-23 20:44 ` Emanuel Berg
  2015-10-24  0:28 ` John Mastro
@ 2015-10-24 15:44 ` Stephen Berman
  2015-10-24 17:48 ` Charles Curley
  3 siblings, 0 replies; 9+ messages in thread
From: Stephen Berman @ 2015-10-24 15:44 UTC (permalink / raw)
  To: Charles Curley; +Cc: help-gnu-emacs

On Fri, 23 Oct 2015 10:24:09 -0600 Charles Curley <charlescurley@charlescurley.com> wrote:

> I have emacs24, 24.4+1-5 on Debian 8.2 jessie. In the past (e.g. emacs
> 23.4+1-4 on debian 7.x, wheezy), I have had emacs re-display my diary
> every day automatically. This capability does not seem to work on this
> version of emacs.
>
> Relevant portions of my .emacs (watch for wrapping):
[...]
>       (setq appt-activate 1 ; http://www.emacswiki.org/emacs/AppointmentMode

`appt-activate' is a function, not a variable, and the above line should
be (appt-activate 1) (which is also what that Emacswiki page shows).

>       ;; Also from http://www.emacswiki.org/emacs/AppointmentMode
>       (defun diary-save-hook ()
>         "Stuff to do when saving the diary files."
>         (appt-initialize))

There is no function (or variable) `appt-initialize' in GNU Emacs;
according to the above Emacswiki page, there is such a function in
XEmacs.

Perhaps these issues are causing your problem (though I don't see how
the above code could ever have worked in GNU Emacs).

Steve Berman



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Daily Diary Display in Emacs emacs24 24.4+1-5
  2015-10-23 16:24 Daily Diary Display in Emacs emacs24 24.4+1-5 Charles Curley
                   ` (2 preceding siblings ...)
  2015-10-24 15:44 ` Stephen Berman
@ 2015-10-24 17:48 ` Charles Curley
  2015-10-26 22:44   ` Charles Curley
  3 siblings, 1 reply; 9+ messages in thread
From: Charles Curley @ 2015-10-24 17:48 UTC (permalink / raw)
  To: help-gnu-emacs

On Fri, 23 Oct 2015 10:24:09 -0600
Charles Curley <charlescurley@charlescurley.com> wrote:

> I have emacs24, 24.4+1-5 on Debian 8.2 jessie. In the past (e.g. emacs
> 23.4+1-4 on debian 7.x, wheezy), I have had emacs re-display my diary
> every day automatically. This capability does not seem to work on this
> version of emacs.

I *may* have a solution.

Bob Proulx <bob@proulx.com>'s email "Undesirable sh-mode indent"
reminded me to read the news file. Searching on appropriate keywords
produced the following:


    *** The obsolete (since Emacs 22.1) method of enabling the appt
    package by adding `appt-make-list' to `diary-hook' has been removed.
    Use `appt-activate' instead.

So the culprit in my code is here:

        (if ( < emacs-major-version 24) ; emacs 23 or less
            (add-hook 'diary-hook 'appt-make-list)
          )

I don't need the version test any more, and the proper code is:

        (add-hook 'diary-hook 'appt-activate)

I made that change yesterday and evaluated it. It appears this morning
to have worked. If it continues to work correctly, I will call it good.

There are lots of good suggestions in the replies, and I will follow
those up with changes and appropriate testing.



-- 

The right of the people to be secure in their persons, houses, papers,
and effects, against unreasonable searches and seizures, shall not be
violated, and no Warrants shall issue, but upon probable cause,
supported by Oath or affirmation, and particularly describing the
place to be searched, and the persons or things to be seized.
-- U.S. Const. Amendment IV

Key fingerprint = CE5C 6645 A45A 64E4 94C0  809C FFF6 4C48 4ECD DFDB



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Daily Diary Display in Emacs emacs24 24.4+1-5
  2015-10-24 17:48 ` Charles Curley
@ 2015-10-26 22:44   ` Charles Curley
  2015-10-27  0:11     ` Emanuel Berg
  0 siblings, 1 reply; 9+ messages in thread
From: Charles Curley @ 2015-10-26 22:44 UTC (permalink / raw)
  To: help-gnu-emacs

On Sat, 24 Oct 2015 11:48:28 -0600
Charles Curley <charlescurley@charlescurley.com> wrote:

> On Fri, 23 Oct 2015 10:24:09 -0600
> Charles Curley <charlescurley@charlescurley.com> wrote:
> 
> > I have emacs24, 24.4+1-5 on Debian 8.2 jessie. In the past (e.g.
> > emacs 23.4+1-4 on debian 7.x, wheezy), I have had emacs re-display
> > my diary every day automatically. This capability does not seem to
> > work on this version of emacs.
> 
> I *may* have a solution.

...

>         (add-hook 'diary-hook 'appt-activate)
> 
> I made that change yesterday and evaluated it. It appears this morning
> to have worked. If it continues to work correctly, I will call it
> good.

No, that is not the solution. For one thing, it toggles appt-activate
every time diary-hook is called, i.e. every time the diary is
displayed. Not what I want.

Also, it appears to do something else. You should be able to move
point in the calendar to a day other than today's date, and hit d, and
get a display in the diary starting with the date where point
is. Somehow, that code shuts that off, and every time you hit d, emacs
display a diary beginning with today's date. Also not what I want.

I now have

      (appt-activate 1) ; http://www.emacswiki.org/emacs/AppointmentMode

in my .emacs. We will see what that does.

-- 

The right of the people to be secure in their persons, houses, papers,
and effects, against unreasonable searches and seizures, shall not be
violated, and no Warrants shall issue, but upon probable cause,
supported by Oath or affirmation, and particularly describing the
place to be searched, and the persons or things to be seized.
-- U.S. Const. Amendment IV

Key fingerprint = CE5C 6645 A45A 64E4 94C0  809C FFF6 4C48 4ECD DFDB



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Daily Diary Display in Emacs emacs24 24.4+1-5
  2015-10-26 22:44   ` Charles Curley
@ 2015-10-27  0:11     ` Emanuel Berg
  0 siblings, 0 replies; 9+ messages in thread
From: Emanuel Berg @ 2015-10-27  0:11 UTC (permalink / raw)
  To: help-gnu-emacs

Charles Curley <charlescurley@charlescurley.com>
writes:

> I now have
>
>       (appt-activate 1) ;
> http://www.emacswiki.org/emacs/AppointmentMode
>
> in my .emacs. We will see what that does.

Make it work, by outworking the opposition...

-- 
underground experts united
http://user.it.uu.se/~embe8573




^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-10-27  0:11 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-23 16:24 Daily Diary Display in Emacs emacs24 24.4+1-5 Charles Curley
2015-10-23 20:44 ` Emanuel Berg
2015-10-23 22:11   ` Charles Curley
2015-10-24  0:20     ` Emanuel Berg
2015-10-24  0:28 ` John Mastro
2015-10-24 15:44 ` Stephen Berman
2015-10-24 17:48 ` Charles Curley
2015-10-26 22:44   ` Charles Curley
2015-10-27  0:11     ` Emanuel Berg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).