From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adam Porter Subject: ANN: org-super-agenda Date: Sun, 23 Jul 2017 17:49:00 -0500 Message-ID: <87o9salqg3.fsf@alphapapa.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:47743) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dZPgZ-0004KD-As for emacs-orgmode@gnu.org; Sun, 23 Jul 2017 18:49:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dZPgW-0006WP-1R for emacs-orgmode@gnu.org; Sun, 23 Jul 2017 18:49:15 -0400 Received: from [195.159.176.226] (port=48091 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dZPgV-0006WF-Re for emacs-orgmode@gnu.org; Sun, 23 Jul 2017 18:49:11 -0400 Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1dZPgO-0008Ob-8F for emacs-orgmode@gnu.org; Mon, 24 Jul 2017 00:49:04 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org 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