Hi Bastien, I'm using your function for creating appointments: ,----[ my-org-agenda-to-appt in .emacs ] | ;; Make appt aware of appointments from the agenda | (defun my-org-agenda-to-appt (&optional filter) | "Activate appointments found in `org-agenda-files'. | When prefixed, prompt for a regular expression and use it as a | filter: only add entries if they match this regular expression. | | FILTER can be a string. In this case, use this string as a | regular expression to filter results. | | FILTER can also be an alist, with the car of each cell being | either 'headline or 'category. For example: | | '((headline \"IMPORTANT\") | (category \"Work\")) | | will only add headlines containing IMPORTANT or headlines | belonging to the category \"Work\"." | (interactive "P") | (require 'org) | (require 'calendar) | (if (equal filter '(4)) | (setq filter (read-from-minibuffer "Regexp filter: "))) | (let* ((cnt 0) ; count added events | (today (org-date-to-gregorian | (time-to-days (current-time)))) | (files org-agenda-files) entries file) | ;; Get all entries which may contain an appt | (while (setq file (pop files)) | (setq entries | (append entries | (org-agenda-get-day-entries | file today | :timestamp :scheduled :deadline)))) | (setq entries (delq nil entries)) | ;; Map thru entries and find if they pass thru the filter | (mapc | (lambda(x) | (let* ((evt (org-trim (get-text-property 1 'txt x))) | (cat (get-text-property 1 'org-category x)) | (tod (get-text-property 1 'time-of-day x)) | (ok (or (null filter) | (and (stringp filter) (string-match filter evt)) | (and (listp filter) | (or (string-match | (cadr (assoc 'category filter)) cat) | (string-match | (cadr (assoc 'headline filter)) evt)))))) | ;; FIXME Shall we remove text-properties for the appt text? | ;; (setq evt (set-text-properties 0 (length evt) nil evt)) | (when (and ok tod) | (setq tod (number-to-string tod) | tod (when (string-match | "\\([0-9]\\{1,2\\}\\)\\([0-9]\\{2\\}\\)" tod) | (concat (match-string 1 tod) ":" | (match-string 2 tod)))) | (appt-add tod evt) | (setq cnt (1+ cnt))))) entries) | (message "Added %d event%s for today" cnt (if (> cnt 1) "s" "")))) `---- and this has been working pretty well for me. I really appreciate you posting this on the list (a long time ago :) ) I have a function key binding to rerun this function when I add new appointments for today. ,----[ Activate the appointments in .emacs ] | (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt) | ;; Get appointments for today | (my-org-agenda-to-appt) | (appt-activate t) `---- I have the following wishlist items for this function but don't currently have the lisp skills to fix it. - [ ] Clear the appointment list when rerunning the my-org-agenda-to-appt If I move an appointment to anther day and use f9-a the old appointment reminder is still there and bugs me when the time rolls around. I only use org appointment entries so clearing the list should be trivial. I don't use diary entries anymore. - [ ] Future deadlines are reported for today. I have an installation deadline at 8PM on Thursday. Since it's a deadline it shows up in my agenda today with a 3 day warning... and my-org-agenda-to-appt picks this up and makes an appointment for today -- which is incorrect. I don't need an appointment for this until Thursday. - [ ] If I leave Emacs running overnight is there a good way to reset the appointment list at midnight? What do I need to do to this function to fix these issues? Any input is greatly appreciated :) Regards, Bernt
Hi Bernt, Bastien is quite busy, so let me replay On Feb 26, 2008, at 12:09 AM, Bernt Hansen wrote: > Hi Bastien, > > I'm using your function for creating appointments: > > ,----[ my-org-agenda-to-appt in .emacs ] > | ;; Make appt aware of appointments from the agenda > | (defun my-org-agenda-to-appt (&optional filter) > | "Activate appointments found in `org-agenda-files'. > | When prefixed, prompt for a regular expression and use it as a > | filter: only add entries if they match this regular expression. > | > | FILTER can be a string. In this case, use this string as a > | regular expression to filter results. > | > | FILTER can also be an alist, with the car of each cell being > | either 'headline or 'category. For example: > | > | '((headline \"IMPORTANT\") > | (category \"Work\")) > | > | will only add headlines containing IMPORTANT or headlines > | belonging to the category \"Work\"." > | (interactive "P") > | (require 'org) > | (require 'calendar) > | (if (equal filter '(4)) > | (setq filter (read-from-minibuffer "Regexp filter: "))) > | (let* ((cnt 0) ; count added events > | (today (org-date-to-gregorian > | (time-to-days (current-time)))) > | (files org-agenda-files) entries file) > | ;; Get all entries which may contain an appt > | (while (setq file (pop files)) > | (setq entries > | (append entries > | (org-agenda-get-day-entries > | file today > | :timestamp :scheduled :deadline)))) > | (setq entries (delq nil entries)) > | ;; Map thru entries and find if they pass thru the filter > | (mapc > | (lambda(x) > | (let* ((evt (org-trim (get-text-property 1 'txt x))) > | (cat (get-text-property 1 'org-category x)) > | (tod (get-text-property 1 'time-of-day x)) > | (ok (or (null filter) > | (and (stringp filter) (string-match filter evt)) > | (and (listp filter) > | (or (string-match > | (cadr (assoc 'category filter)) cat) > | (string-match > | (cadr (assoc 'headline filter)) evt)))))) > | ;; FIXME Shall we remove text-properties for the appt text? > | ;; (setq evt (set-text-properties 0 (length evt) nil evt)) > | (when (and ok tod) > | (setq tod (number-to-string tod) > | tod (when (string-match > | "\\([0-9]\\{1,2\\}\\)\\([0-9]\\{2\\}\\)" tod) > | (concat (match-string 1 tod) ":" > | (match-string 2 tod)))) > | (appt-add tod evt) > | (setq cnt (1+ cnt))))) entries) > | (message "Added %d event%s for today" cnt (if (> cnt 1) "s" > "")))) > `---- > > and this has been working pretty well for me. I really appreciate you > posting this on the list (a long time ago :) ) > > I have a function key binding to rerun this function when I add new > appointments for today. > > ,----[ Activate the appointments in .emacs ] > | (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt) > | ;; Get appointments for today > | (my-org-agenda-to-appt) > | (appt-activate t) > `---- > > I have the following wishlist items for this function but don't > currently have the lisp skills to fix it. > > - [ ] Clear the appointment list when rerunning the > my-org-agenda-to-appt > If I move an appointment to anther day and use f9-a the old > appointment reminder is still there and bugs me when the time > rolls around. > I only use org appointment entries so clearing the list should > be > trivial. I don't use diary entries anymore. In this case, setting `appt-time-msg-list' to nil before calling my- org-agenda-to-appt should be fine. BTW, org.el contains `org-agenda-to-appt' which is a very slightly improved version of this function, so no need to keep it in .emacs. > - [ ] Future deadlines are reported for today. > I have an installation deadline at 8PM on Thursday. Since > it's a > deadline it shows up in my agenda today with a 3 day warning... > and my-org-agenda-to-appt picks this up and makes an appointment > for today -- which is incorrect. I don't need an appointment > for > this until Thursday. Do (let ((org-deadline-warning-days 0)) around the call. Actually, yes, this should be part f org-agenda-to- appt, I will put it in. But for now you can do it in your update function. There is a bug in the documentation of org-deadline-warning-days saying that only negative numbers will be enforced. In fact, 0 will also be enforced. > - [ ] If I leave Emacs running overnight is there a good way to reset > the appointment list at midnight? Take a look at the function `run-at-time'. This could be set up in .emacs, better to not execute this each time you update your appointment list. So to summarize, this is really all you need in .emacs: ;; Get appointments for today (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt) (defun my-org-agenda-to-appt () (interactive) (let ((org-deadline-warning-days 0)) ;; will be automatic in org 5.23 (org-agenda-to-appt))) (my-org-agenda-to-appt) (appt-activate t) (run-at-time "24:01" nil 'my-org-agenda-to-appt)
On Feb 26, 2008, at 5:06 PM, Carsten Dominik wrote:
[...]
I forgot to clear the list:
So to summarize, this is really all you need in .emacs:
;; Get appointments for today
(global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt)
(defun my-org-agenda-to-appt ()
(interactive)
(setq appt-time-msg-list nil)
(let ((org-deadline-warning-days 0)) ;; will be automatic in org
5.23
(org-agenda-to-appt)))
(my-org-agenda-to-appt)
(appt-activate t)
(run-at-time "24:01" nil 'my-org-agenda-to-appt)
>
Carsten Dominik <carsten.dominik@gmail.com> writes:
> On Feb 26, 2008, at 5:06 PM, Carsten Dominik wrote:
>
> [...]
>
> I forgot to clear the list:
>
> So to summarize, this is really all you need in .emacs:
>
> ;; Get appointments for today
> (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt)
> (defun my-org-agenda-to-appt ()
> (interactive)
> (setq appt-time-msg-list nil)
> (let ((org-deadline-warning-days 0)) ;; will be automatic in org
> 5.23
> (org-agenda-to-appt)))
> (my-org-agenda-to-appt)
> (appt-activate t)
> (run-at-time "24:01" nil 'my-org-agenda-to-appt)
>
>>
Thanks!!
-Bernt
(Resending to the list) Hi Bernt, Bernt Hansen <bernt@norang.ca> writes: > I'm using your function for creating appointments: > > ,----[ my-org-agenda-to-appt in .emacs ] This function is now part of org-mode and is named `org-agenda-to-appt'. It is safer to use the version shipped with Org than the one on the web. > I have a function key binding to rerun this function when I add new > appointments for today. > > ,----[ Activate the appointments in .emacs ] > | (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt) > | ;; Get appointments for today > | (my-org-agenda-to-appt) > | (appt-activate t) > `---- > > I have the following wishlist items for this function but don't > currently have the lisp skills to fix it. > > - [ ] Clear the appointment list when rerunning the > my-org-agenda-to-appt Yes, I've fixed this. This should also handle the case where people still use diary appointments. > - [ ] Future deadlines are reported for today. I've also fixed this. > - [ ] If I leave Emacs running overnight is there a good way to reset > the appointment list at midnight? Maybe we should consider having `org-agenda-to-appt-activate' doing a similar job than `appt-activate': check for new appts (in agendas) at a specific time and when agenda files are saved. In the meantime, you can do this manually with a cron job or `run-at-time' (See C-h f run-at-time RET) Hope this helps... -- Bastien
Great combined feature: http://alfredobuttari.wordpress.com/2008/02/08/emacs-appt-mode-reminders-with-gtk-popups/ I'm still trying to get this to work reliably, either appointments or calling out to a gtk popup, but I look forward to using it soon. Thanks. On Tue, Feb 26, 2008 at 05:09:39PM +0100, Carsten Dominik wrote: > > On Feb 26, 2008, at 5:06 PM, Carsten Dominik wrote: > > [...] > > I forgot to clear the list: > > So to summarize, this is really all you need in .emacs: > > ;; Get appointments for today > (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt) > (defun my-org-agenda-to-appt () > (interactive) > (setq appt-time-msg-list nil) > (let ((org-deadline-warning-days 0)) ;; will be automatic in org > 5.23 > (org-agenda-to-appt))) > (my-org-agenda-to-appt) > (appt-activate t) > (run-at-time "24:01" nil 'my-org-agenda-to-appt) > > > > > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3
Ok, so how far in advance is appt supposed to alert you? I'm testing this, and I've gotten zenity to do a popup, and I've tied the refresh of the appt list to the agenda refresh with: (add-hook 'org-finalize-agenda-hook 'my-org-agenda-to-appt) I'm testing a series of timings before I start relying on this, and trying to understand the behavior. Any comments? Thanks. On Tue, Feb 26, 2008 at 07:01:15PM -0600, Russell Adams wrote: > Great combined feature: > > http://alfredobuttari.wordpress.com/2008/02/08/emacs-appt-mode-reminders-with-gtk-popups/ > > I'm still trying to get this to work reliably, either appointments or > calling out to a gtk popup, but I look forward to using it soon. > > Thanks. > > On Tue, Feb 26, 2008 at 05:09:39PM +0100, Carsten Dominik wrote: > > > > On Feb 26, 2008, at 5:06 PM, Carsten Dominik wrote: > > > > [...] > > > > I forgot to clear the list: > > > > So to summarize, this is really all you need in .emacs: > > > > ;; Get appointments for today > > (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt) > > (defun my-org-agenda-to-appt () > > (interactive) > > (setq appt-time-msg-list nil) > > (let ((org-deadline-warning-days 0)) ;; will be automatic in org > > 5.23 > > (org-agenda-to-appt))) > > (my-org-agenda-to-appt) > > (appt-activate t) > > (run-at-time "24:01" nil 'my-org-agenda-to-appt) > > > > > > > > > > > > > _______________________________________________ > > Emacs-orgmode mailing list > > Remember: use `Reply All' to send replies to the list. > > Emacs-orgmode@gnu.org > > http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > > ------------------------------------------------------------------ > Russell Adams RLAdams@AdamsInfoServ.com > > PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ > > Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3
It's configurable (as is almost anything else in Emacs)
The following variables set to behaviour
appt-message-warning-time (12 minutes for me)
appt-display-interval ( 3 minutes for me)
I get warnings at 12, 9, 6, 3, and 0 minutes.
HTH,
-Bernt
Russell Adams <RLAdams@AdamsInfoServ.Com> writes:
> Ok, so how far in advance is appt supposed to alert you?
>
> I'm testing this, and I've gotten zenity to do a popup, and I've tied
> the refresh of the appt list to the agenda refresh with:
>
> (add-hook 'org-finalize-agenda-hook 'my-org-agenda-to-appt)
>
> I'm testing a series of timings before I start relying on this, and
> trying to understand the behavior.
>
> Any comments?
>
> Thanks.
>
> On Tue, Feb 26, 2008 at 07:01:15PM -0600, Russell Adams wrote:
>> Great combined feature:
>>
>> http://alfredobuttari.wordpress.com/2008/02/08/emacs-appt-mode-reminders-with-gtk-popups/
>>
>> I'm still trying to get this to work reliably, either appointments or
>> calling out to a gtk popup, but I look forward to using it soon.
>>
>> Thanks.
>>
>> On Tue, Feb 26, 2008 at 05:09:39PM +0100, Carsten Dominik wrote:
>> >
>> > On Feb 26, 2008, at 5:06 PM, Carsten Dominik wrote:
>> >
>> > [...]
>> >
>> > I forgot to clear the list:
>> >
>> > So to summarize, this is really all you need in .emacs:
>> >
>> > ;; Get appointments for today
>> > (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt)
>> > (defun my-org-agenda-to-appt ()
>> > (interactive)
>> > (setq appt-time-msg-list nil)
>> > (let ((org-deadline-warning-days 0)) ;; will be automatic in org
>> > 5.23
>> > (org-agenda-to-appt)))
>> > (my-org-agenda-to-appt)
>> > (appt-activate t)
>> > (run-at-time "24:01" nil 'my-org-agenda-to-appt)
>> >
>> > >
>> >
>> >
>> >
>> > _______________________________________________
>> > Emacs-orgmode mailing list
>> > Remember: use `Reply All' to send replies to the list.
>> > Emacs-orgmode@gnu.org
>> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>>
>>
>> ------------------------------------------------------------------
>> Russell Adams RLAdams@AdamsInfoServ.com
>>
>> PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/
>>
>> Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3
>>
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Remember: use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
>
>
> ------------------------------------------------------------------
> Russell Adams RLAdams@AdamsInfoServ.com
>
> PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/
>
> Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3
>
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Bernt Hansen <bernt@norang.ca> writes:
> The following variables set to behaviour
set to -> set the
Thanks for the information! Thats exactly what I was trying to figure out. I've got one last problem, then I'll post the complete howto somewhere... I'm kicking off zenity (GUI notification window) via shell-command and putting it in the background. Emacs keeps opening a new window called *Async Shell Command*, even though I thought I disabled that by passing nil to the output buffer argument. Any suggestions? Thanks. On Wed, Feb 27, 2008 at 08:04:51PM -0500, Bernt Hansen wrote: > It's configurable (as is almost anything else in Emacs) > > The following variables set to behaviour > > appt-message-warning-time (12 minutes for me) > appt-display-interval ( 3 minutes for me) > > I get warnings at 12, 9, 6, 3, and 0 minutes. > > HTH, > -Bernt > > Russell Adams <RLAdams@AdamsInfoServ.Com> writes: > > > Ok, so how far in advance is appt supposed to alert you? > > > > I'm testing this, and I've gotten zenity to do a popup, and I've tied > > the refresh of the appt list to the agenda refresh with: > > > > (add-hook 'org-finalize-agenda-hook 'my-org-agenda-to-appt) > > > > I'm testing a series of timings before I start relying on this, and > > trying to understand the behavior. > > > > Any comments? > > > > Thanks. > > > > On Tue, Feb 26, 2008 at 07:01:15PM -0600, Russell Adams wrote: > >> Great combined feature: > >> > >> http://alfredobuttari.wordpress.com/2008/02/08/emacs-appt-mode-reminders-with-gtk-popups/ > >> > >> I'm still trying to get this to work reliably, either appointments or > >> calling out to a gtk popup, but I look forward to using it soon. > >> > >> Thanks. > >> > >> On Tue, Feb 26, 2008 at 05:09:39PM +0100, Carsten Dominik wrote: > >> > > >> > On Feb 26, 2008, at 5:06 PM, Carsten Dominik wrote: > >> > > >> > [...] > >> > > >> > I forgot to clear the list: > >> > > >> > So to summarize, this is really all you need in .emacs: > >> > > >> > ;; Get appointments for today > >> > (global-set-key (kbd "<f9> a") 'my-org-agenda-to-appt) > >> > (defun my-org-agenda-to-appt () > >> > (interactive) > >> > (setq appt-time-msg-list nil) > >> > (let ((org-deadline-warning-days 0)) ;; will be automatic in org > >> > 5.23 > >> > (org-agenda-to-appt))) > >> > (my-org-agenda-to-appt) > >> > (appt-activate t) > >> > (run-at-time "24:01" nil 'my-org-agenda-to-appt) > >> > > >> > > > >> > > >> > > >> > > >> > _______________________________________________ > >> > Emacs-orgmode mailing list > >> > Remember: use `Reply All' to send replies to the list. > >> > Emacs-orgmode@gnu.org > >> > http://lists.gnu.org/mailman/listinfo/emacs-orgmode > >> > >> > >> ------------------------------------------------------------------ > >> Russell Adams RLAdams@AdamsInfoServ.com > >> > >> PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ > >> > >> Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 > >> > >> > >> _______________________________________________ > >> Emacs-orgmode mailing list > >> Remember: use `Reply All' to send replies to the list. > >> Emacs-orgmode@gnu.org > >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > > > > > ------------------------------------------------------------------ > > Russell Adams RLAdams@AdamsInfoServ.com > > > > PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ > > > > Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 > > > > > > _______________________________________________ > > Emacs-orgmode mailing list > > Remember: use `Reply All' to send replies to the list. > > Emacs-orgmode@gnu.org > > http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3
Russell Adams <RLAdams@AdamsInfoServ.Com> wrote:
> I'm kicking off zenity (GUI notification window) via shell-command and
> putting it in the background. Emacs keeps opening a new window called
> *Async Shell Command*, even though I thought I disabled that by
> passing nil to the output buffer argument.
>
Try the following instead:
(setq appt-display-format 'window)
(setq appt-disp-window-function (function my-appt-disp-window))
(defun my-appt-disp-window (min-to-app new-time msg)
(call-process "/home/nick/bin/popup.py" nil 0 nil min-to-app msg new-time))
This one calls my home-grown ``popupper'', so just change the string to
call zenity, and change the args to what is needed. The 0 in the "nil 0
nil" part means discard any output and don't wait for the process to
finish - see the documentation for call-process for more details.
For more, check the list archives or worg: I had posted my method for
popups to the list and Bastien has apparently put a pointer to it on
worg somewhere.
HTH,
Nick
[-- Attachment #1.1: Type: text/plain, Size: 1693 bytes --] Ok, so I've got appt working with org, along with Gnome popups with zenity to alert me of events. I wanted to aggregate the advice I'd received into one place, which could be posted later to wiki or worg, etc. I would welcome feedback, as I'm currently vetting this configuration. I'll post any updates if I find a problem. Thanks. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; For org appointment reminders ;; Get appointments for today (defun my-org-agenda-to-appt () (interactive) (setq appt-time-msg-list nil) (let ((org-deadline-warning-days 0)) ;; will be automatic in org 5.23 (org-agenda-to-appt))) ;; Run once, activate and schedule refresh (my-org-agenda-to-appt) (appt-activate t) (run-at-time "24:01" nil 'my-org-agenda-to-appt) ; 5 minute warnings (setq appt-message-warning-time '15) (setq appt-display-interval '5) ; Update appt each time agenda opened. (add-hook 'org-finalize-agenda-hook 'my-org-agenda-to-appt) ; Setup zenify, we tell appt to use window, and replace default function (setq appt-display-format 'window) (setq appt-disp-window-function (function my-appt-disp-window)) (defun my-appt-disp-window (min-to-app new-time msg) (save-window-excursion (shell-command (concat "/usr/bin/zenity --info --title='Appointment' --text='" msg "' &" ) nil nil) )) ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3 [-- Attachment #1.2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] [-- Attachment #2: Type: text/plain, Size: 204 bytes --] _______________________________________________ Emacs-orgmode mailing list Remember: use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode
Russell Adams <RLAdams@AdamsInfoServ.Com> writes: v> Ok, so I've got appt working with org, along with Gnome popups with > zenity to alert me of events. > > I wanted to aggregate the advice I'd received into one place, which > could be posted later to wiki or worg, etc. > > I would welcome feedback, as I'm currently vetting this > configuration. I'll post any updates if I find a problem. > > Thanks. > > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > ; For org appointment reminders > > ;; Get appointments for today > (defun my-org-agenda-to-appt () > (interactive) > (setq appt-time-msg-list nil) > (let ((org-deadline-warning-days 0)) ;; will be automatic in org 5.23 > (org-agenda-to-appt))) > > ;; Run once, activate and schedule refresh > (my-org-agenda-to-appt) > (appt-activate t) > (run-at-time "24:01" nil 'my-org-agenda-to-appt) > > ; 5 minute warnings > (setq appt-message-warning-time '15) > (setq appt-display-interval '5) > > ; Update appt each time agenda opened. > (add-hook 'org-finalize-agenda-hook 'my-org-agenda-to-appt) > > ; Setup zenify, we tell appt to use window, and replace default function > (setq appt-display-format 'window) > (setq appt-disp-window-function (function my-appt-disp-window)) > > (defun my-appt-disp-window (min-to-app new-time msg) > (save-window-excursion (shell-command (concat > "/usr/bin/zenity --info --title='Appointment' --text='" > msg > "' &" > ) nil nil) > )) I just tried it. Excellent. BTW, one small problem - when I updated a schedule in the agenda interface, the agenda file doesn't update in the buffer. Closing it and reopening it showed the new time.
I don't know if that is related to this code. For the list, what version are you running? On Sun, Mar 02, 2008 at 06:51:42PM +0100, Richard G Riley wrote: > BTW, one small problem - when I updated a schedule in the agenda > interface, the agenda file doesn't update in the buffer. Closing it and > reopening it showed the new time. > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode ------------------------------------------------------------------ Russell Adams RLAdams@AdamsInfoServ.com PGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/ Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3
Russell Adams <RLAdams@AdamsInfoServ.Com> writes: > Ok, so I've got appt working with org, along with Gnome popups with > zenity to alert me of events. Works nice here, thanks. > I wanted to aggregate the advice I'd received into one place, which > could be posted later to wiki or worg, etc. I posted this here: http://www.legito.net/worg/org-adhoc-code.php It should appear in a few minutes, I'm not uploading the HTML export of Worg manually. -- Bastien