Hi Tory,I use the same version emacs and orgmode version as you, and I have similar needs as you: filtering org-agenda by tags, etc.
I will share my whole section of org-agenda-custom-commands as it is, I hope you can followup it nicely. Find it attached in file: agenda-filters.org
Cheers, Pedro On 5/25/24 21:26, Ihor Radchenko wrote:
web...@toryanderson.com (Tory S. Anderson) writes:After years without issue where I could choose, for example, to see my daily work agenda, the filters are now failing to be applied. This is in org 9.6.15, as shipped with my emacs 29.3. I have verified that this problem is the same in =emacs -Q= without any other packages: when I choose my agenda view, such as "C-a w d" for my daily work agenda, I still get an agenda buffer named "Org_Agenda(wd)", but none of my preset filters have applied. I skimmed the documentation and I haven't seen any changed syntax. Here is my definition from my =use-package org= =:custom= section: #+begin_src lisp (org-agenda-custom-commands '(("w" . "Work") ("wd" "Work Day" ((agenda "" ((org-agenda-span 1) (org-agenda-start-on-weekday nil) (org-agenda-regexp-filter-preset '("+ODH\\|AGENDA\\|CONFERENCE" "-TSA\\|PRIESTHOOD"))))) nil))) #+end_srcAccording to the docstring of `org-agenda-regexp-filter-preset', ...The preset filter is a global property of the entire agenda view. In a block agenda, it will not work reliably to define a filter for one of the individual blocks. You need to set it in the global options and expect it to be applied to the entire view. So, you should set this variable as a part of global agenda command settings, not inside individual block. Not a bug. Canceled.Why has this stopped applying my filter when it worked for so long? Is it a bug, or do I need to change something to make it up-to-date?I have no idea because you did not tell which Org mode version had your settings working. I suspect that it could have happened around the time Org mode switched from dynamic binding to lexical binding, but it is just a blind guess.
(setq my/org-agenda_pro-filter ":2024_12_masked:\\|:2024_29_masked:\\|:2024_16_masked:\\|:2023_101_masked:\\|:2024_17_masked:") (setq my/org-agenda_org-filter ":2023_47_masked:\\|:2023_53_masked:\\|:2024_8_masked:\\|:2024_9_masked:\\|:2024_13_masked:\\|:2024_20_masked:\\|:2024_10_masked:\\|:2024_11_masked:") (setq my/org-agenda_home-filter ":2024_2_masked:\\|:2024_1_masked:\\|:2024_4_masked:\\|:2024_3_masked:\\|:2022_39_masked:") (setq my/org-agenda_vol-filter ":2023_47_masked:\\|:2023_53_masked:\\|:2024_8_masked:\\|:2024_9_masked:\\|:2024_13_masked:\\|:2024_20_masked:\\|:2024_10_masked:\\|:2024_11_masked:") (setq my/org-agenda_exp-filter ":2022_9_masked:\\|:2024_25_masked:\\|:2022_83_masked:\\|:2024_24_masked:\\|:2024_23_masked:\\|:2023_57_masked:\\|:2024_7_masked:\\|:2024_15_masked:\\|:2024_14_masked:") (setq my/org-agenda_mus-filter ":2024_22_masked:\\|:2024_21_masked:") (setq my/org-agenda_viaje-filter ":2023_114_masked:\\|:2022_74_masked:") (defun my/org-agenda-skip-with-filter (filter) (or (org-agenda-skip-entry-if 'todo '("DONE" "CLOSED")) (org-agenda-skip-entry-if 'notregexp (concat ":appt:\\|" filter)) )) ;; by default I only want a list of the todo items (setq org-agenda-custom-commands '(("t" "list all TICKLER items" todo "TICKLER") ("n" "list all NEXT items" todo "NEXT") ("h" "list all HOLD items" todo "HOLD") ("b" "Agenda for board.org" agenda "" ((org-agenda-span 'day) (org-agenda-files '("~/org/board.org")))) ;; thanks chatgpt ("d" "Daily agenda without DONE and CLOSED (responde a pregunta: qué queda por hacer hoy)" agenda "" ((org-agenda-span 'day) (org-agenda-skip-function (lambda () (or (org-agenda-skip-entry-if 'todo '("DONE" "CLOSED"))))))) ;; trabajos profesionales ;; https://emacs.stackexchange.com/questions/18179/org-agenda-command-with-org-agenda-filter-by-tag-not-working/78066#78066 ("w" "Context 1: pro/Work" agenda "" ((org-agenda-span 'day) (org-agenda-skip-function '(my/org-agenda-skip-with-filter (concat ":pro:\\|" my/org-agenda_pro-filter))) )) ("o" "Context 2: Org" agenda "" ((org-agenda-span 'day) (org-agenda-skip-function '(my/org-agenda-skip-with-filter (concat ":org:\\|" my/org-agenda_org-filter))) )) ;; special case, includes habitos ("c" "Context 3: home (Casa)" agenda "" ((org-agenda-span 'day) (org-agenda-skip-function (lambda () (let ((category (org-get-category))) ;; debug ;;(print category) (or (org-agenda-skip-entry-if 'todo '("DONE" "CLOSED")) (org-agenda-skip-entry-if 'notregexp (concat ":appt:\\|" ":nutricion:\\|" ":home:\\|" my/org-agenda_home-filter)) )))))) ("v" "Context 4: Vol" agenda "" ((org-agenda-span 'day) (org-agenda-skip-function '(my/org-agenda-skip-with-filter (concat ":vol:\\|" my/org-agenda_vol-filter))) )) ("x" "Context 5: eXp" agenda "" ((org-agenda-span 'day) (org-agenda-skip-function '(my/org-agenda-skip-with-filter (concat ":exp:\\|" my/org-agenda_exp-filter))) )) ("u" "Context 6: mUs" agenda "" ((org-agenda-span 'day) (org-agenda-skip-function '(my/org-agenda-skip-with-filter (concat ":mus:\\|" my/org-agenda_mus-filter))) )) ("v" "Context 7: Viaje" agenda "" ((org-agenda-span 'day) (org-agenda-skip-function '(my/org-agenda-skip-with-filter (concat ":viaje:\\|" my/org-agenda_viaje-filter))) )) ;; free: special case, negation of work filter ("f" "Freedom, no pro/work" agenda "" ((org-agenda-span 'day) (org-agenda-skip-function (lambda () (or (org-agenda-skip-entry-if 'todo '("DONE" "CLOSED")) (org-agenda-skip-entry-if 'regexp (concat ":appt:\\|" my/org-agenda_pro-filter)) ))))) ))
OpenPGP_0x9D64597C3A982DCA.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature