emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Nick Dokos <ndokos@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: Agenda in the mode-line?
Date: Fri, 02 Aug 2013 13:07:06 -0400	[thread overview]
Message-ID: <87haf86myt.fsf@gmail.com> (raw)
In-Reply-To: m27gg487f8.fsf@unknown28cfe95504ff.gateway.2wire.net

Kyle Sexton <ks@mocker.org> writes:

> Bastien <bzg@gnu.org> writes:
>
>> Kyle Sexton <ks@mocker.org> writes:
>>
>>> Does anyone know if there is a feature to show something like 'Tasks: 4'
>>> on the mode-line for tasks that are currently open?
>>
>> This is the default behavior since long: hitting "I" to clock in a
>> task in the agenda or C-c C-x C-i in an Org buffer will append the
>> task name to the modeline, together with the time spent.
>>
>> Don't you have this?  Even with emacs -Q?
>>
>
> Sorry, it appears I didn't make my use case very clear.  What you are
> speaking of is clocking into a task, and indeed that does show up on the
> modeline.
>
> What I am after is more of a overview of "How many total TODO tasks do I
> have", ideally with some function to limit or match based on tag.
>
> Something like this in the modeline:
>
> #+BEGIN_EXAMPLE
> [Work: 3/10 Home: 2/20]
>                      ^--- Total number of TODOs in home.org
>                   ^------ Total number of TODOs due today in home.org
> #+END_EXAMPLE
>
> That way I have a constant reminder of the number of things left without
> having to pull up the agenda.
>

I don't think the feature exists but it should be buildable - although I
think it is not exactly simple.

It should be easy to write a function that uses the org mapping API to
produce a string of the form "[Work: 3/10 Home: 2/20]" and assign it to
a variable, say mode-line-org-tasks. The variable can be added to
mode-line-format.

The problem is to force mode-line redisplay when things change,
e.g. when you mark a TODO task DONE, or add another task to work.org.
If the file gets modified, then filenotify.el can be used, but since the
agenda files are kept open, the buffer is modified but the file is not
(until the buffer is saved) and I'm not sure how to detect such changes
and propagate them to the mode line. I thought there must be a hook to
allow this, but I haven't found one yet.

The rather yucky alternative is to poll the relevant buffers (say once a
minute) to see if they are modified and if so, run the function to set
the variable and force mode-line redisplay. 

-- 
Nick

  reply	other threads:[~2013-08-02 17:07 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-01 13:30 Agenda in the mode-line? Kyle Sexton
2013-08-02 14:36 ` Bastien
2013-08-02 14:59   ` Kyle Sexton
2013-08-02 17:07     ` Nick Dokos [this message]
2013-08-02 17:49       ` Kyle Sexton
2013-08-03  5:27         ` Nick Dokos
2013-08-03  3:48     ` Eric Abrahamsen
2013-08-04 18:18     ` Daniel Clemente

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87haf86myt.fsf@gmail.com \
    --to=ndokos@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

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).