[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [ANN] Gnorb: Glue code between Gnus, Org, and BBDB

From: Eric Abrahamsen
Subject: Re: [O] [ANN] Gnorb: Glue code between Gnus, Org, and BBDB
Date: Sun, 11 May 2014 00:36:01 +0800
User-agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/24.4.50 (gnu/linux)

On 05/10/14 15:34 PM, Alan Schmitt wrote:
> On 2014-05-10 12:32, Eric Abrahamsen <address@hidden> writes:
>> Alan Schmitt <address@hidden> writes:


> A more robust alternative than looking at the note's text could be to
> have a property with the link to the mail. (Later) I see that your
> LOGBOOK example uses a property to track the message. Could this be
> considered as the link? And I also see you only record the message
> id. How do you get to the right folder using it?

But the link that should be replied to will change as the conversation
progresses, that's why we're still scanning for links. But you're right,
it might be a little safer to put the newest relevant message link in a

Right now (this code hasn't been pushed yet), the GNORB_MSG_IDS property
is used in the *other* direction: when you receive a message that might
be relevant to a TODO (ie the second of the three mail functions I
mentioned), the GNORB_MSG_IDS property is used to suggest the relevant
TODO. We look at the IDs mentioned the References and In-Reply-To
headers of the incoming mail, if any of those IDs appear in the
GNORB_MSG_IDS property of a TODO, that TODO is suggested for
state-change/completion. This doesn't do anything automatically, it's
just used to suggest a likely default.


> To follow a link, I don't simply click on it as it usually breaks my
> carefully crafted layout for my agenda and todo files. So I have a very
> simple function that creates a frame to display the link:
> #+begin_src emacs-lisp
>   (defun as/copy-link-and-open-in-new-frame ()
>     (interactive)
>     "Copies the next link found and opens it in a new frame"
>     (org-next-link)
>     (let ((link (org-element-property :raw-link (org-element-link-parser))))
>       (make-frame '((name . "follow-link")))
>       (select-frame-by-name "follow-link")
>       (org-open-link-from-string link)))
> #+end_src
> This setup is why I'm so interested in gnorb: it's too much manual
> manipulation and friction.

Yup, that looks like a pain. Right now gnorb saves window configuration
when you handle a mail TODO, and restores it when the message is sent.
But there are probably a lot of contingencies I haven't thought of, so
it would be great to see how it works for you.

Actually, the very first motivation for starting to work on these
functions was annoyance at not being able to return properly from
following a gnus link.


>> I'd like gnorb to do all the complicated bits for you. You should just
>> be able to call whichever of the three functions is relevant, and then
>> gnorb will put you in the right place, with a link loaded, to take a
>> note or annotate a state-change. In the above example,
>> `gnorb-org-handle-mail' should see that there are gnus links in the
>> LOGBOOK, and start a reply to the most recent one.
> I know how to record state changes in the logbook (in the definition of
> `org-todo-keywords'), but I don't know how one adds notes. Do you do it
> by hand?

Gnorb will give you the choice of triggering state change, or adding a
note (with a customizable default, and a prefix arg to get the inverse).
Usually, you can add a note manually with C-c C-z. A note won't affect
`gnorb-org-handle-mail's behavior, it's just there for your information.
In both cases, gnorb will leave you at the note message buffer, where
you can insert a link or type whatever comments you want.


>> All this depends on you giving your BBDB records an "org-tag" field,
>> which is pretty much the only file-format buy-in that Gnorb asks of you
>> (I hope it remains the only one).
> Basic question: how does one add such a tag? I'm a very very basic user
> of bbdb, in the sense that I only use it to expand addresses when
> writing messages. I know it can do much more, but I don't know how.

Sure: just hit "i" on a record, and it will prompt you to insert a
field. The first time you use org-tags it will ask you to confirm you
want to create a new field type; after that it will provide completion.

>> Roland Winkler just made changes to the BBDB codebase that will allow us
>> to store links to recently-received messages as an Xfield on each
>> record, and I think that will be awesome (I happily stole this idea from
>> org-contacts). It will also depend on people running the development
>> version of BBDB, which will mean it will have a userbase of about four
>> :)
> Such information would be useful, indeed. But you already provide
> a similar function with gnorb-bbdb-mail-search, don't you?

I guess, yes, but redundancy is good!

>> Sorry, this was a bit of a brain-dump. I think the issue of how people
>> use email is fascinating, though, and I plan to look at software like
>> Google Tasks or whatever, to collect some ideas. I'd love input from
>> anyone with opinions!
> I also find the topic very interesting. Thanks again for your work!
> Alan

reply via email to

[Prev in Thread] Current Thread [Next in Thread]