blob: 7f8c97c2b9c5a14b6e36e85e1d4d01d4e32bd18d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
;;; $DOOMDIR/+eww.el -*- lexical-binding: t; -*-
(setq eww-search-prefix "https://ecosia.org/search?q=")
(setq eww-download-directory (expand-file-name "~/Downloads/"))
(defun my-browse-url-mpv (url &rest _args)
"Open URL in mpv."
(start-process "mpv" nil "mpv" url))
(defun my-browse-url-pdf (url &rest _args)
"Fetch remote PDF and open in pdf-tools within Emacs."
(let ((tmp (make-temp-file "emacs-pdf-" nil ".pdf")))
(url-copy-file url tmp t)
(find-file-other-window tmp)
(pdf-view-mode)))
(setq browse-url-handlers
'(("\\(youtube\\.com\\|youtu\\.be\\|vimeo\\.com\\|twitch\\.tv\\)" . my-browse-url-mpv)
("\\.mp4$" . my-browse-url-mpv)
("\\.pdf$" . my-browse-url-pdf)
("^gemini://" . elpher-browse-url-elpher)
("^gopher://" . elpher-browse-url-elpher)
("." . eww-browse-url)))
;; Keep your fallback setting
(setq browse-url-secondary-browser-function 'browse-url-generic
browse-url-generic-program "chromium")
(with-eval-after-load 'eww
(define-key eww-mode-map (kbd "=") #'text-scale-increase)
(define-key eww-mode-map (kbd "-") #'text-scale-decrease)
(define-key eww-mode-map (kbd "0") #'text-scale-adjust))
(setq shr-width 100)
(setq shr-max-width 120)
(setq shr-indentation 4)
(setq shr-use-fonts nil)
(setq shr-max-image-size '(800 . 600))
(setq shr-image-animate t)
(defun my/eww-download-image-at-point ()
"Download image at point to `eww-download-directory'."
(interactive)
(let ((url (or (get-text-property (point) 'image-url)
(get-text-property (point) 'shr-url))))
(if (not url)
(message "No image at point")
(let* ((filename (file-name-nondirectory (url-filename (url-generic-parse-url url))))
(dest (expand-file-name filename eww-download-directory)))
(url-copy-file url dest t)
(message "Saved: %s" dest)))))
;; Keybinds
(with-eval-after-load 'eww
(define-key eww-mode-map (kbd "b") #'eww-back-url)
(define-key eww-mode-map (kbd "a") #'eww-add-bookmark)
(define-key eww-mode-map (kbd "U") #'shr-copy-url)
(define-key eww-mode-map (kbd "D") #'my/eww-download-image-at-point)
(evil-define-key 'normal eww-mode-map
"b" #'eww-back-url
"a" #'eww-add-bookmark
"U" #'shr-copy-url
"D" #'my/eww-download-image-at-point))
(provide 'browser)
|