aboutsummaryrefslogtreecommitdiff
path: root/+eww.el
diff options
context:
space:
mode:
Diffstat (limited to '+eww.el')
-rw-r--r--+eww.el66
1 files changed, 66 insertions, 0 deletions
diff --git a/+eww.el b/+eww.el
new file mode 100644
index 0000000..7f8c97c
--- /dev/null
+++ b/+eww.el
@@ -0,0 +1,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)