diff --git a/init.el b/init.el index c47d7ea..ce2ce50 100644 --- a/init.el +++ b/init.el @@ -646,6 +646,11 @@ (:hook #'hl-line-mode) (add-hook 'org-agenda-after-show-hook 'org-narrow-to-subtree)) +(setup org-attach + (:also-load +org-attach) + (:option org-attach-method 'lns) + (+org-attach-fix-args-mode +1)) + (setup org-capture (:require +org-capture) (:+leader "c" #'org-capture "C-c" #'org-capture) diff --git a/lisp/+org-attach.el b/lisp/+org-attach.el new file mode 100644 index 0000000..5e7cc7f --- /dev/null +++ b/lisp/+org-attach.el @@ -0,0 +1,29 @@ +;;; +org-attach.el --- Fixes for org-attach -*- lexical-binding: t; -*- + +;;; Commentary: + +;; `org-attach-attach' doesn't fix the path name. Before I submit a bug, I'm +;; just fixing it by advising `org-attach-attach'. + +;;; Code: + +(defun +org-attach-attach-fix-args (args) + "ADVICE for `org-attach-attach' to normalize FILE first. +VISIT-DIR and METHOD are passed through unchanged. + +This should be applied as `:filter-args' advice." + (cons (expand-file-name (car args)) (cdr args))) + +(define-minor-mode +org-attach-fix-args-mode + "Fix the arguments passed to `org-attach-attach'. +This mode normalizes the filename passed to `org-attach-attach' +so that links can be properly made." + :lighter "" + :keymap nil + :global t ; I figure, what does this hurt? + (if +org-attach-fix-args-mode + (advice-add 'org-attach-attach :filter-args #'+org-attach-attach-fix-args) + (advice-remove 'org-attach-attach #'+org-attach-attach-fix-args))) + +(provide '+org-attach) +;;; +org-attach.el ends here