From mboxrd@z Thu Jan 1 00:00:00 1970 From: Trevor Murphy Subject: Can I ask "Which day is it?" when filtering org-agenda views? Date: Tue, 10 Sep 2013 11:12:15 -0400 Message-ID: <87k3ion228.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; format=flowed Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:58811) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJPcC-0008Vx-2I for emacs-orgmode@gnu.org; Tue, 10 Sep 2013 11:12:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VJPc3-0005GL-Ci for emacs-orgmode@gnu.org; Tue, 10 Sep 2013 11:12:27 -0400 Received: from mail-yh0-x235.google.com ([2607:f8b0:4002:c01::235]:59573) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VJPc3-0005G6-8E for emacs-orgmode@gnu.org; Tue, 10 Sep 2013 11:12:19 -0400 Received: by mail-yh0-f53.google.com with SMTP id b20so2084938yha.26 for ; Tue, 10 Sep 2013 08:12:18 -0700 (PDT) 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-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org As preface, I'm aware that I may have gone too far down the rabbit hole. I'm inserting many time grid lines (one per half hour) into my agenda views so I have a visual sense of my free / busy time. But I want time grid lines that have already passed to disappear, freeing up screen real estate for later lines. This was pretty easy. I customized `org-agenda-time-grid' to give me a line at every half-hour interval. Then I set `org-agenda-before-sorting-filter-function' to return nil for time grid lines where the "time-of-day" text property is in the past. In case that description isn't clear, I'm using (apologies for Gmail formatting): (defun my:org-agenda-before-sorting-filter-function (org-agenda-item) (unless (and (string= (nth 1 org-agenda-time-grid) (get-text-property 0 'txt org-agenda-item)) (< (get-text-property 0 'time-of-day org-agenda-item) (string-to-number (format-time-string "%H%M")))) org-agenda-item)) As an unanticipated side effect, my function also throws out time grid lines when I view tomorrow (and other days) in the agenda view. Is there an additional check I can throw into my function to only filter if the "day" of the time grid line is today? I tried the obvious (get-text-property 0 'day org-agenda-item) but it seems that the "day" text property isn't put into the item until /after/ the filter-function gets a chance to process it. Alternatively, if my attempted solution is brain-damaged please let me know a better way to manage the time grid lines. -- Trevor Murphy GnuPG Key: 0xCB06EAAF