Previous: Block agenda, Up: Custom agenda views [Contents][Index]
Org mode contains a number of variables regulating agenda construction
and display. The global variables define the behavior for all agenda
commands, including the custom commands. However, if you want to change
some settings just for a single custom view, you can do so. Setting
options requires inserting a list of variable names and values at the
right spot in org-agenda-custom-commands
. For example:
(setq org-agenda-custom-commands '(("w" todo "WAITING" ((org-agenda-sorting-strategy '(priority-down)) (org-agenda-prefix-format " Mixed: "))) ("U" tags-tree "+boss-urgent" ((org-show-following-heading nil) (org-show-hierarchy-above nil))) ("N" search "" ((org-agenda-files '("~org/notes.org")) (org-agenda-text-search-extra-files nil)))))
Now the C-c a w command will sort the collected entries only by priority, and the prefix format is modified to just say ‘ Mixed: ’ instead of giving the category of the entry. The sparse tags tree of C-c a U will now turn out ultra-compact, because neither the headline hierarchy above the match, nor the headline following the match will be shown. The command C-c a N will do a text search limited to only a single file.
For command sets creating a block agenda,
org-agenda-custom-commands
has two separate spots for setting
options. You can add options that should be valid for just a single
command in the set, and options that should be valid for all commands in
the set. The former are just added to the command entry; the latter
must come after the list of command entries. Going back to the block
agenda example (see Block agenda), let’s change the sorting strategy
for the C-c a h commands to priority-down
, but let’s sort
the results for GARDEN tags query in the opposite order,
priority-up
. This would look like this:
(setq org-agenda-custom-commands '(("h" "Agenda and Home-related tasks" ((agenda) (tags-todo "home") (tags "garden" ((org-agenda-sorting-strategy '(priority-up))))) ((org-agenda-sorting-strategy '(priority-down)))) ("o" "Agenda and Office-related tasks" ((agenda) (tags-todo "work") (tags "office")))))
As you see, the values and parentheses setting is a little complex. When in doubt, use the customize interface to set this variable—it fully supports its structure. Just one caveat: when setting options in this interface, the values are just Lisp expressions. So if the value is a string, you need to add the double-quotes around the value yourself.
To control whether an agenda command should be accessible from a specific
context, you can customize org-agenda-custom-commands-contexts
. Let’s
say for example that you have an agenda commands "o"
displaying a view
that you only need when reading emails. Then you would configure this option
like this:
(setq org-agenda-custom-commands-contexts '(("o" (in-mode . "message-mode"))))
You can also tell that the command key "o"
should refer to another
command key "r"
. In that case, add this command key like this:
(setq org-agenda-custom-commands-contexts '(("o" "r" (in-mode . "message-mode"))))
See the docstring of the variable for more information.
Previous: Block agenda, Up: Custom agenda views [Contents][Index]