emacs-orgmode
[Top][All Lists]
Advanced

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

[O] ANN: org-super-agenda


From: Adam Porter
Subject: [O] ANN: org-super-agenda
Date: Sun, 23 Jul 2017 17:49:00 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Hi friends,

I put together another little tool I've been thinking about for a while.
I'm calling it org-super-agenda at the moment, but org-divided-agenda
might be more descriptive; feedback on the name is welcome.

Before I forget and have to have Grant cover for me, you can find it
here: https://github.com/alphapapa/org-super-agenda

This is a prototype for a “supercharged” Org daily/weekly agenda. The
idea is to divide items into sections, rather than having them all in
one big list.

Now you can sort-of do this already with custom agenda commands, but
when you do that, you lose the daily/weekly aspect of the agenda: items
are no longer shown based on deadline/scheduled timestamps, but are
shown no-matter-what.

So this org-super-agenda command essentially copies the org-agenda-list
command, but right before it inserts the agenda items, it runs them
through a set of user-defined filters that separate them into
sections. Then the sections are inserted into the agenda buffer, and any
remaining items are inserted at the end.

The end result is your standard daily/weekly agenda, but arranged into
sections defined by you. You might put items with certain tags in one
section, habits in another section, items with certain todo keywords in
another, and items with certain priorities in another. The possibilities
are only limited by the filter functions (which you can easily add to,
and more will be added here).

The org-super-agenda command works as a custom agenda command, so you
can add it to your org-agenda-custom-commands list. You can also test it
quickly like this:

#+BEGIN_SRC elisp
((org-agenda-custom-commands
       (list (quote ("u" "SUPER Agenda"
                     org-super-agenda ""
                     ((super-filters
                       '((osa/separate-by-any-tags ("bills"))
                         osa/separate-by-habits
                         (osa/separate-by-todo-keywords "WAITING")
                         (osa/separate-by-todo-keywords ("SOMEDAY" "TO-READ" 
"CHECK")
                         (osa/separate-by-priorities "A")
                         (osa/separate-by-priorities "B")
                         (osa/separate-by-priorities "C")))
                      (org-agenda-span 'day)))))))
  (org-agenda nil "u"))
#+END_SRC

Here's a screenshot:
https://github.com/alphapapa/org-super-agenda/raw/master/screenshot.png

I consider this a functional prototype or basic first-version, but it's
very usable right now.  Feedback is welcome, and I plan to continue
making improvements before eventually submitting it to MELPA.

Thanks,
Adam




reply via email to

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