Mostly Emacs versions under macOS does not have compiled with DBus. Or still don't work even compiled with DBus even macOS installed dbus with homebrew. I'm under this situation and problem. Spend lot of time have not solution to solve this problem. So I give up on Emacs DBus support under macOS to make "notifications.el" work.
I added patch on org-notify.el to make it invoke AppleScript command to display notifications. Hope it help some macOS users.
<#secure method=pgpmime mode=sign>
>From 6c667461b45e93059c6f801e485f7da4bfc3606c Mon Sep 17 00:00:00 2001 From: stardiviner <numbch...@gmail.com> Date: Fri, 29 May 2020 09:46:15 +0800 Subject: [PATCH] * org-attach.el: add a new command to archive web page * lisp/org-attach.el (org-attach-url-archive): A new org-attach dispatcher command to archive web page to a single file. * lisp/org-agenda.el (org-attach-url-archive-command): A customize option to specify external command for archiving web page. * lisp/org-attach.el (org-attach-url-archive-page): A command invoke external command to offline archive save web page. --- lisp/org-attach.el | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/lisp/org-attach.el b/lisp/org-attach.el index 57d1360fc..80855d147 100644 --- a/lisp/org-attach.el +++ b/lisp/org-attach.el @@ -204,6 +204,8 @@ (defcustom org-attach-commands "Attach a file using symbolic-link method.") ((?u ?\C-u) org-attach-url "Attach a file from URL (downloading it).") + ((?U) org-attach-url-archive + "Attach an offline version of web page URL.") ((?b) org-attach-buffer "Select a buffer and attach its contents to the task.") ((?n ?\C-n) org-attach-new @@ -467,6 +469,31 @@ (defun org-attach-url (url) (let ((org-attach-method 'url)) (org-attach-attach url))) +(defun org-attach-url-archive (url) + (interactive "MURL of the web page be archived to attach: \n") + (let ((org-attach-method 'archive)) + (org-attach-attach url))) + +(defcustom org-attach-url-archive-command + (file-name-nondirectory (executable-find "monolith")) + "The command used to offline archive web page. +monolith can be found here: https://github.com/Y2Z/monolith." + :type 'string + :safe #'stringp + :group 'org-attach) + +(defun org-attach-url-archive-page (url target-file) + "Save an offline archive of web page." + (pcase org-attach-url-archive-command + ("monolith" + (make-process + :name "org-attach-offline" + :command (list org-attach-url-archive-command url "-o" target-file) + :sentinel (lambda (proc event) (message "org-attach-offline finished!")) + :buffer "*org-attach-url-archive*")) + (nil (warn "You must have a command availble for offline save web page! +Set variable `org-attach-url-archive-command'.")))) + (defun org-attach-buffer (buffer-name) "Attach BUFFER-NAME's contents to current outline node. BUFFER-NAME is a string. Signals a `file-already-exists' error @@ -504,7 +531,8 @@ (defun org-attach-attach (file &optional visit-dir method) ((eq method 'cp) (copy-file file attach-file)) ((eq method 'ln) (add-name-to-file file attach-file)) ((eq method 'lns) (make-symbolic-link file attach-file)) - ((eq method 'url) (url-copy-file file attach-file))) + ((eq method 'url) (url-copy-file file attach-file)) + ((eq method 'archive) (org-attach-url-archive-page file attach-file))) (run-hook-with-args 'org-attach-after-change-hook attach-dir) (org-attach-tag) (cond ((eq org-attach-store-link-p 'attached) -- 2.26.2
-- [ stardiviner ] I try to make every word tell the meaning that I want to express. Blog: https://stardiviner.github.io/ IRC(freenode): stardiviner, Matrix: stardiviner GPG: F09F650D7D674819892591401B5DF1C95AE89AC3