From 04d97d3dacd14503e9f9736d735f7e8ba1e3308a Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 9 Jun 2021 21:48:11 -0500 Subject: Add browse-url functions I should break this out into a thingy. --- init.el | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/init.el b/init.el index 73a7c5d..48dd80c 100644 --- a/init.el +++ b/init.el @@ -89,12 +89,51 @@ browse-url-firefox-arguments '("--new-tab") ; for firefox browse-url-firefox-new-window-is-tab t) + (defvar browse-url-mpv-arguments nil + "Arguments to pass to mpv in `browse-url-mpv'.") + + (defun browse-url-mpv (url &optional new-window) + "Play `URL' in mpv." + (interactive (browse-url-interactive-arg "Video URL: ")) + (ignore new-window) ;; mpv always opens a new window + (let* ((url (browse-url-encode-url url)) + (process-environment (browse-url-process-environment))) + (message "Playing %s in mpv..." url) + (apply #'start-process + (concat "mpv " url) nil + "mpv" + (append + browse-url-mpv-arguments + (list url))))) + + (defvar browse-url-feh-arguments '("--auto-zoom" + "--geometry" "800x600") + "Arguments to pass to feh in `browse-url-feh'.") + + (defun browse-url-feh (url &optional new-window) + "Open `URL' in feh." + (interactive (browse-url-interactive-arg "Video URL: ")) + (ignore new-window) ;; mpv always opens a new window + (let* ((url (browse-url-encode-url url)) + (process-environment (browse-url-process-environment))) + (message "Opening %s in feh..." url) + (apply #'start-process + (concat "feh " url) nil + "feh" + (append + browse-url-feh-arguments + (list url))))) + ;; `browse-url-browser-function' as an alist is deprecated in Emacs 28 for ;; `browse-url-handlers'. (set-default (if (version<= emacs-version "28") 'browse-url-browser-function 'browse-url-handlers) - '(("." . eww-browse-url))) + `(,(when (executable-find "feh") + '("\\.jpe?g\\'" . browse-url-feh)) + ,(when (executable-find "mpv") + '("youtube\\.com\\|youtu\\.be" . browse-url-mpv)) + ("." . eww-browse-url))) ;; Buttonize gemini:// links. (acdw/add-button-url-regexp-protocol "gemini")) -- cgit 1.4.1-21-gabe81