THanks for the good tips and examples; I'll keep them handy. So, listing the org-agenda variables the one I want to edit is org-agenda filter; however, changing this in my function does NOT change my agenda view the way it should. Here's what I'm trying:
--8<---------------cut here---------------start------------->8--- ;; saving views (setq org-agenda-custom-commands '(("c" "Class agendas" ; ((agenda "" ((org-agenda-span 7) (org-agenda-tag-filter "+LMC_6215"))))))) ;; No different results ((agenda "" ((org-agenda-span 7) (org-agenda-tag-filter '("+LMC_6215")))))))) ;; in the agenda, org-agenda-tag-filter remains nil no matter what --8<---------------cut here---------------end--------------->8--- Why is `org-agenda-tag-filter` being ignored when `org-agenda-span` is working? Subhan Michael Tindall <subh...@familycareinc.org> writes: > Well, to start with your syntax is WAY off. Org custom agendas can be pretty > arcane. > I'd start with setting up some custom agendas using the customizer, saving > them, and then looking at how they are structured. > Next, C-h v org-agenda TAB in an org buffer should get you a list of the > various settings you can use in a custom block. Note that not all variables > are valid in all types of blocks. > And finally, take a look at the documentation for org-agenda-skip-function, > as I believe this is what you will need to use to accomplish the goals you > set below > > And, as a bonus, here's a snippet out of my emacs showing a couple of > different custom agendas with mulitiple blocks. > ;;This one does a sorted list of all my TODOs, followed by an agenda block > for 1 day > ("D" "Todos+Clock" ((alltodo "" ((org-agenda-sticky nil) > > (org-agenda-sorting-strategy (quote ((agenda category-up todo-state-up > deadline-up time-up)))))) > (agenda "" > ((org-agenda-sticky nil) > > (org-agenda-sorting-strategy (quote ((agenda habit-down time-up priority-down > category-keep)))) > > (org-agenda-span 1) > > (org-agenda-use-time-grid t) > > (org-agenda-show-log (quote clockcheck)) > > (org-agenda-clockreport nil))))) > > ;; this one does all todos of type RECURRING, then a tags search for > everything with a STYLE property (tags does many things), followed by a list > of all my todos using alltodo, using a skip function to screen out anything > not matching the regex , followed by a list of TODOs from a specific file (I > use multiple project files for most things) > ("R" "Recuring+Habits" > > ((todo "RECURRING") > > (tags "STYLE={.+}") > > (alltodo "" ( > > (org-agenda-skip-function (lambda nil > (org-agenda-skip-entry-if > > > (quote notregexp) "\\:LastWorked\\:"))) > > (org-agenda-sticky nil) > > (org-agenda-max-entries 10) > > (org-agenda-clockreport nil) > > (org-agenda-sorting-strategy (quote ((todo > tsia-down todo-state-up priority-down time-down) > > > ))))) > > > (agenda "my-todos" > > ((org-agenda-files '("<path-to>/my-todos.org")) > > (org-agenda-span 1) > > (org-agenda-clockreport nil) > > )))) > Hope this helps, there are not that many good complex agenda examples out > there > > >> -----Original Message----- >> From: emacs-orgmode-bounces+subhant=familycareinc....@gnu.org >> [mailto:emacs-orgmode-bounces+subhant=familycareinc....@gnu.org] On >> Behalf Of Tory S. Anderson >> Sent: Wednesday, February 04, 2015 1:28 PM >> To: orgmode list >> Subject: Re: [O] Help: Saving Agenda Views >> >> Okay, I've attempted to use my newbie elisp skills to hack together a >> solution >> but it doesn't work, yelling at me about wrong number of arguments (why?). >> Here's what I've put together (clearly inspired by the `org-agenda-filter-by- >> tag` function). Can anyone help me piece together what's wrong here? >> >> --8<---------------cut here---------------start------------->8--- >> ;; saving views >> (setq org-agenda-custom-commands >> '(("x" agenda) >> ("y" agenda*) >> ("c" "Class agendas" >> ((agenda "" ((org-agenda-span 7))) >> (my-org-agenda-filter-by-tag "LMC_6215" "-")) >> ;;(org-agenda-filter-apply "+LMC_6215" "tag") ;; This one doesn't >> work because I can't see what "tag" should be >> ;; (org-agenda-redo)) ;; would be needed after org-agenda-filter- >> apply >> ) >> )) >> >> ;; For my usage >> (defun my-org-agenda-filter-by-tag (tag char) >> "A non-interactive version for use in custom commands. Keep only those >> lines in the agenda buffer that have a specific tag. Char should be + or -, >> filtering or narrowing." >> ; (interactive "P") >> (let* ((alist org-tag-alist-for-agenda) >> (tag-chars (mapconcat >> (lambda (x) (if (and (not (symbolp (car x))) >> (cdr x)) >> (char-to-string (cdr x)) >> "")) >> alist "")) >> (efforts (org-split-string >> (or (cdr (assoc (concat org-effort-property "_ALL") >> org-global-properties)) >> "0 0:10 0:30 1:00 2:00 3:00 4:00 5:00 6:00 7:00 8:00" >> ""))) >> (effort-op org-agenda-filter-effort-default-operator) >> (effort-prompt "") >> (inhibit-read-only t) >> (current org-agenda-tag-filter) >> maybe-refresh a n tag) >> (when (member char '(?+ ?-)) >> ;; Narrowing down >> (cond ((equal char ?-) (setq strip t narrow t)) >> ((equal char ?+) (setq strip nil narrow t)))) >> (cond >> ((equal char ?/) >> (org-agenda-filter-show-all-tag) >> (when (get 'org-agenda-tag-filter :preset-filter) >> (org-agenda-filter-apply org-agenda-tag-filter 'tag)) >> (setq maybe-refresh t)) >> >> >> ((equal char ?. ) >> (setq org-agenda-tag-filter >> (mapcar (lambda(tag) (concat "+" tag)) >> (org-get-at-bol 'tags))) >> (org-agenda-filter-apply org-agenda-tag-filter 'tag) >> (setq maybe-refresh t)) >> ((or (equal char ?\ ) >> (setq a (rassoc char alist)) >> (and (>= char ?0) (<= char ?9) >> (setq n (if (= char ?0) 9 (- char ?0 1)) >> tag (concat effort-op (nth n efforts)) >> a (cons tag nil))) >> (and (= char ??) >> (setq tag "?eff") >> a (cons tag nil)) >> (and tag (setq a (cons tag nil)))) >> (org-agenda-filter-show-all-tag) >> (setq tag (car a)) >> (setq org-agenda-tag-filter >> (cons (concat (if strip "-" "+") tag) >> (if narrow current nil))) >> (org-agenda-filter-apply org-agenda-tag-filter 'tag) >> (setq maybe-refresh t)) >> (t (error "Invalid tag selection character %c" char))) >> (when maybe-refresh >> (org-agenda-redo)))) >> --8<---------------cut here---------------end--------------->8--- >> >> >> >> >> torys.ander...@gmail.com (Tory S. Anderson) writes: >> >> > I'm trying to save an agenda view that I can arrive at in the following >> > way: >> > >> > 1. Load agenda (default 1-day view) >> > 2. / TAB "English_Class" (reduce to only entries tagged English_Class) >> >> > 3. \ - TAB "schedule" (further reduce by removing entries >> > having a >> :schedule tag) >> > 4. w (load a 7-day span, week-view) >> > >> > However, I've been unable to grok the directions at >> > http://orgmode.org/worg/org-tutorials/org-custom-agenda- >> commands.html >> > >> > The closest I've come is this: >> > >> > --8<---------------cut here---------------start------------->8--- >> > (setq org-agenda-custom-commands >> > '(("c" "Class agendas" agenda "" >> > ((org-agenda-tag-filter '("+LMC_6215")) >> > (org-agenda-span 7))))) >> > --8<---------------cut here---------------end--------------->8--- >> > >> > But while this successfully sets the span, it fails to filter the buffer >> > (let alone >> getting to my second filter). Where am I going wrong? > > > This message is intended for the sole use of the individual and entity to > which it is addressed and may contain information that is privileged, > confidential and exempt from disclosure under applicable law. If you are not > the intended addressee, nor authorized to receive for the intended addressee, > you are hereby notified that you may not use, copy, disclose or distribute to > anyone the message or any information contained in the message. If you have > received this message in error, please immediately advise the sender by reply > email and delete the message. Thank you.