Compare commits

..

No commits in common. "a4823651a147dd37fca9b2834bbc1d5beaf5894a" and "2d6b40088ed1cd973529376d75551b69c28be924" have entirely different histories.

2 changed files with 24 additions and 47 deletions

23
init.el
View File

@ -741,7 +741,7 @@
org-dblock-write:db/org-workload-report
endless/org-ispell
db/org-agenda-list-deadlines
db/org-agenda-insert-active-filters
db/org-agenda-skip-tag
hydra-org-agenda-view/body
db/org-agenda-insert-efforts
db/org-eval-subtree-no-confirm
@ -1134,6 +1134,9 @@
org-agenda-search-headline-for-time nil
org-agenda-search-view-always-boolean t
;; Show daily efforts directly in the agenda
org-agenda-finalize-hook '(db/org-agenda-insert-efforts)
org-agenda-clock-consistency-checks
'(:max-duration 9999999
:min-duration 0
@ -1254,24 +1257,14 @@
(org-agenda-skip-deadline-prewarning-if-scheduled t)))))))
:config (progn
;; Avoid important buffers to end up in `org-agenda-new-buffers by
;; avoid important buffers to end up in `org-agenda-new-buffers by
;; opening them manually
(mapc #'find-file-noselect org-agenda-files)
;; Check that all expected agenda files are being displayed.
(advice-add 'org-agenda
:before #'db/check-special-org-files-in-agenda)
(add-hook 'org-agenda-mode-hook #'hl-line-mode 'append)
;; Show daily efforts directly in the agenda
(add-hook 'org-agenda-finalize-hook #'db/org-agenda-insert-efforts)
;; Prominently display active filters on top of agenda view; also
;; update current agenda view when updating filters to make sure our
;; display is always correct.
(add-hook 'org-agenda-finalize-hook #'db/org-agenda-insert-active-filters)
(add-hook 'org-agenda-filter-hook #'org-agenda-redo-all)
(advice-add 'org-agenda
:before #'db/check-special-org-files-in-agenda)
(define-advice org-agenda-redo-all (:around (old-func &rest r) goto-top-and-execute)
"Avoid recentering the Org agenda buffer after redo by moving
@ -2798,7 +2791,7 @@ With given ARG, display files in `db/important-document-path."
;; General Stuff first
(use-package lisp-mode
:init (setq lisp-indent-function #'common-lisp-indent-function))
:init (setq lisp-indent-function #'lisp-indent-function))
(use-package lispy
:ensure t

View File

@ -112,39 +112,23 @@ deadlines."
(setq buffer-read-only t)
(message ""))))
(defun db/org-agenda-insert-active-filters (&optional match)
"Insert string showing the current agenda filters.
(defun db/org-agenda-skip-tag (tag &optional others)
;; https://stackoverflow.com/questions/10074016/org-mode-filter-on-tag-in-agenda-view
"Skip all entries that correspond to TAG.
The filter display is added after the structural header.
If no agenda filters are active, nothing will be inserted.
Add this function to `org-agenda-finalize-hook' to enable this."
;; First delete any present active filter display, as it might be obsolete.
(save-excursion
(when-let ((pos (text-property-any
(point) (point-max) 'db/active-filter-display t)))
(goto-char pos)
(kill-line)))
;; Insert current active filters if there are any.
(when (org-agenda-filter-any)
(save-excursion
(when-let ((pos (text-property-any
(point) (point-max) 'org-agenda-structural-header t)))
(goto-char pos)
(end-of-line)
;; Current filter display shamelessly stolen from `org-agenda-filter'.
;; Is there a function to do this?
(let* ((cf (mapconcat #'identity org-agenda-category-filter ""))
(tf (mapconcat #'identity org-agenda-tag-filter ""))
(ef (replace-regexp-in-string "^\\+" "" (or (car org-agenda-effort-filter) "")))
(rf (replace-regexp-in-string "^\\+" "" (or (car org-agenda-regexp-filter) "")))
(ff (concat cf tf ef (when (not (equal rf "")) (concat "/" rf "/")))))
(insert-and-inherit
(propertize (format " [%s]" ff)
'db/active-filter-display t)))))))
If OTHERS is true, skip all entries that do not correspond to TAG."
(let* ((next-headline (save-mark-and-excursion
(or (outline-next-heading) (point-max))))
(current-headline (or (and (org-at-heading-p)
(point))
(save-mark-and-excursion
;; remember to also consider invisible headings
(org-back-to-heading t))))
(has-tag (member tag (org-get-tags current-headline))))
(if (or (and others (not has-tag))
(and (not others) has-tag))
next-headline
nil)))
;; A Hydra for changing agenda appearance
;; http://oremacs.com/2016/04/04/hydra-doc-syntax/