From 313f975a2fb4c19c4d5edf81f5ce9769fd6d2027 Mon Sep 17 00:00:00 2001 From: coljamkop Date: Wed, 15 Nov 2017 05:43:53 -0700 Subject: [PATCH] Add eww layer A spacemacs layer that adds: - Improved spacemacs functionality to eww-mode - Evil keybindings to eww-mode (including eww-buffers/bookmarks/history-mode) - Improved eww buffer management with key bindings --- layers/+web/eww/README.org | 78 ++++++++++++++++++++++ layers/+web/eww/funcs.el | 49 ++++++++++++++ layers/+web/eww/img/eww.png | Bin 0 -> 18069 bytes layers/+web/eww/packages.el | 125 ++++++++++++++++++++++++++++++++++++ 4 files changed, 252 insertions(+) create mode 100644 layers/+web/eww/README.org create mode 100644 layers/+web/eww/funcs.el create mode 100644 layers/+web/eww/img/eww.png create mode 100644 layers/+web/eww/packages.el diff --git a/layers/+web/eww/README.org b/layers/+web/eww/README.org new file mode 100644 index 000000000..8c6f557aa --- /dev/null +++ b/layers/+web/eww/README.org @@ -0,0 +1,78 @@ +#+TITLE: eww layer + +# The maximum height of the logo should be 200 pixels. +[[file:img/eww.png]] + +# TOC links should be GitHub style anchors. +* Table of Contents :TOC_4_gh:noexport: + - [[#description][Description]] + - [[#install][Install]] + - [[#key-bindings][Key bindings]] + - [[#eww][Eww]] + - [[#eww-history][Eww History]] + - [[#eww-bookmarks][Eww Bookmarks]] + - [[#eww-buffers][Eww Buffers]] + +* Description +This layer does wonderful things: + - Adds evil keybindings support to eww-mode (including + eww-buffers/bookmarks/history-mode) + - Adds spacemacs functionality to eww-mode + - Adds ability to easily navigate eww buffers + +* Install +To use this configuration layer, add it to your =~/.spacemacs=. You will need to +add =eww= to the existing =dotspacemacs-configuration-layers= list in this +file. + +* Key bindings +** Eww +| Key Binding | Description | Function | +|-------------+--------------------------+----------------------------------| +| ~SPC m s~ | Search | helm-google-suggest | +| ~SPC m S~ | Search (alt) | browse-web | +| ~SPC m r~ | Reload | eww-reload | +| ~SPC m p~ | Previous URL | eww-previous-url | +| ~SPC m n~ | Next URL | eww-next-url | +| ~SPC m h~ | History | eww-list-histories | +| ~SPC m d~ | Download | eww-download | +| ~SPC m a~ | Add Bookmark | eww-add-bookmark | +| ~SPC m l o~ | List Bookmarks | eww-list-bookmarks | +| ~SPC m l b~ | List Eww Buffers | eww-list-buffers | +| ~SPC m v x~ | View in External Browser | eww-browse-with-external-browser | +| ~SPC m v f~ | Toggle Fancy Fonts | eww-toggle-fonts | +| ~SPC m v r~ | Reader View | eww-readable | +| ~H~ | Previous URL | eww-previous-url | +| ~L~ | Next URL | eww-next-url | +| ~J~ | Next Eww Buffer | eww-jump-next-buffer | +| ~K~ | Previous Eww Buffer | eww-jump-previous-buffer | +| ~C-j~ | Next Link | shr-next-link | +| ~C-k~ | Previous Link | shr-previous-link | +| ~f~ | Follow Link | eww-follow-link | +| ~F~ | Follow Link New Buffer | eww-follow-link | +| ~o~ | Follow Link (avy/ace) | eww-follow-link | +** Eww History +| ~SPC m f~ | Open History | eww-history-browse | +| ~f~ | Open History | eww-history-browse | +** Eww Bookmarks +| ~SPC m f~ | Open Bookmark | eww-bookmark-browse | +| ~SPC m d~ | Delete Bookmark | eww-bookmark-kill | +| ~SPC m y~ | Yank Bookmark | eww-yank-bookmark | +| ~f~ | Open Bookmark | eww-bookmark-browse | +| ~d~ | Delete Bookmark | eww-bookmark-kill | +| ~y~ | Yank Bookmark | eww-yank-bookmark | +** Eww Buffers +| ~SPC m f~ | Open Buffer | eww-buffer-select | +| ~SPC m d~ | Delete Buffer | eww-buffer-kill | +| ~SPC m n~ | Next Buffer | eww-buffer-show-next | +| ~SPC m p~ | Previous Buffer | eww-buffer-show-previous | +| ~f~ | Open Buffer | eww-buffer-select | +| ~d~ | Delete Buffer | eww-buffer-kill | +| ~n~ | Next Buffer | eww-buffer-show-next | +| ~p~ | Previous Buffer | eww-buffer-show-previous | + +# Use GitHub URLs if you wish to link a Spacemacs documentation file or its heading. +# Examples: +# [[https://github.com/syl20bnr/spacemacs/blob/master/doc/VIMUSERS.org#sessions]] +# [[https://github.com/syl20bnr/spacemacs/blob/master/layers/%2Bfun/emoji/README.org][Link to Emoji layer README.org]] +# If space-doc-mode is enabled, Spacemacs will open a local copy of the linked file. diff --git a/layers/+web/eww/funcs.el b/layers/+web/eww/funcs.el new file mode 100644 index 000000000..c7db4fbc2 --- /dev/null +++ b/layers/+web/eww/funcs.el @@ -0,0 +1,49 @@ +;;; funcs.el --- eww layer packages file for Spacemacs. +;; +;; Copyright (c) 2012-2017 Sylvain Benner & Contributors +;; +;; Author: Colton Kopsa +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +(defvar spacemacs--eww-buffers nil) + +(defun spacemacs//eww-get-buffers () + (dolist (buffer (buffer-list)) + (with-current-buffer buffer + (when (and (derived-mode-p 'eww-mode) + (not (memq buffer spacemacs--eww-buffers))) + (push buffer + spacemacs--eww-buffers)))) + (unless spacemacs--eww-buffers + (error "No eww buffers")) + ;; remove deleted buffers maintaining order + (dolist (buffer spacemacs--eww-buffers) + (if (not (memq buffer (buffer-list))) + (delq buffer spacemacs--eww-buffers))) + spacemacs--eww-buffers) + +(defun spacemacs//eww-next-buffer (buff) + (let* ((eww-buffers (spacemacs//eww-get-buffers)) + (eww-buffer-pos (seq-position eww-buffers buff))) + (if (eq eww-buffer-pos (1- (length eww-buffers))) + (car eww-buffers) + (nth (1+ eww-buffer-pos) eww-buffers)))) + +(defun spacemacs//eww-previous-buffer (buff) + (let* ((eww-buffers (spacemacs//eww-get-buffers)) + (eww-buffer-pos (seq-position eww-buffers buff))) + (if (zerop eww-buffer-pos) + (car (last eww-buffers)) + (nth (1- eww-buffer-pos) eww-buffers)))) + +(defun spacemacs/eww-jump-next-buffer () + (interactive) + (pop-to-buffer-same-window (spacemacs//eww-next-buffer (current-buffer)))) + +(defun spacemacs/eww-jump-previous-buffer () + (interactive) + (pop-to-buffer-same-window (spacemacs//eww-previous-buffer (current-buffer)))) diff --git a/layers/+web/eww/img/eww.png b/layers/+web/eww/img/eww.png new file mode 100644 index 0000000000000000000000000000000000000000..ec595319add326028a230579bf1a7567f08ab3f7 GIT binary patch literal 18069 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 literal 0 HcmV?d00001 diff --git a/layers/+web/eww/packages.el b/layers/+web/eww/packages.el new file mode 100644 index 000000000..880a4858d --- /dev/null +++ b/layers/+web/eww/packages.el @@ -0,0 +1,125 @@ +;;; packages.el --- eww layer packages file for Spacemacs. +;; +;; Copyright (c) 2012-2017 Sylvain Benner & Contributors +;; +;; Author: Colton Kopsa +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +;;; Commentary: + +;; See the Spacemacs documentation and FAQs for instructions on how to implement +;; a new layer: +;; +;; SPC h SPC layers RET +;; +;; +;; Briefly, each package to be installed or configured by this layer should be +;; added to `eww-packages'. Then, for each package PACKAGE: +;; +;; - If PACKAGE is not referenced by any other Spacemacs layer, define a +;; function `eww/init-PACKAGE' to load and initialize the package. + +;; - Otherwise, PACKAGE is already referenced by another Spacemacs layer, so +;; define the functions `eww/pre-init-PACKAGE' and/or +;; `eww/post-init-PACKAGE' to customize the package as it is loaded. + +;;; Code: + +(defconst eww-packages + '( + ;; A local package + (eww :location built-in) + ;; (ace-link :location elpa) + ;; (helm-net :location elpa) + ) + "The list of Lisp packages required by the eww layer. + +Each entry is either: + +1. A symbol, which is interpreted as a package to be installed, or + +2. A list of the form (PACKAGE KEYS...), where PACKAGE is the + name of the package to be installed or loaded, and KEYS are + any number of keyword-value-pairs. + + The following keys are accepted: + + - :excluded (t or nil): Prevent the package from being loaded + if value is non-nil + + - :location: Specify a custom installation location. + The following values are legal: + + - The symbol `elpa' (default) means PACKAGE will be + installed using the Emacs package manager. + + - The symbol `local' directs Spacemacs to load the file at + `./local/PACKAGE/PACKAGE.el' + + - A list beginning with the symbol `recipe' is a melpa + recipe. See: https://github.com/milkypostman/melpa#recipe-format") + +(defun eww/init-eww () + (progn + (dolist (mode '(eww-mode)) + (eval-after-load "eww" + '(progn + (define-key eww-link-keymap "f" 'eww-follow-link) + (define-key eww-link-keymap "F" (lambda () (interactive) (eww-follow-link 2))))) + (spacemacs/declare-prefix-for-mode mode "mv" "view") + (spacemacs/declare-prefix-for-mode mode "ml" "list") + (spacemacs/set-leader-keys-for-major-mode mode + "s" 'helm-google-suggest + "S" 'browse-web + "r" 'eww-reload + "p" 'eww-previous-url + "n" 'eww-next-url + "h" 'eww-list-histories + "d" 'eww-download + "a" 'eww-add-bookmark + "lb" 'eww-list-buffers + "lo" 'eww-list-bookmarks + "vx" 'eww-browse-with-external-browser + "vf" 'eww-toggle-fonts + "vr" 'eww-readable) + (evil-define-key 'normal eww-mode-map + "H" 'eww-back-url + "J" 'spacemacs/eww-jump-next-buffer + "K" 'spacemacs/eww-jump-previous-buffer + "L" 'eww-forward-url + (kbd "C-j") 'shr-next-link + (kbd "C-k") 'shr-previous-link + "o" 'ace-link-eww) + (dolist (mode '(eww-history-mode)) + (spacemacs/set-leader-keys-for-major-mode mode + "f" 'eww-history-browse) + (evil-define-key 'normal eww-history-mode-map "f" 'eww-history-browse + "q" 'quit-window) + (dolist (mode '(eww-bookmark-mode)) + (spacemacs/set-leader-keys-for-major-mode mode + "d" 'eww-bookmark-kill + "y" 'eww-bookmark-yank + "f" 'eww-bookmark-browse) + (evil-define-key 'normal eww-bookmark-mode-map + "q" 'quit-window + "f" 'eww-bookmark-browse + "d" 'eww-bookmark-kill + "y" 'eww-bookmark-yank) + (dolist (mode '(eww-buffers-mode)) + (spacemacs/set-leader-keys-for-major-mode mode + "f" 'eww-buffer-select + "d" 'eww-buffer-kill + "n" 'eww-buffer-show-next + "p" 'eww-buffer-show-previous) + (evil-define-key 'normal eww-buffers-mode-map + "q" 'quit-window + "f" 'eww-buffer-select + "d" 'eww-buffer-kill + "n" 'eww-buffer-show-next + "p" 'eww-buffer-show-previous) + )))))) +;;; packages.el ends here