From: Ivan Kanis <ivan@kanis.fr>
To: Lars Grunewaldt <lars.grunewaldt@osnanet.de>
Cc: Emacs Development List <emacs-devel@gnu.org>
Subject: [PATCH] eww improvements
Date: Sun, 23 Jun 2013 18:58:31 +0200 [thread overview]
Message-ID: <8738s8ix1k.fsf@kanis.fr> (raw)
[-- Attachment #1: Type: text/plain, Size: 43 bytes --]
Lars,
I have attached 3 patches for eww.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-allow-entering-keywords-for-search-engine.patch --]
[-- Type: text/x-diff, Size: 1408 bytes --]
From dfb8f81cb0bc5915e2ffb45cd933b018e7f5d37e Mon Sep 17 00:00:00 2001
From: Ivan Kanis <ivan@tao>
Date: Sun, 23 Jun 2013 18:20:03 +0200
Subject: [PATCH 1/3] allow entering keywords for search engine
---
emacs/gnus/eww.el | 15 ++++++++++++---
1 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/emacs/gnus/eww.el b/emacs/gnus/eww.el
index ad19758..4fc9fe0 100644
--- a/emacs/gnus/eww.el
+++ b/emacs/gnus/eww.el
@@ -43,6 +43,11 @@
:group 'eww
:type 'string)
+(defcustom eww-search-prefix "https://duckduckgo.com/html/?q="
+ "Prefix URL to search engine"
+ :group 'eww
+ :type 'string)
+
(defface eww-form-submit
'((((type x w32 ns) (class color)) ; Like default mode line
:box (:line-width 2 :style released-button)
@@ -90,9 +95,13 @@
;;;###autoload
(defun eww (url)
"Fetch URL and render the page."
- (interactive "sUrl: ")
- (unless (string-match-p "\\`[a-zA-Z][-a-zA-Z0-9+.]*://" url)
- (setq url (concat "http://" url)))
+ (interactive "sEnter URL or keywords: ")
+ (if (and (= (length (split-string url)) 1)
+ (> (length (split-string url "\\.")) 1))
+ (unless (string-match-p "\\`[a-zA-Z][-a-zA-Z0-9+.]*://" url)
+ (setq url (concat "http://" url)))
+ (setq url (concat eww-search-prefix
+ (replace-regexp-in-string " " "+" url))))
(url-retrieve url 'eww-render (list url)))
;;;###autoload
--
1.7.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0002-w-key-launches-external-browser-for-current-page-url.patch --]
[-- Type: text/x-diff, Size: 1731 bytes --]
From 8e1cb8158dee5d7b65a2e04748fb0e47a7023cb2 Mon Sep 17 00:00:00 2001
From: Ivan Kanis <ivan@tao>
Date: Sun, 23 Jun 2013 18:44:40 +0200
Subject: [PATCH 2/3] 'w' key launches external browser for current page url
---
emacs/gnus/eww.el | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/emacs/gnus/eww.el b/emacs/gnus/eww.el
index 4fc9fe0..1b028b1 100644
--- a/emacs/gnus/eww.el
+++ b/emacs/gnus/eww.el
@@ -48,6 +48,12 @@
:group 'eww
:type 'string)
+(defcustom eww-external-browser 'browse-url-firefox
+ "Function called to launch external browser.
+It will be used when emacs runs on neither Windows or Mac."
+ :group 'eww
+ :type 'function)
+
(defface eww-form-submit
'((((type x w32 ns) (class color)) ; Like default mode line
:box (:line-width 2 :style released-button)
@@ -313,6 +319,7 @@
(define-key map "p" 'eww-previous-url)
(define-key map "u" 'eww-up-url)
(define-key map "t" 'eww-top-url)
+ (define-key map "w" 'eww-browse-with-external-browser)
map))
(define-derived-mode eww-mode nil "eww"
@@ -819,6 +826,19 @@ appears in a <link> or <a> tag."
"?"
(mm-url-encode-www-form-urlencoded values))))))
+(defun eww-browse-with-external-browser ()
+ "Browse URL with external browser.
+It support Windows and Mac then calls the function specified in
+ `eww-external-browser'."
+ (interactive)
+ (let ((url eww-current-url))
+ (cond ((eq system-type 'windows-nt)
+ (browse-url-default-windows-browser url))
+ ((eq system-type 'darwin)
+ (browse-url-default-macosx-browser url))
+ (t
+ (funcall eww-external-browser url)))))
+
(provide 'eww)
;;; eww.el ends here
--
1.7.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0003-C-c-C-c-submit-current-form.patch --]
[-- Type: text/x-diff, Size: 1898 bytes --]
From 885156af074991ab9a003a641ec1e82d46fc8d78 Mon Sep 17 00:00:00 2001
From: Ivan Kanis <ivan@tao>
Date: Sun, 23 Jun 2013 18:50:20 +0200
Subject: [PATCH 3/3] C-c C-c submit current form
---
emacs/gnus/eww.el | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/emacs/gnus/eww.el b/emacs/gnus/eww.el
index 1b028b1..959fc4d 100644
--- a/emacs/gnus/eww.el
+++ b/emacs/gnus/eww.el
@@ -405,12 +405,14 @@ appears in a <link> or <a> tag."
(defvar eww-submit-map
(let ((map (make-sparse-keymap)))
(define-key map "\r" 'eww-submit)
+ (define-key map [(control c) (control c)] 'eww-submit)
map))
(defvar eww-checkbox-map
(let ((map (make-sparse-keymap)))
(define-key map [space] 'eww-toggle-checkbox)
(define-key map "\r" 'eww-toggle-checkbox)
+ (define-key map [(control c) (control c)] 'eww-submit)
map))
(defvar eww-text-map
@@ -418,6 +420,7 @@ appears in a <link> or <a> tag."
(set-keymap-parent map text-mode-map)
(define-key map "\r" 'eww-submit)
(define-key map [(control a)] 'eww-beginning-of-text)
+ (define-key map [(control c) (control c)] 'eww-submit)
(define-key map [(control e)] 'eww-end-of-text)
(define-key map [tab] 'shr-next-link)
(define-key map [backtab] 'shr-previous-link)
@@ -427,6 +430,7 @@ appears in a <link> or <a> tag."
(let ((map (make-keymap)))
(set-keymap-parent map text-mode-map)
(define-key map "\r" 'forward-line)
+ (define-key map [(control c) (control c)] 'eww-submit)
(define-key map [tab] 'shr-next-link)
(define-key map [backtab] 'shr-previous-link)
map))
@@ -434,6 +438,7 @@ appears in a <link> or <a> tag."
(defvar eww-select-map
(let ((map (make-sparse-keymap)))
(define-key map "\r" 'eww-change-select)
+ (define-key map [(control c) (control c)] 'eww-submit)
map))
(defun eww-beginning-of-text ()
--
1.7.1
next reply other threads:[~2013-06-23 16:58 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-23 16:58 Ivan Kanis [this message]
2013-06-23 18:29 ` [PATCH] eww improvements Lars Magne Ingebrigtsen
2013-06-23 21:48 ` Rüdiger Sonderfeld
2013-06-23 21:52 ` Lars Magne Ingebrigtsen
[not found] ` <13724493.P5Ma8CTG7m@descartes>
2013-06-24 13:58 ` Lars Magne Ingebrigtsen
2013-06-24 5:24 ` Ivan Kanis
2013-06-24 11:14 ` Rüdiger Sonderfeld
2013-06-24 13:03 ` Ivan Kanis
2013-06-24 13:18 ` Rüdiger Sonderfeld
2013-06-24 17:01 ` Ivan Kanis
2013-06-24 17:40 ` Lars Magne Ingebrigtsen
2013-06-25 6:07 ` Juri Linkov
2013-06-25 6:29 ` Ivan Kanis
2013-06-25 19:26 ` Lars Magne Ingebrigtsen
2013-06-25 20:15 ` Ivan Kanis
2013-06-25 20:20 ` Lars Magne Ingebrigtsen
2013-06-25 20:22 ` Ivan Kanis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8738s8ix1k.fsf@kanis.fr \
--to=ivan@kanis.fr \
--cc=emacs-devel@gnu.org \
--cc=lars.grunewaldt@osnanet.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.