diff options
author | Case Duckworth | 2021-06-09 21:48:11 -0500 |
---|---|---|
committer | Case Duckworth | 2021-06-09 21:48:11 -0500 |
commit | 04d97d3dacd14503e9f9736d735f7e8ba1e3308a (patch) | |
tree | a516a58c5f4ebda0e00ea151f612b549b208ca42 | |
parent | Change ERC config (diff) | |
download | emacs-04d97d3dacd14503e9f9736d735f7e8ba1e3308a.tar.gz emacs-04d97d3dacd14503e9f9736d735f7e8ba1e3308a.zip |
Add browse-url functions
I should break this out into a thingy.
-rw-r--r-- | init.el | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/init.el b/init.el index 73a7c5d..48dd80c 100644 --- a/init.el +++ b/init.el | |||
@@ -89,12 +89,51 @@ | |||
89 | browse-url-firefox-arguments '("--new-tab") ; for firefox | 89 | browse-url-firefox-arguments '("--new-tab") ; for firefox |
90 | browse-url-firefox-new-window-is-tab t) | 90 | browse-url-firefox-new-window-is-tab t) |
91 | 91 | ||
92 | (defvar browse-url-mpv-arguments nil | ||
93 | "Arguments to pass to mpv in `browse-url-mpv'.") | ||
94 | |||
95 | (defun browse-url-mpv (url &optional new-window) | ||
96 | "Play `URL' in mpv." | ||
97 | (interactive (browse-url-interactive-arg "Video URL: ")) | ||
98 | (ignore new-window) ;; mpv always opens a new window | ||
99 | (let* ((url (browse-url-encode-url url)) | ||
100 | (process-environment (browse-url-process-environment))) | ||
101 | (message "Playing %s in mpv..." url) | ||
102 | (apply #'start-process | ||
103 | (concat "mpv " url) nil | ||
104 | "mpv" | ||
105 | (append | ||
106 | browse-url-mpv-arguments | ||
107 | (list url))))) | ||
108 | |||
109 | (defvar browse-url-feh-arguments '("--auto-zoom" | ||
110 | "--geometry" "800x600") | ||
111 | "Arguments to pass to feh in `browse-url-feh'.") | ||
112 | |||
113 | (defun browse-url-feh (url &optional new-window) | ||
114 | "Open `URL' in feh." | ||
115 | (interactive (browse-url-interactive-arg "Video URL: ")) | ||
116 | (ignore new-window) ;; mpv always opens a new window | ||
117 | (let* ((url (browse-url-encode-url url)) | ||
118 | (process-environment (browse-url-process-environment))) | ||
119 | (message "Opening %s in feh..." url) | ||
120 | (apply #'start-process | ||
121 | (concat "feh " url) nil | ||
122 | "feh" | ||
123 | (append | ||
124 | browse-url-feh-arguments | ||
125 | (list url))))) | ||
126 | |||
92 | ;; `browse-url-browser-function' as an alist is deprecated in Emacs 28 for | 127 | ;; `browse-url-browser-function' as an alist is deprecated in Emacs 28 for |
93 | ;; `browse-url-handlers'. | 128 | ;; `browse-url-handlers'. |
94 | (set-default (if (version<= emacs-version "28") | 129 | (set-default (if (version<= emacs-version "28") |
95 | 'browse-url-browser-function | 130 | 'browse-url-browser-function |
96 | 'browse-url-handlers) | 131 | 'browse-url-handlers) |
97 | '(("." . eww-browse-url))) | 132 | `(,(when (executable-find "feh") |
133 | '("\\.jpe?g\\'" . browse-url-feh)) | ||
134 | ,(when (executable-find "mpv") | ||
135 | '("youtube\\.com\\|youtu\\.be" . browse-url-mpv)) | ||
136 | ("." . eww-browse-url))) | ||
98 | 137 | ||
99 | ;; Buttonize gemini:// links. | 138 | ;; Buttonize gemini:// links. |
100 | (acdw/add-button-url-regexp-protocol "gemini")) | 139 | (acdw/add-button-url-regexp-protocol "gemini")) |