From 5356ee77c368541113618a391b8480709c5eeb0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aim=C3=A9=20Bertrand?= Date: Tue, 18 May 2021 01:23:51 +0200 Subject: [PATCH] org-mac-link.el: Add support for qutebrowser * lisp/org-mac-link.el (org-mac-grab-qutebrowser-app-p): Variable for menu option (org-mac-grab-link): Menu option for qutebrowser (org-as-mac-qutebrowser-get-frontmost-url): Retrieve url and title --- lisp/org-mac-link.el | 55 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/lisp/org-mac-link.el b/lisp/org-mac-link.el index f6d6da3..d887128 100644 --- a/lisp/org-mac-link.el +++ b/lisp/org-mac-link.el @@ -218,6 +218,12 @@ :group 'org-mac-link :type 'string) +(defcustom org-mac-grab-qutebrowser-app-p t + "Add menu option [q]utebrowser to grab links from qutebrowser.app." + :tag "Grab qutebrowser.app links" + :group 'org-mac-link + :type 'boolean) + ;; In mac.c, removed in Emacs 23. (declare-function do-applescript "org-mac-message" (script)) @@ -254,7 +260,8 @@ When done, go grab the link, and insert it at point." ("e" "evernote" org-mac-evernote-note-insert-selected ,org-mac-grab-Evernote-app-p) ("t" "ogether" org-mac-together-insert-selected ,org-mac-grab-Together-app-p) ("S" "kim" org-mac-skim-insert-page ,org-mac-grab-Skim-app-p) - ("A" "crobat" org-mac-acrobat-insert-page ,org-mac-grab-Acrobat-app-p))) + ("A" "crobat" org-mac-acrobat-insert-page ,org-mac-grab-Acrobat-app-p) + ("q" "utebrowser" org-mac-qutebrowser-insert-frontmost-url ,org-mac-grab-qutebrowser-app-p))) (menu-string (make-string 0 ?x)) input) @@ -1013,6 +1020,52 @@ list of message:// links to flagged mail after heading." (org-insert-heading nil t) (insert org-heading "\n" (org-mac-message-get-links "f")))))) + +;; Handle links from qutebrowser.app + +(defun org-as-mac-qutebrowser-get-frontmost-url () + (let ((result + (do-applescript + (concat + "set oldClipboard to the clipboard\n" + "set frontmostApplication to path to frontmost application\n" + "tell application \"qutebrowser\"\n" + " activate\n" + " delay 0.15\n" + " tell application \"System Events\"\n" + " keystroke \"y\"\n" + " keystroke \"y\"\n" + " end tell\n" + " delay 0.15\n" + " set theUrl to the clipboard\n" + " set the clipboard to oldClipboard\n" + " delay 0.15\n" + " tell application \"System Events\"\n" + " keystroke \"y\"\n" + " keystroke \"T\"\n" + " end tell\n" + " delay 0.15\n" + " set theTitle to the clipboard\n" + " set the clipboard to oldClipboard\n" + " set theResult to (get theUrl) & \"::split::\" & (get theTitle)\n" + "end tell\n" + "activate application (frontmostApplication as text)\n" + "set links to {}\n" + "copy theResult to the end of links\n" + "return links as string\n")))) + (car (split-string result "[\r\n]+" t)))) + +;;;###autoload +(defun org-mac-qutebrowser-get-frontmost-url () + (interactive) + (message "Applescript: Getting qutebrowser url...") + (org-mac-paste-applescript-links (org-as-mac-qutebrowser-get-frontmost-url))) + +;;;###autoload +(defun org-mac-qutebrowser-insert-frontmost-url () + (interactive) + (insert (org-mac-qutebrowser-get-frontmost-url))) + (provide 'org-mac-link) -- 2.30.1 (Apple Git-130)