add stuff for eww
authorJoerg Jaspert <joerg@debian.org>
Mon, 3 Oct 2016 20:19:29 +0000 (22:19 +0200)
committerJoerg Jaspert <joerg@debian.org>
Mon, 3 Oct 2016 20:19:29 +0000 (22:19 +0200)
.emacs.d/config/emacs.org
.emacs.d/elisp/local/ganneff-gnus.el
.emacs.d/elisp/local/ganneff.el
.emacs.d/elisp/local/loaddefs.el

index 8104b1d..38dd1db 100644 (file)
@@ -2057,7 +2057,184 @@ Proper whitespace handling
   :init
   (global-ethan-wspace-mode 1))
 #+END_SRC
+** Eww - Emacs browser
+[2016-10-03 Mo 21:30]
+#+BEGIN_SRC emacs-lisp :tangle yes
+;; Time-stamp: <2016-07-08 18:22:46 kmodi>
+
+;; Eww - Emacs browser (needs emacs 24.4 or higher)
 
+(use-package eww
+  :bind ( ("M-s M-w" . eww-search-words))
+  :config
+  (progn
+    ;; (setq eww-search-prefix                 "https://duckduckgo.com/html/?q=")
+    (setq eww-search-prefix                 "https://www.google.com/search?q=")
+    (setq eww-download-directory            "~/Downloads")
+    ;; (setq eww-form-checkbox-symbol          "[ ]")
+    (setq eww-form-checkbox-symbol          "☐") ; Unicode hex 2610
+    ;; (setq eww-form-checkbox-selected-symbol "[X]")
+    (setq eww-form-checkbox-selected-symbol "☑") ; Unicode hex 2611
+    ;; Improve the contract of pages like Google results
+    ;; http://emacs.stackexchange.com/q/2955/115
+    (setq shr-color-visible-luminance-min 80) ; default = 40
+
+    ;; Auto-rename new eww buffers
+    ;; http://ergoemacs.org/emacs/emacs_eww_web_browser.html
+    (defun xah-rename-eww-hook ()
+      "Rename eww browser's buffer so sites open in new page."
+      (rename-buffer "eww" t))
+    (add-hook 'eww-mode-hook #'xah-rename-eww-hook)
+
+    ;; If the current buffer is an eww buffer, "M-x eww" will always reuse the
+    ;; current buffer to load the new page. Below advice will make "C-u M-x eww"
+    ;; force a new eww buffer even when the current buffer is an eww buffer.
+    ;; The above `xah-rename-eww-hook' fix is still needed in order to create
+    ;; uniquely named eww buffers.
+    ;; http://emacs.stackexchange.com/a/24477/115
+    (defun modi/force-new-eww-buffer (orig-fun &rest args)
+      "When prefix argument is used, a new eww buffer will be created.
+This is regardless of whether the current buffer is an eww buffer. "
+      (if current-prefix-arg
+          (with-temp-buffer
+            (apply orig-fun args))
+        (apply orig-fun args)))
+    (advice-add 'eww :around #'modi/force-new-eww-buffer)
+
+    ;; Override the default definition of `eww-search-words'
+    (defun eww-search-words (&optional beg end)
+      "Search the web for the text between the point and marker.
+See the `eww-search-prefix' variable for the search engine used."
+      (interactive "r")
+      (if (use-region-p)
+          (eww (buffer-substring beg end))
+        (eww (modi/get-symbol-at-point))))
+
+    ;; eww-lnum
+    ;; https://github.com/m00natic/eww-lnum
+    (use-package eww-lnum
+      :ensure t
+      :bind (:map eww-mode-map
+             ("f" . eww-lnum-follow)
+             ("U" . eww-lnum-universal)))
+
+    ;; org-eww
+    ;; Copy text from html page for pasting in org mode file/buffer
+    ;; e.g. Copied HTML hyperlinks get converted to [[link][desc]] for org mode.
+    ;; http://emacs.stackexchange.com/a/8191/115
+    (use-package org-eww
+      :bind (:map eww-mode-map
+             ("o" . org-eww-copy-for-org-mode)))
+
+    ;; Auto-refreshing eww buffer whenever the html file it's showing changes
+    ;; http://emacs.stackexchange.com/a/2566/115
+    (defvar modi/eww--file-notify-descriptors-list ()
+      "List to store file-notify descriptor for all files that have an
+associated auto-reloading eww buffer.")
+
+    (defun modi/advice-eww-open-file-to-auto-reload (orig-fun &rest args)
+      "When `eww-open-file' is called with \\[universal-argument], open
+the file in eww and also add `file-notify' watch for it so that the eww
+buffer auto-reloads when the HTML file changes."
+      (prog1
+          (apply orig-fun args)
+        (when current-prefix-arg ; C-u M-x eww-open-file
+          (require 'filenotify)
+          (let ((file-name (car args)))
+            (file-notify-add-watch file-name
+                                   '(change attribute-change)
+                                   #'modi/file-notify-callback-eww-reload)
+            ;; Show the HTML file and its rendered form in eww side-by-side
+            (find-file-other-window file-name))
+          ;; Redefine the `q' binding in `eww-mode-map'
+          (bind-key "q" #'modi/eww-quit-and-update-fn-descriptors eww-mode-map))))
+    (advice-add 'eww-open-file :around #'modi/advice-eww-open-file-to-auto-reload)
+
+    (defun modi/file-notify-callback-eww-reload (event)
+      "On getting triggered, switch to the eww buffer, reload and switch
+back to the working buffer. Also save the `file-notify-descriptor' of the
+triggering event."
+      (let* ((working-buffer (buffer-name)))
+        (switch-to-buffer-other-window "eww")
+        (eww-reload)
+        (switch-to-buffer-other-window working-buffer))
+      ;; `(car event)' will return the event descriptor
+      (add-to-list 'modi/eww--file-notify-descriptors-list (car event)))
+
+    (defun modi/eww-quit-and-update-fn-descriptors ()
+      "When quitting `eww', first remove any saved file-notify descriptors
+specific to eww, while also updating `modi/eww--file-notify-descriptors-list'."
+      (interactive)
+      (dotimes (index (safe-length modi/eww--file-notify-descriptors-list))
+        (file-notify-rm-watch (pop modi/eww--file-notify-descriptors-list)))
+      (quit-window :kill))
+
+    (bind-keys
+     :map eww-mode-map
+      (":" . eww) ; Go to URL
+      ("h" . eww-list-histories)) ; View history
+
+    ;; Make the binding for `revert-buffer' do `eww-reload' in eww-mode
+    (define-key eww-mode-map [remap revert-buffer] #'eww-reload)
+    (bind-keys
+     :map eww-text-map ; For single line text fields
+      ("<backtab>"  . shr-previous-link) ; S-TAB Jump to previous link on the page
+      ("<C-return>" . eww-submit)) ; S-TAB Jump to previous link on the page
+    (bind-keys
+     :map eww-textarea-map ; For multi-line text boxes
+      ("<backtab>"  . shr-previous-link) ; S-TAB Jump to previous link on the page
+      ("<C-return>" . eww-submit)) ; S-TAB Jump to previous link on the page
+    (bind-keys
+     :map eww-checkbox-map
+      ("<down-mouse-1>" . eww-toggle-checkbox))
+    (bind-keys
+     :map shr-map
+      ("w" . modi/eww-copy-url-dwim))
+    (bind-keys
+     :map eww-link-keymap
+      ("w" . modi/eww-copy-url-dwim))))
+
+;; Default eww key bindings
+;; |-----------+---------------------------------------------------------------------|
+;; | Key       | Function                                                            |
+;; |-----------+---------------------------------------------------------------------|
+;; | &         | Browse the current URL with an external browser.                    |
+;; | -         | Begin a negative numeric argument for the next command.             |
+;; | 0 .. 9    | Part of the numeric argument for the next command.                  |
+;; | C         | Display a buffer listing the current URL cookies, if there are any. |
+;; | H         | List the eww-histories.                                             |
+;; | F         | Toggle font between variable-width and fixed-width.                 |
+;; | G         | Go to a URL                                                         |
+;; | R         | Readable mode                                                       |
+;; | S         | List eww buffers                                                    |
+;; | d         | Download URL under point to `eww-download-directory'.               |
+;; | g         | Reload the current page.                                            |
+;; | q         | Quit WINDOW and bury its buffer.                                    |
+;; | v         | `eww-view-source'                                                   |
+;; | w         | `eww-copy-page-url'                                                 |
+;; |-----------+---------------------------------------------------------------------|
+;; | b         | Add the current page to the bookmarks.                              |
+;; | B         | Display the bookmark list.                                          |
+;; | M-n       | Visit the next bookmark                                             |
+;; | M-p       | Visit the previous bookmark                                         |
+;; |-----------+---------------------------------------------------------------------|
+;; | t         | Go to the page marked `top'.                                        |
+;; | u         | Go to the page marked `up'.                                         |
+;; |-----------+---------------------------------------------------------------------|
+;; | n         | Go to the page marked `next'.                                       |
+;; | p         | Go to the page marked `previous'.                                   |
+;; |-----------+---------------------------------------------------------------------|
+;; | l         | Go to the previously displayed page.                                |
+;; | r         | Go to the next displayed page.                                      |
+;; |-----------+---------------------------------------------------------------------|
+;; | TAB       | Move point to next link on the page.                                |
+;; | S-TAB     | Move point to previous link on the page.                            |
+;; |-----------+---------------------------------------------------------------------|
+;; | SPC       | Scroll up                                                           |
+;; | DEL/Bkspc | Scroll down                                                         |
+;; | S-SPC     | Scroll down                                                         |
+;; |-----------+---------------------------------------------------------------------|
+#+END_SRC
 ** expand-region
 [2014-06-01 Sun 15:16]
 #+BEGIN_SRC emacs-lisp
index 45993b1..2419b26 100644 (file)
   (format-time-string "%d.%m.%y, %R"
                      (gnus-date-get-time (mail-header-date header))))
 
+;;;###autoload
+(defun gnus-user-format-function-j (headers)
+  (let ((to (gnus-extra-header 'To headers)))
+    (if (string-match gnus-ignored-from-addresses to)
+        (if (string-match "," to) "~" "»")
+        (if (or (string-match gnus-ignored-from-addresses
+                              (gnus-extra-header 'Cc headers))
+                (string-match gnus-ignored-from-addresses
+                              (gnus-extra-header 'BCc headers)))
+            "~"
+          " "))))
+
 ;;** Ich will jeder Nachricht/Mail Header beifügen. Dies tu ich mit Aufruf dieser Funktion.
 ;;;###autoload
 (defun my-message-add-content ()
index a7c9a39..139efdd 100644 (file)
@@ -331,6 +331,17 @@ Toggles between: “all lower”, “Init Caps”, “ALL CAPS”."
     )
   )
 
+;;;###autoload
+;;; Get symbol at point
+;; https://github.com/Wilfred/ag.el
+(defun modi/get-symbol-at-point ()
+  "If there's an active selection, return that.
+Otherwise, get the symbol at point, as a string."
+  (cond ((use-region-p)
+         (buffer-substring-no-properties (region-beginning) (region-end)))
+        ((symbol-at-point)
+         (substring-no-properties
+          (symbol-name (symbol-at-point))))))
 
 (provide 'ganneff)
 
index ff0b0e7..8032175 100644 (file)
@@ -1,6 +1,7 @@
 ;;
 \f
-;;;### (autoloads nil "bind-key" "bind-key.el" (0 0 0 0))
+;;;### (autoloads nil "bind-key" "bind-key.el" (22508 15715 689995
+;;;;;;  254000))
 ;;; Generated autoloads from bind-key.el
 
 (autoload 'bind-key "bind-key" "\
@@ -58,11 +59,41 @@ Display all the personal keybindings defined by `bind-key'.
 
 \(fn)" t nil)
 
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "bind-key" '("compare-keybindings" "get-binding-description" "bind-key" "personal-keybindings" "override-global-m")))
+;;;***
+\f
+;;;### (autoloads nil "cal" "cal.el" (21399 26834 209479 715000))
+;;; Generated autoloads from cal.el
+
+(autoload 'cal/insert "cal" "\
+Insert a calendar for the given YEAR and MONTH.
+
+\(fn YEAR MONTH)" t nil)
 
 ;;;***
 \f
-;;;### (autoloads nil "ganneff" "ganneff.el" (0 0 0 0))
+;;;### (autoloads nil "diff-mode-" "diff-mode-.el" (22509 31894 612351
+;;;;;;  592000))
+;;; Generated autoloads from diff-mode-.el
+
+(defface diff-file1-hunk-header '((((background dark)) (:foreground "Yellow" :background "#3E3E00003E3E")) (t (:foreground "Blue" :background "DarkSeaGreen1"))) "\
+Face used to highlight a diff hunk for the first `diff' argument." :group (quote diff-mode))
+
+(defface diff-file2-hunk-header '((((background dark)) (:foreground "Cyan" :background "#111117175555")) (t (:foreground "Red" :background "PaleGoldenrod"))) "\
+Face used to highlight a diff hunk for the second `diff' argument." :group (quote diff-mode))
+
+(defface diff-indicator-changed '((((background dark)) (:foreground "#111117175555" :background "Yellow")) (t (:foreground "PaleGoldenrod" :background "MediumBlue"))) "\
+*Face used to highlight the line-start indicator of a modified line." :group (quote diff-mode))
+
+(defface diff-indicator-added '((((background dark)) (:foreground "#111117175555" :background "#FFFF9B9BFFFF")) (t (:foreground "PaleGoldenrod" :background "DarkGreen"))) "\
+*Face used to highlight the line-start indicator of an inserted line." :group (quote diff-mode))
+
+(defface diff-indicator-removed '((((background dark)) (:foreground "#111117175555" :background "#7474FFFF7474")) (t (:foreground "PaleGoldenrod" :background "DarkMagenta"))) "\
+*Face used to highlight the line-start indicator of a removed line." :group (quote diff-mode))
+
+;;;***
+\f
+;;;### (autoloads nil "ganneff" "ganneff.el" (22514 46351 324542
+;;;;;;  109000))
 ;;; Generated autoloads from ganneff.el
 
 (autoload 'ido-disable-line-trucation "ganneff" "\
@@ -224,9 +255,16 @@ Toggles between: “all lower”, “Init Caps”, “ALL CAPS”.
 
 \(fn)" t nil)
 
+(autoload 'modi/get-symbol-at-point "ganneff" "\
+If there's an active selection, return that.
+Otherwise, get the symbol at point, as a string.
+
+\(fn)" nil nil)
+
 ;;;***
 \f
-;;;### (autoloads nil "ganneff-gnus" "ganneff-gnus.el" (0 0 0 0))
+;;;### (autoloads nil "ganneff-gnus" "ganneff-gnus.el" (22512 7842
+;;;;;;  899131 312000))
 ;;; Generated autoloads from ganneff-gnus.el
 
 (autoload 'gnus-nnimap-count-format "ganneff-gnus" "\
@@ -336,6 +374,11 @@ Convert the DATE to DD.MM.YYYY, HH:MM.
 
 \(fn HEADER)" nil nil)
 
+(autoload 'gnus-user-format-function-j "ganneff-gnus" "\
+
+
+\(fn HEADERS)" nil nil)
+
 (autoload 'my-message-add-content "ganneff-gnus" "\
 
 
@@ -398,8 +441,6 @@ Open a summary buffer containing the current notmuch article.
 
 \(fn)" t nil)
 
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "ganneff-gnus" '("nnimap-message-count-cache-alist" "gnus-user-format-function-g-prev")))
-
 ;;;***
 \f
 ;;;### (autoloads nil "ganneff-org" "ganneff-org.el" (21044 6542
@@ -755,6 +796,20 @@ Start clocking the hwmigration task
 
 ;;;***
 \f
+;;;### (autoloads nil "goto-last-change" "goto-last-change.el" (21737
+;;;;;;  52014 623835 531000))
+;;; Generated autoloads from goto-last-change.el
+
+(autoload 'goto-last-change "goto-last-change" "\
+Set point to the position of the last change.
+Consecutive calls set point to the position of the previous change.
+With a prefix arg (optional arg MARK-POINT non-nil), set mark so \\[exchange-point-and-mark]
+will return point to the current position.
+
+\(fn &optional MARK-POINT MINIMAL-LINE-DISTANCE)" t nil)
+
+;;;***
+\f
 ;;;### (autoloads (keep-buffers-query) "keep-buffers" "keep-buffers.el"
 ;;;;;;  (20858 49922 477891 208000))
 ;;; Generated autoloads from keep-buffers.el
@@ -766,7 +821,68 @@ The query function that disable deletion of buffers we protect.
 
 ;;;***
 \f
-;;;### (autoloads nil "use-package" "use-package.el" (0 0 0 0))
+;;;### (autoloads nil "message-utils" "message-utils.el" (20858 49922
+;;;;;;  485891 248000))
+;;; Generated autoloads from message-utils.el
+
+(autoload 'message-mark-inserted-region "message-utils" "\
+Mark some region in the current article with enclosing tags.
+See `message-begin-inserted-text-mark' and `message-end-inserted-text-mark'.
+
+\(fn BEG END)" t nil)
+
+(autoload 'message-mark-insert-file "message-utils" "\
+Inserts FILE at point, marking it with enclosing tags.
+See `message-begin-inserted-text-mark' and `message-end-inserted-text-mark'.
+
+\(fn FILE)" t nil)
+
+(autoload 'message-strip-subject-was "message-utils" "\
+Remove trailing \"(Was: <old subject>)\" from subject lines.
+
+\(fn)" nil nil)
+
+(autoload 'message-change-subject "message-utils" "\
+Ask for new Subject: header, append (was: <Old Subject>).
+
+\(fn NEW-SUBJECT)" t nil)
+
+(autoload 'message-xpost-fup2 "message-utils" "\
+Crossposts message and sets Followup-To to TARGET-GROUP.
+With prefix-argument just set Follow-Up, don't cross-post.
+
+\(fn TARGET-GROUP)" t nil)
+
+;;;***
+\f
+;;;### (autoloads nil "sh-toggle" "sh-toggle.el" (21369 2951 0 0))
+;;; Generated autoloads from sh-toggle.el
+
+(autoload 'shell-toggle-cd "sh-toggle" "\
+Calls `shell-toggle' with a prefix argument.
+See the command `shell-toggle'
+
+\(fn)" t nil)
+
+(autoload 'shell-toggle "sh-toggle" "\
+Toggles between the *shell* buffer and the current buffer.
+With a prefix ARG also insert a \"cd DIR\" command into the shell,
+where DIR is the directory of the current buffer.
+
+Call twice in a row to get a full screen window for the *shell*
+buffer.
+
+When called in the *shell* buffer returns you to the buffer you were
+editing before caling the first time.
+
+Options: `shell-toggle-goto-eob'
+
+\(fn MAKE-CD)" t nil)
+
+;;;***
+\f
+;;;### (autoloads nil "use-package" "use-package.el" (22508 15706
+;;;;;;  785969 692000))
 ;;; Generated autoloads from use-package.el
 
 (autoload 'use-package "use-package" "\
@@ -824,7 +940,10 @@ this file.  Usage:
 
 (function-put 'use-package 'lisp-indent-function '1)
 
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes "use-package" '("use-package-")))
+;;;***
+\f
+;;;### (autoloads nil nil ("mingus-stays-home.el" "puppet-ext.el"
+;;;;;;  "randomsig.el") (21373 9323 442521 104000))
 
 ;;;***
 \f