summaryrefslogtreecommitdiffhomepage
path: root/attic
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2021-04-17 23:16:19 +0100
committerjao <jao@gnu.org>2021-04-17 23:16:19 +0100
commit8ea756c5d0ff541d33fb1be56d4c53a0b12f90e4 (patch)
tree07dc3a8576f28b774e9f5ff826548a442fe94d80 /attic
parent3d6a8ed794357e9764fe7281c2070601be6daae0 (diff)
downloadelibs-8ea756c5d0ff541d33fb1be56d4c53a0b12f90e4.tar.gz
elibs-8ea756c5d0ff541d33fb1be56d4c53a0b12f90e4.tar.bz2
configurable MUA in afio
Diffstat (limited to 'attic')
-rw-r--r--attic/w3m.org156
1 files changed, 156 insertions, 0 deletions
diff --git a/attic/w3m.org b/attic/w3m.org
new file mode 100644
index 0000000..e1229ab
--- /dev/null
+++ b/attic/w3m.org
@@ -0,0 +1,156 @@
+#+title: Customizations for emacs-w3m
+
+* browse-url and afio
+ #+begin_src emacs-lisp
+ (defun jao-w3m-find-url (url)
+ (let* ((url (w3m-canonicalize-url url))
+ (fn `(lambda (b)
+ (with-current-buffer b
+ (string= ,url (w3m-canonicalize-url w3m-current-url))))))
+ (when-let (b (seq-find fn (w3m-list-buffers)))
+ (pop-to-buffer b))))
+
+ (defun jao-w3m-browse-url (url &rest r)
+ (jao-afio--goto-www)
+ (select-window (frame-first-window))
+ (or (jao-w3m-find-url url)
+ (w3m-goto-url-new-session url)))
+
+ (defun jao-w3m-download (arg)
+ (interactive "P")
+ (jao-download (w3m-anchor) arg))
+
+ (setq jao-afio-use-w3m t)
+ (setq jao-browse-url-function 'jao-w3m-browse-url)
+ #+end_src
+* Org integration
+ #+begin_src emacs-lisp
+ (defun jao-w3m-get-link ()
+ (let ((wb (w3m-alive-p)))
+ (when wb
+ (let ((url (with-current-buffer wb w3m-current-url))
+ (title (w3m-buffer-title wb)))
+ (cons url title)))))
+
+ (defun jao-insert-w3m-link ()
+ (interactive)
+ (let ((link (jao-w3m-get-link)))
+ (when link (insert "[[" (car link) "][" (cdr link) "]]"))))
+
+ (with-eval-after-load "org"
+ (require 'ol-w3m nil t)
+ (define-key org-mode-map "\C-cW" 'jao-insert-w3m-link))
+ #+end_src
+* Capture page
+ #+begin_src emacs-lisp
+ (defun jao-w3m-capture-page ()
+ (interactive)
+ (let* ((title (w3m-current-title))
+ (url w3m-current-url)
+ (html (y-or-n-p "Save as HTML (y) or PS (n)? "))
+ (basename (concat (read-string "File name: ")
+ (if html ".html" ".ps")))
+ (name (expand-file-name basename jao-sink-dir)))
+ (if html
+ (progn
+ (w3m-view-source)
+ (write-region (point-min) (point-max) name nil nil nil t)
+ (w3m-view-source))
+ (progn
+ (split-window-horizontally 85)
+ (w3m-redisplay-this-page)
+ (ps-print-buffer name)
+ (delete-other-windows)
+ (w3m-redisplay-this-page)))
+ (kill-new (format "[[doc:%s][%s]] ([[%s][original]])"
+ basename title url))))
+ #+end_src
+* Email
+ #+begin_src emacs-lisp
+ (defun jao-w3m-gnus-html-renderer (handle)
+ (let ((w3m-message-silent t)
+ (mm-w3m-safe-url-regexp nil)
+ (shr-use-colors nil)
+ (shr-use-fonts nil)
+ (fill-column (min (window-width) 110)))
+ (condition-case nil
+ (mm-inline-text-html-render-with-w3m handle)
+ (error (delete-region (point) (point-max))
+ (mm-shr handle)))))
+
+ (setq mm-text-html-renderer #'jao-w3m-gnus-html-renderer)
+
+ (with-eval-after-load "gnus-art"
+ (define-key gnus-article-mode-map "\C-ci" 'w3m-view-image)
+ (define-key gnus-article-mode-map "z" 'w3m-lnum-zoom-in-image))
+ #+end_src
+* Package
+ #+begin_src emacs-lisp
+ (use-package w3m
+ :ensure t
+ :custom ((w3m-key-binding 'info)
+ (w3m-display-mode 'dual-pane))
+ :init
+ (setq w3m-add-user-agent nil
+ w3m-command "w3m"
+ w3m-confirm-leaving-secure-page nil
+ w3m-cookie-accept-bad-cookies t
+ w3m-cookie-accept-domains '(".github.com"
+ ".librarything.com"
+ ".goodreads.com"
+ ".sr.ht"
+ ".gnu.org"
+ ".codeberg.org"
+ "codeberg.org"
+ ".bookshop.org"
+ ".reddit.com")
+ w3m-cookie-reject-domains '(".")
+ w3m-do-cleanup-temp-files t
+ w3m-fill-column 110
+ w3m-goto-article-function 'jao-w3m-browse-url
+ w3m-form-input-textarea-buffer-lines 40
+ w3m-history-minimize-in-new-session t
+ w3m-history-reuse-history-elements nil
+ w3m-image-no-idle-timer t
+ w3m-make-new-session t
+ w3m-profile-directory "~/.w3m"
+ w3m-redisplay-pages-automatically-p t
+ w3m-resize-images t
+ w3m-safe-url-regexp nil
+ w3m-search-default-engine "duckduckgo" ; "google-en"
+ w3m-select-buffer-horizontal-window nil
+ w3m-select-buffer-window-ratio '(20 . 40)
+ w3m-session-load-last-sessions t
+ w3m-session-load-crashed-sessions 'ask
+ w3m-show-graphic-icons-in-header-line nil
+ w3m-show-graphic-icons-in-mode-line nil
+ w3m-space-before-favicon "|"
+ w3m-use-tab nil
+ w3m-use-tab-line nil
+ w3m-use-title-buffer-name t
+ w3m-use-cookies t
+ w3m-use-filter nil
+ w3m-use-favicon nil
+ w3m-use-header-line nil
+ w3m-use-refresh nil
+ w3m-use-symbol t)
+
+ :config
+ :bind (:map w3m-mode-map
+ (("+" . w3m-zoom-in-image)
+ ("-" . w3m-zoom-out-image)
+ ("C-c C-@" . tracking-next-buffer)
+ ("C-c C-SPC" . tracking-next-buffer)
+ ("C-c C-b" . nil)
+ ("C-c c" . jao-w3m-capture-page)
+ ("b" . w3m-view-previous-page)
+ ("B" . w3m-view-next-page)
+ ("c" . w3m-print-this-url)
+ ("d" . jao-w3m-download)
+ ("D" . w3m-download)
+ ("f" . w3m-lnum-follow)
+ ("v" . jao-view-video)
+ ("w" . org-w3m-copy-for-org-mode)
+ ("x" . jao-rss-subscribe-rss)
+ ("y" . w3m-print-current-url))))
+ #+end_src