* [PATCH 1/4] emacs: unify search mechanisms
@ 2011-12-25 4:14 Dmitry Kurochkin
2011-12-25 4:14 ` [PATCH 2/4] emacs: reindent `notmuch-hello' function Dmitry Kurochkin
` (4 more replies)
0 siblings, 5 replies; 18+ messages in thread
From: Dmitry Kurochkin @ 2011-12-25 4:14 UTC (permalink / raw)
To: notmuch
Before the change, there were two ways to do search in Emacs UI:
search widget in notmuch-hello buffer and `notmuch-search'
function bound to "s". Internally, notmuch-hello search widget
uses `notmuch-search' function. But it uses widget field input
instead of minibuffer. Such duplication is a major issue for
notmuch-hello usability: search interface is inconsistent and
lacks features that are available in minibuffer (e.g. history and
auto completion). Some of these features may be relatively easy
to implement for notmuch-hello search, others would be much more
tricky. So to avoid duplication, make UI more consistent, bring
notmuch-hello search to feature parity with the minibuffer
search, the patch replaces notmuch-hello search widget and with a
button that works the same way as "s" key binding.
---
emacs/notmuch-hello.el | 84 +++++++++++++++---------------------------------
emacs/notmuch-lib.el | 9 +++++
emacs/notmuch.el | 20 ++++++-----
3 files changed, 46 insertions(+), 67 deletions(-)
diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el
index 333d4c1..eb08a09 100644
--- a/emacs/notmuch-hello.el
+++ b/emacs/notmuch-hello.el
@@ -29,11 +29,8 @@
(declare-function notmuch-search "notmuch" (query &optional oldest-first target-thread target-line continuation))
(declare-function notmuch-poll "notmuch" ())
-(defvar notmuch-hello-search-bar-marker nil
- "The position of the search bar within the notmuch-hello buffer.")
-
-(defcustom notmuch-recent-searches-max 10
- "The number of recent searches to store and display."
+(defcustom notmuch-hello-recent-searches-max 10
+ "The number of recent searches to display."
:type 'integer
:group 'notmuch)
@@ -154,16 +151,6 @@ International Bureau of Weights and Measures."
(defvar notmuch-hello-url "http://notmuchmail.org"
"The `notmuch' web site.")
-(defvar notmuch-hello-recent-searches nil)
-
-(defun notmuch-hello-remember-search (search)
- (setq notmuch-hello-recent-searches
- (delete search notmuch-hello-recent-searches))
- (push search notmuch-hello-recent-searches)
- (if (> (length notmuch-hello-recent-searches)
- notmuch-recent-searches-max)
- (setq notmuch-hello-recent-searches (butlast notmuch-hello-recent-searches))))
-
(defun notmuch-hello-nice-number (n)
(let (result)
(while (> n 0)
@@ -176,16 +163,10 @@ International Bureau of Weights and Measures."
(format "%s%03d" notmuch-hello-thousands-separator elem))
(cdr result)))))
-(defun notmuch-hello-trim (search)
- "Trim whitespace."
- (if (string-match "^[[:space:]]*\\(.*[^[:space:]]\\)[[:space:]]*$" search)
- (match-string 1 search)
- search))
-
-(defun notmuch-hello-search (search)
- (let ((search (notmuch-hello-trim search)))
- (notmuch-hello-remember-search search)
- (notmuch-search search notmuch-search-oldest-first nil nil #'notmuch-hello-search-continuation)))
+(defun notmuch-hello-search (&optional search)
+ (interactive)
+ (notmuch-search search notmuch-search-oldest-first nil nil
+ #'notmuch-hello-search-continuation))
(defun notmuch-hello-add-saved-search (widget)
(interactive)
@@ -319,11 +300,6 @@ should be. Returns a cons cell `(tags-per-line width)'."
(widget-insert "\n"))
found-target-pos))
-(defun notmuch-hello-goto-search ()
- "Put point inside the `search' widget."
- (interactive)
- (goto-char notmuch-hello-search-bar-marker))
-
(defimage notmuch-hello-logo ((:type png :file "notmuch-logo.png")))
(defun notmuch-hello-search-continuation()
@@ -353,7 +329,7 @@ should be. Returns a cons cell `(tags-per-line width)'."
(define-key map "G" 'notmuch-hello-poll-and-update)
(define-key map (kbd "<C-tab>") 'widget-backward)
(define-key map "m" 'notmuch-mua-new-mail)
- (define-key map "s" 'notmuch-hello-goto-search)
+ (define-key map "s" 'notmuch-hello-search)
map)
"Keymap for \"notmuch hello\" buffers.")
(fset 'notmuch-hello-mode-map notmuch-hello-mode-map)
@@ -466,7 +442,8 @@ Complete list of currently available key bindings:
(widget-insert " messages.\n"))
(let ((found-target-pos nil)
- (final-target-pos nil))
+ (final-target-pos nil)
+ (default-pos))
(let* ((saved-alist
;; Filter out empty saved searches if required.
(if notmuch-show-empty-saved-searches
@@ -497,33 +474,26 @@ Complete list of currently available key bindings:
(setq final-target-pos found-target-pos))
(indent-rigidly start (point) notmuch-hello-indent)))
- (widget-insert "\nSearch: ")
- (setq notmuch-hello-search-bar-marker (point-marker))
- (widget-create 'editable-field
- ;; Leave some space at the start and end of the
- ;; search boxes.
- :size (max 8 (- (window-width) notmuch-hello-indent
- (length "Search: ")))
- :action (lambda (widget &rest ignore)
- (notmuch-hello-search (widget-value widget))))
- ;; add an invisible space to make `widget-end-of-line' ignore
- ;; trailine spaces in the search widget field
- (widget-insert " ")
- (put-text-property (1- (point)) (point) 'invisible t)
+ (widget-insert "\n")
+ (setq default-pos (point-marker))
+ (widget-create 'push-button
+ :notify (lambda (&rest ignore)
+ (notmuch-hello-search))
+ " Search! ")
(widget-insert "\n")
- (when notmuch-hello-recent-searches
+ (when notmuch-search-history
(widget-insert "\nRecent searches: ")
(widget-create 'push-button
:notify (lambda (&rest ignore)
- (setq notmuch-hello-recent-searches nil)
+ (setq notmuch-search-history nil)
(notmuch-hello-update))
"clear")
(widget-insert "\n\n")
- (let ((start (point))
- (nth 0))
- (mapc (lambda (search)
- (let ((widget-symbol (intern (format "notmuch-hello-search-%d" nth))))
+ (let ((start (point)))
+ (loop for i from 1 to notmuch-hello-recent-searches-max
+ for search in notmuch-search-history do
+ (let ((widget-symbol (intern (format "notmuch-hello-search-%d" i))))
(set widget-symbol
(widget-create 'editable-field
;; Don't let the search boxes be
@@ -550,9 +520,7 @@ Complete list of currently available key bindings:
(notmuch-hello-add-saved-search widget))
:notmuch-saved-search-widget widget-symbol
"save"))
- (widget-insert "\n")
- (setq nth (1+ nth)))
- notmuch-hello-recent-searches)
+ (widget-insert "\n"))
(indent-rigidly start (point) notmuch-hello-indent)))
(when alltags-alist
@@ -580,14 +548,14 @@ Complete list of currently available key bindings:
(let ((start (point)))
(widget-insert "\n\n")
- (widget-insert "Type a search query and hit RET to view matching threads.\n")
- (when notmuch-hello-recent-searches
+ (widget-insert "Use the `search' button or hit `s' to enter search query.\n")
+ (when notmuch-search-history
(widget-insert "Hit RET to re-submit a previous search. Edit it first if you like.\n")
(widget-insert "Save recent searches with the `save' button.\n"))
(when notmuch-saved-searches
(widget-insert "Edit saved searches with the `edit' button.\n"))
(widget-insert "Hit RET or click on a saved search or tag name to view matching threads.\n")
- (widget-insert "`=' refreshes this screen. `s' jumps to the search box. `q' to quit.\n")
+ (widget-insert "`=' refreshes this screen. `s' to search messages. `q' to quit.\n")
(let ((fill-column (- (window-width) notmuch-hello-indent)))
(center-region start (point))))
@@ -599,7 +567,7 @@ Complete list of currently available key bindings:
(widget-forward 1)))
(unless (widget-at)
- (notmuch-hello-goto-search))))
+ (goto-char default-pos))))
(run-hooks 'notmuch-hello-refresh-hook))
diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
index 0f856bf..a2cb6f2 100644
--- a/emacs/notmuch-lib.el
+++ b/emacs/notmuch-lib.el
@@ -35,6 +35,9 @@
;;
+(defvar notmuch-search-history nil
+ "Variable to store minibuffer history for notmuch searches.")
+
(defcustom notmuch-saved-searches nil
"A list of saved searches to display."
:type '(alist :key-type string :value-type string)
@@ -114,6 +117,12 @@ the user hasn't set this variable with the old or new value."
(setq list (cdr list)))
(nreverse out)))
+(defun notmuch-trim (search)
+ "Trim whitespaces."
+ (if (string-match "^[[:space:]]*\\(.*[^[:space:]]\\)[[:space:]]*$" search)
+ (match-string 1 search)
+ search))
+
; This lets us avoid compiling these replacement functions when emacs
; is sufficiently new enough to supply them alone. We do the macro
; treatment rather than just wrapping our defun calls in a when form
diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index fde2377..938a149 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -72,9 +72,6 @@ For example:
:type '(alist :key-type (string) :value-type (string))
:group 'notmuch)
-(defvar notmuch-query-history nil
- "Variable to store minibuffer history for notmuch queries")
-
(defun notmuch-select-tag-with-completion (prompt &rest search-terms)
(let ((tag-list
(with-output-to-string
@@ -902,21 +899,26 @@ PROMPT is the string to prompt with."
(t (list string)))))))
;; this was simpler than convincing completing-read to accept spaces:
(define-key keymap (kbd "<tab>") 'minibuffer-complete)
- (read-from-minibuffer prompt nil keymap nil
- 'notmuch-query-history nil nil))))
+ (let ((history-delete-duplicates t))
+ (read-from-minibuffer prompt nil keymap nil
+ 'notmuch-search-history nil nil)))))
;;;###autoload
-(defun notmuch-search (query &optional oldest-first target-thread target-line continuation)
- "Run \"notmuch search\" with the given query string and display results.
+(defun notmuch-search (&optional query oldest-first target-thread target-line continuation)
+ "Run \"notmuch search\" with the given `query' and display results.
-The optional parameters are used as follows:
+If `query' is nil, it is read interactively from the minibuffer.
+Other optional parameters are used as follows:
oldest-first: A Boolean controlling the sort order of returned threads
target-thread: A thread ID (with the thread: prefix) that will be made
current if it appears in the search results.
target-line: The line number to move to if the target thread does not
appear in the search results."
- (interactive (list (notmuch-read-query "Notmuch search: ")))
+ (interactive)
+ (if (null query)
+ (setq query (notmuch-read-query "Notmuch search: ")))
+ (setq query (notmuch-trim query))
(let ((buffer (get-buffer-create (notmuch-search-buffer-title query))))
(switch-to-buffer buffer)
(notmuch-search-mode)
--
1.7.7.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 2/4] emacs: reindent `notmuch-hello' function
2011-12-25 4:14 [PATCH 1/4] emacs: unify search mechanisms Dmitry Kurochkin
@ 2011-12-25 4:14 ` Dmitry Kurochkin
2011-12-25 4:14 ` [PATCH 3/4] emacs: hide recent searches if `notmuch-hello-recent-searches-max' is zero Dmitry Kurochkin
` (3 subsequent siblings)
4 siblings, 0 replies; 18+ messages in thread
From: Dmitry Kurochkin @ 2011-12-25 4:14 UTC (permalink / raw)
To: notmuch
Reindent `notmuch-hello' function after the search history changes.
---
emacs/notmuch-hello.el | 56 ++++++++++++++++++++++++------------------------
1 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el
index eb08a09..fa33500 100644
--- a/emacs/notmuch-hello.el
+++ b/emacs/notmuch-hello.el
@@ -493,34 +493,34 @@ Complete list of currently available key bindings:
(let ((start (point)))
(loop for i from 1 to notmuch-hello-recent-searches-max
for search in notmuch-search-history do
- (let ((widget-symbol (intern (format "notmuch-hello-search-%d" i))))
- (set widget-symbol
- (widget-create 'editable-field
- ;; Don't let the search boxes be
- ;; less than 8 characters wide.
- :size (max 8
- (- (window-width)
- ;; Leave some space
- ;; at the start and
- ;; end of the
- ;; boxes.
- (* 2 notmuch-hello-indent)
- ;; 1 for the space
- ;; before the
- ;; `[save]' button. 6
- ;; for the `[save]'
- ;; button.
- 1 6))
- :action (lambda (widget &rest ignore)
- (notmuch-hello-search (widget-value widget)))
- search))
- (widget-insert " ")
- (widget-create 'push-button
- :notify (lambda (widget &rest ignore)
- (notmuch-hello-add-saved-search widget))
- :notmuch-saved-search-widget widget-symbol
- "save"))
- (widget-insert "\n"))
+ (let ((widget-symbol (intern (format "notmuch-hello-search-%d" i))))
+ (set widget-symbol
+ (widget-create 'editable-field
+ ;; Don't let the search boxes be
+ ;; less than 8 characters wide.
+ :size (max 8
+ (- (window-width)
+ ;; Leave some space
+ ;; at the start and
+ ;; end of the
+ ;; boxes.
+ (* 2 notmuch-hello-indent)
+ ;; 1 for the space
+ ;; before the
+ ;; `[save]' button. 6
+ ;; for the `[save]'
+ ;; button.
+ 1 6))
+ :action (lambda (widget &rest ignore)
+ (notmuch-hello-search (widget-value widget)))
+ search))
+ (widget-insert " ")
+ (widget-create 'push-button
+ :notify (lambda (widget &rest ignore)
+ (notmuch-hello-add-saved-search widget))
+ :notmuch-saved-search-widget widget-symbol
+ "save"))
+ (widget-insert "\n"))
(indent-rigidly start (point) notmuch-hello-indent)))
(when alltags-alist
--
1.7.7.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 3/4] emacs: hide recent searches if `notmuch-hello-recent-searches-max' is zero
2011-12-25 4:14 [PATCH 1/4] emacs: unify search mechanisms Dmitry Kurochkin
2011-12-25 4:14 ` [PATCH 2/4] emacs: reindent `notmuch-hello' function Dmitry Kurochkin
@ 2011-12-25 4:14 ` Dmitry Kurochkin
2011-12-25 4:14 ` [PATCH 4/4] test: fix Emacs tests expected output after notmuch-hello search changes Dmitry Kurochkin
` (2 subsequent siblings)
4 siblings, 0 replies; 18+ messages in thread
From: Dmitry Kurochkin @ 2011-12-25 4:14 UTC (permalink / raw)
To: notmuch
---
emacs/notmuch-hello.el | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el
index fa33500..6015af4 100644
--- a/emacs/notmuch-hello.el
+++ b/emacs/notmuch-hello.el
@@ -30,7 +30,10 @@
(declare-function notmuch-poll "notmuch" ())
(defcustom notmuch-hello-recent-searches-max 10
- "The number of recent searches to display."
+ "The number of recent searches to display.
+
+Recent searches section is not shown if
+`notmuch-hello-recent-searches-max' is set to 0."
:type 'integer
:group 'notmuch)
@@ -151,6 +154,10 @@ International Bureau of Weights and Measures."
(defvar notmuch-hello-url "http://notmuchmail.org"
"The `notmuch' web site.")
+(defun notmuch-hello-show-recent-searches ()
+ (and (> notmuch-hello-recent-searches-max 0)
+ notmuch-search-history))
+
(defun notmuch-hello-nice-number (n)
(let (result)
(while (> n 0)
@@ -482,7 +489,7 @@ Complete list of currently available key bindings:
" Search! ")
(widget-insert "\n")
- (when notmuch-search-history
+ (when (notmuch-hello-show-recent-searches)
(widget-insert "\nRecent searches: ")
(widget-create 'push-button
:notify (lambda (&rest ignore)
@@ -549,7 +556,7 @@ Complete list of currently available key bindings:
(let ((start (point)))
(widget-insert "\n\n")
(widget-insert "Use the `search' button or hit `s' to enter search query.\n")
- (when notmuch-search-history
+ (when (notmuch-hello-show-recent-searches)
(widget-insert "Hit RET to re-submit a previous search. Edit it first if you like.\n")
(widget-insert "Save recent searches with the `save' button.\n"))
(when notmuch-saved-searches
--
1.7.7.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 4/4] test: fix Emacs tests expected output after notmuch-hello search changes
2011-12-25 4:14 [PATCH 1/4] emacs: unify search mechanisms Dmitry Kurochkin
2011-12-25 4:14 ` [PATCH 2/4] emacs: reindent `notmuch-hello' function Dmitry Kurochkin
2011-12-25 4:14 ` [PATCH 3/4] emacs: hide recent searches if `notmuch-hello-recent-searches-max' is zero Dmitry Kurochkin
@ 2011-12-25 4:14 ` Dmitry Kurochkin
2011-12-30 10:44 ` [PATCH 1/4] emacs: unify search mechanisms David Edmondson
2012-01-16 11:35 ` David Edmondson
4 siblings, 0 replies; 18+ messages in thread
From: Dmitry Kurochkin @ 2011-12-25 4:14 UTC (permalink / raw)
To: notmuch
---
test/emacs.expected-output/notmuch-hello | 6 +++---
.../notmuch-hello-no-saved-searches | 6 +++---
.../emacs.expected-output/notmuch-hello-with-empty | 6 +++---
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/test/emacs.expected-output/notmuch-hello b/test/emacs.expected-output/notmuch-hello
index 48143bd..4e47cde 100644
--- a/test/emacs.expected-output/notmuch-hello
+++ b/test/emacs.expected-output/notmuch-hello
@@ -4,11 +4,11 @@ Saved searches: [edit]
50 inbox 50 unread
-Search:
+[ Search! ]
[Show all tags]
- Type a search query and hit RET to view matching threads.
+ Use the `search' button or hit `s' to enter search query.
Edit saved searches with the `edit' button.
Hit RET or click on a saved search or tag name to view matching threads.
- `=' refreshes this screen. `s' jumps to the search box. `q' to quit.
+ `=' refreshes this screen. `s' to search messages. `q' to quit.
diff --git a/test/emacs.expected-output/notmuch-hello-no-saved-searches b/test/emacs.expected-output/notmuch-hello-no-saved-searches
index 7c09e40..5f79b92 100644
--- a/test/emacs.expected-output/notmuch-hello-no-saved-searches
+++ b/test/emacs.expected-output/notmuch-hello-no-saved-searches
@@ -1,10 +1,10 @@
Welcome to notmuch. You have 50 messages.
-Search:
+[ Search! ]
[Show all tags]
- Type a search query and hit RET to view matching threads.
+ Use the `search' button or hit `s' to enter search query.
Edit saved searches with the `edit' button.
Hit RET or click on a saved search or tag name to view matching threads.
- `=' refreshes this screen. `s' jumps to the search box. `q' to quit.
+ `=' refreshes this screen. `s' to search messages. `q' to quit.
diff --git a/test/emacs.expected-output/notmuch-hello-with-empty b/test/emacs.expected-output/notmuch-hello-with-empty
index 2a267c9..28b8a1f 100644
--- a/test/emacs.expected-output/notmuch-hello-with-empty
+++ b/test/emacs.expected-output/notmuch-hello-with-empty
@@ -4,11 +4,11 @@ Saved searches: [edit]
50 inbox 50 unread 0 empty
-Search:
+[ Search! ]
[Show all tags]
- Type a search query and hit RET to view matching threads.
+ Use the `search' button or hit `s' to enter search query.
Edit saved searches with the `edit' button.
Hit RET or click on a saved search or tag name to view matching threads.
- `=' refreshes this screen. `s' jumps to the search box. `q' to quit.
+ `=' refreshes this screen. `s' to search messages. `q' to quit.
--
1.7.7.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2011-12-25 4:14 [PATCH 1/4] emacs: unify search mechanisms Dmitry Kurochkin
` (2 preceding siblings ...)
2011-12-25 4:14 ` [PATCH 4/4] test: fix Emacs tests expected output after notmuch-hello search changes Dmitry Kurochkin
@ 2011-12-30 10:44 ` David Edmondson
2011-12-30 14:43 ` David Bremner
2012-01-16 11:35 ` David Edmondson
4 siblings, 1 reply; 18+ messages in thread
From: David Edmondson @ 2011-12-30 10:44 UTC (permalink / raw)
To: Dmitry Kurochkin, notmuch
[-- Attachment #1: Type: text/plain, Size: 752 bytes --]
On Sun, 25 Dec 2011 08:14:52 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com> wrote:
> Before the change, there were two ways to do search in Emacs UI:
> search widget in notmuch-hello buffer and `notmuch-search' function
> bound to "s". Internally, notmuch-hello search widget uses
> `notmuch-search' function. But it uses widget field input instead of
> minibuffer.
>
> Such duplication is a major issue for notmuch-hello usability: search
> interface is inconsistent and lacks features that are available in
> minibuffer (e.g. history and auto completion).
Were there actual complaints about the usability of the current
approach?
I much preferred your alternative approach (merging the history while
leaving the UI alone).
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2011-12-30 10:44 ` [PATCH 1/4] emacs: unify search mechanisms David Edmondson
@ 2011-12-30 14:43 ` David Bremner
2011-12-30 15:01 ` David Edmondson
` (2 more replies)
0 siblings, 3 replies; 18+ messages in thread
From: David Bremner @ 2011-12-30 14:43 UTC (permalink / raw)
To: David Edmondson, Dmitry Kurochkin, notmuch
On Fri, 30 Dec 2011 10:44:28 +0000, David Edmondson <dme@dme.org> wrote:
> On Sun, 25 Dec 2011 08:14:52 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
> Were there actual complaints about the usability of the current
> approach?
>
> I much preferred your alternative approach (merging the history while
> leaving the UI alone).
Personally I would like to be able to customize the hello screen to
remove the search box. I find it confusing that that 's' jumps to the
search box there, and everywhere else brings up the mini-buffer. That
might be just me, and the fact that I bind "C-c s" globally to
notmuch-search. I could easily believe that for new users having a
search box is nicer.
d
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2011-12-30 14:43 ` David Bremner
@ 2011-12-30 15:01 ` David Edmondson
2011-12-30 17:09 ` Aaron Ecay
2011-12-31 12:42 ` Jani Nikula
2 siblings, 0 replies; 18+ messages in thread
From: David Edmondson @ 2011-12-30 15:01 UTC (permalink / raw)
To: David Bremner, Dmitry Kurochkin, notmuch
[-- Attachment #1: Type: text/plain, Size: 1132 bytes --]
On Fri, 30 Dec 2011 10:43:37 -0400, David Bremner <david@tethera.net> wrote:
> On Fri, 30 Dec 2011 10:44:28 +0000, David Edmondson <dme@dme.org> wrote:
> > On Sun, 25 Dec 2011 08:14:52 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
> > Were there actual complaints about the usability of the current
> > approach?
> >
> > I much preferred your alternative approach (merging the history while
> > leaving the UI alone).
>
> Personally I would like to be able to customize the hello screen to
> remove the search box.
id:"1318253982-23588-2-git-send-email-daniel@schoepe.org" ?
> I find it confusing that that 's' jumps to the search box there, and
> everywhere else brings up the mini-buffer. That might be just me, and
> the fact that I bind "C-c s" globally to notmuch-search. I could
> easily believe that for new users having a search box is nicer.
It was intended for people coming from more traditional clients, to help
get them into the swing of notmuch. Maybe also a bit of a joke in
comparison to the gmail interface. (Carl came up with the original idea
- I just knocked out some code.)
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2011-12-30 14:43 ` David Bremner
2011-12-30 15:01 ` David Edmondson
@ 2011-12-30 17:09 ` Aaron Ecay
2011-12-31 12:42 ` Jani Nikula
2 siblings, 0 replies; 18+ messages in thread
From: Aaron Ecay @ 2011-12-30 17:09 UTC (permalink / raw)
To: David Bremner, David Edmondson, Dmitry Kurochkin, notmuch
On Fri, 30 Dec 2011 10:43:37 -0400, David Bremner <david@tethera.net> wrote:
> Personally I would like to be able to customize the hello screen to
> remove the search box. I find it confusing that that 's' jumps to the
> search box there, and everywhere else brings up the mini-buffer.
+1. I rarely use notmuch-hello, but when I do, I press `s' then look to
the bottom of the screen and am always confused not to see a minibuffer
prompt.
--
Aaron Ecay
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2011-12-30 14:43 ` David Bremner
2011-12-30 15:01 ` David Edmondson
2011-12-30 17:09 ` Aaron Ecay
@ 2011-12-31 12:42 ` Jani Nikula
2011-12-31 13:06 ` David Bremner
` (2 more replies)
2 siblings, 3 replies; 18+ messages in thread
From: Jani Nikula @ 2011-12-31 12:42 UTC (permalink / raw)
To: David Bremner, David Edmondson, Dmitry Kurochkin, notmuch
On Fri, 30 Dec 2011 10:43:37 -0400, David Bremner <david@tethera.net> wrote:
> On Fri, 30 Dec 2011 10:44:28 +0000, David Edmondson <dme@dme.org> wrote:
> > On Sun, 25 Dec 2011 08:14:52 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
> > Were there actual complaints about the usability of the current
> > approach?
> >
> > I much preferred your alternative approach (merging the history while
> > leaving the UI alone).
FWIW, I liked this approach too. I do use the notmuch-hello view, and
also the search box.
> Personally I would like to be able to customize the hello screen to
> remove the search box. I find it confusing that that 's' jumps to the
> search box there, and everywhere else brings up the mini-buffer. That
> might be just me, and the fact that I bind "C-c s" globally to
> notmuch-search. I could easily believe that for new users having a
> search box is nicer.
Would it be a suitable compromise to bind 's' to notmuch-search (the
mini-buffer search) also in notmuch-hello, while leaving the search box
there with a common history?
I'm not sure moving the point to search box needs a keybinding (but
notmuch-hello-goto-search could still be there if the user wants to add
a keybinding).
BR,
Jani.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2011-12-31 12:42 ` Jani Nikula
@ 2011-12-31 13:06 ` David Bremner
2011-12-31 13:43 ` David Edmondson
2012-01-02 13:23 ` Tomi Ollila
2 siblings, 0 replies; 18+ messages in thread
From: David Bremner @ 2011-12-31 13:06 UTC (permalink / raw)
To: Jani Nikula, David Edmondson, Dmitry Kurochkin, notmuch
On Sat, 31 Dec 2011 14:42:47 +0200, Jani Nikula <jani@nikula.org> wrote:
> Would it be a suitable compromise to bind 's' to notmuch-search (the
> mini-buffer search) also in notmuch-hello, while leaving the search box
> there with a common history?
That would be fine for me. But other people might find it weird I guess.
d
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2011-12-31 12:42 ` Jani Nikula
2011-12-31 13:06 ` David Bremner
@ 2011-12-31 13:43 ` David Edmondson
2012-01-02 13:23 ` Tomi Ollila
2 siblings, 0 replies; 18+ messages in thread
From: David Edmondson @ 2011-12-31 13:43 UTC (permalink / raw)
To: Jani Nikula, David Bremner, Dmitry Kurochkin, notmuch
[-- Attachment #1: Type: text/plain, Size: 482 bytes --]
On Sat, 31 Dec 2011 14:42:47 +0200, Jani Nikula <jani@nikula.org> wrote:
> Would it be a suitable compromise to bind 's' to notmuch-search (the
> mini-buffer search) also in notmuch-hello, while leaving the search
> box there with a common history?
>
> I'm not sure moving the point to search box needs a keybinding (but
> notmuch-hello-goto-search could still be there if the user wants to
> add a keybinding).
I'd be happy with that. I don't use 's' in notmuch-hello.
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2011-12-31 12:42 ` Jani Nikula
2011-12-31 13:06 ` David Bremner
2011-12-31 13:43 ` David Edmondson
@ 2012-01-02 13:23 ` Tomi Ollila
2012-01-02 20:03 ` Xavier Maillard
2 siblings, 1 reply; 18+ messages in thread
From: Tomi Ollila @ 2012-01-02 13:23 UTC (permalink / raw)
To: Jani Nikula, David Bremner, David Edmondson, Dmitry Kurochkin,
notmuch
On Sat, 31 Dec 2011 14:42:47 +0200, Jani Nikula <jani@nikula.org> wrote:
> On Fri, 30 Dec 2011 10:43:37 -0400, David Bremner <david@tethera.net> wrote:
>
> > Personally I would like to be able to customize the hello screen to
> > remove the search box. I find it confusing that that 's' jumps to the
> > search box there, and everywhere else brings up the mini-buffer. That
> > might be just me, and the fact that I bind "C-c s" globally to
> > notmuch-search. I could easily believe that for new users having a
> > search box is nicer.
>
> Would it be a suitable compromise to bind 's' to notmuch-search (the
> mini-buffer search) also in notmuch-hello, while leaving the search box
> there with a common history?
I like this approach!
> I'm not sure moving the point to search box needs a keybinding (but
> notmuch-hello-goto-search could still be there if the user wants to add
> a keybinding).
yes.
>
>
> BR,
> Jani.
Tomi
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2012-01-02 13:23 ` Tomi Ollila
@ 2012-01-02 20:03 ` Xavier Maillard
0 siblings, 0 replies; 18+ messages in thread
From: Xavier Maillard @ 2012-01-02 20:03 UTC (permalink / raw)
To: Tomi Ollila, Jani Nikula, David Bremner, David Edmondson,
Dmitry Kurochkin, notmuch
On Mon, 02 Jan 2012 15:23:17 +0200, Tomi Ollila <tomi.ollila@nixu.com> wrote:
> On Sat, 31 Dec 2011 14:42:47 +0200, Jani Nikula <jani@nikula.org> wrote:
> > On Fri, 30 Dec 2011 10:43:37 -0400, David Bremner <david@tethera.net> wrote:
> >
> > > Personally I would like to be able to customize the hello screen to
> > > remove the search box. I find it confusing that that 's' jumps to the
> > > search box there, and everywhere else brings up the mini-buffer. That
> > > might be just me, and the fact that I bind "C-c s" globally to
> > > notmuch-search. I could easily believe that for new users having a
> > > search box is nicer.
> >
> > Would it be a suitable compromise to bind 's' to notmuch-search (the
> > mini-buffer search) also in notmuch-hello, while leaving the search box
> > there with a common history?
>
> I like this approach!
+1 but, like David, I'd like to be able to display/to hide the search
box via a keybinding and/or a configuration option.
/Xavier
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2011-12-25 4:14 [PATCH 1/4] emacs: unify search mechanisms Dmitry Kurochkin
` (3 preceding siblings ...)
2011-12-30 10:44 ` [PATCH 1/4] emacs: unify search mechanisms David Edmondson
@ 2012-01-16 11:35 ` David Edmondson
2012-01-16 11:39 ` Dmitry Kurochkin
4 siblings, 1 reply; 18+ messages in thread
From: David Edmondson @ 2012-01-16 11:35 UTC (permalink / raw)
To: Dmitry Kurochkin, notmuch
[-- Attachment #1: Type: text/plain, Size: 1112 bytes --]
On Sun, 25 Dec 2011 08:14:52 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com> wrote:
> Before the change, there were two ways to do search in Emacs UI:
> search widget in notmuch-hello buffer and `notmuch-search'
> function bound to "s". Internally, notmuch-hello search widget
> uses `notmuch-search' function. But it uses widget field input
> instead of minibuffer. Such duplication is a major issue for
> notmuch-hello usability: search interface is inconsistent and
> lacks features that are available in minibuffer (e.g. history and
> auto completion). Some of these features may be relatively easy
> to implement for notmuch-hello search, others would be much more
> tricky. So to avoid duplication, make UI more consistent, bring
> notmuch-hello search to feature parity with the minibuffer
> search, the patch replaces notmuch-hello search widget and with a
> button that works the same way as "s" key binding.
Dmitry, if Daniel re-submits his patches to allow the construction of
`notmuch-hello' buffers to be configured, it seems that this patchset
would become unnecessary. Is that correct?
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2012-01-16 11:35 ` David Edmondson
@ 2012-01-16 11:39 ` Dmitry Kurochkin
2012-01-16 11:47 ` David Edmondson
2012-01-16 12:21 ` Jani Nikula
0 siblings, 2 replies; 18+ messages in thread
From: Dmitry Kurochkin @ 2012-01-16 11:39 UTC (permalink / raw)
To: David Edmondson, notmuch
On Mon, 16 Jan 2012 11:35:37 +0000, David Edmondson <dme@dme.org> wrote:
> On Sun, 25 Dec 2011 08:14:52 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com> wrote:
> > Before the change, there were two ways to do search in Emacs UI:
> > search widget in notmuch-hello buffer and `notmuch-search'
> > function bound to "s". Internally, notmuch-hello search widget
> > uses `notmuch-search' function. But it uses widget field input
> > instead of minibuffer. Such duplication is a major issue for
> > notmuch-hello usability: search interface is inconsistent and
> > lacks features that are available in minibuffer (e.g. history and
> > auto completion). Some of these features may be relatively easy
> > to implement for notmuch-hello search, others would be much more
> > tricky. So to avoid duplication, make UI more consistent, bring
> > notmuch-hello search to feature parity with the minibuffer
> > search, the patch replaces notmuch-hello search widget and with a
> > button that works the same way as "s" key binding.
>
> Dmitry, if Daniel re-submits his patches to allow the construction of
> `notmuch-hello' buffers to be configured, it seems that this patchset
> would become unnecessary. Is that correct?
Right. We will just need to fix the 's' key binding. Looking forward
for that.
Regards,
Dmitry
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2012-01-16 11:39 ` Dmitry Kurochkin
@ 2012-01-16 11:47 ` David Edmondson
2012-01-16 12:21 ` Jani Nikula
1 sibling, 0 replies; 18+ messages in thread
From: David Edmondson @ 2012-01-16 11:47 UTC (permalink / raw)
To: Dmitry Kurochkin, notmuch
[-- Attachment #1: Type: text/plain, Size: 501 bytes --]
On Mon, 16 Jan 2012 15:39:14 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com> wrote:
> > Dmitry, if Daniel re-submits his patches to allow the construction of
> > `notmuch-hello' buffers to be configured, it seems that this patchset
> > would become unnecessary. Is that correct?
>
> Right. We will just need to fix the 's' key binding. Looking forward
> for that.
Can I mark this set 'obsolete' then? (I'd be relying on you to remember
to post a patch to fix the keybinding later.)
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2012-01-16 11:39 ` Dmitry Kurochkin
2012-01-16 11:47 ` David Edmondson
@ 2012-01-16 12:21 ` Jani Nikula
2012-01-17 19:35 ` Dmitry Kurochkin
1 sibling, 1 reply; 18+ messages in thread
From: Jani Nikula @ 2012-01-16 12:21 UTC (permalink / raw)
To: Dmitry Kurochkin, David Edmondson, notmuch
On Mon, 16 Jan 2012 15:39:14 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com> wrote:
> On Mon, 16 Jan 2012 11:35:37 +0000, David Edmondson <dme@dme.org> wrote:
> > On Sun, 25 Dec 2011 08:14:52 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com> wrote:
> > > Before the change, there were two ways to do search in Emacs UI:
> > > search widget in notmuch-hello buffer and `notmuch-search'
> > > function bound to "s". Internally, notmuch-hello search widget
> > > uses `notmuch-search' function. But it uses widget field input
> > > instead of minibuffer. Such duplication is a major issue for
> > > notmuch-hello usability: search interface is inconsistent and
> > > lacks features that are available in minibuffer (e.g. history and
> > > auto completion). Some of these features may be relatively easy
> > > to implement for notmuch-hello search, others would be much more
> > > tricky. So to avoid duplication, make UI more consistent, bring
> > > notmuch-hello search to feature parity with the minibuffer
> > > search, the patch replaces notmuch-hello search widget and with a
> > > button that works the same way as "s" key binding.
> >
> > Dmitry, if Daniel re-submits his patches to allow the construction of
> > `notmuch-hello' buffers to be configured, it seems that this patchset
> > would become unnecessary. Is that correct?
>
> Right. We will just need to fix the 's' key binding. Looking forward
> for that.
Isn't (something like) this still needed to merge the search histories:
id:"1324698436-8532-1-git-send-email-dmitry.kurochkin@gmail.com"
Jani.
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/4] emacs: unify search mechanisms
2012-01-16 12:21 ` Jani Nikula
@ 2012-01-17 19:35 ` Dmitry Kurochkin
0 siblings, 0 replies; 18+ messages in thread
From: Dmitry Kurochkin @ 2012-01-17 19:35 UTC (permalink / raw)
To: Jani Nikula, David Edmondson, notmuch
Hello.
On Mon, 16 Jan 2012 12:21:20 +0000, Jani Nikula <jani@nikula.org> wrote:
> On Mon, 16 Jan 2012 15:39:14 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com> wrote:
> > On Mon, 16 Jan 2012 11:35:37 +0000, David Edmondson <dme@dme.org> wrote:
> > > On Sun, 25 Dec 2011 08:14:52 +0400, Dmitry Kurochkin <dmitry.kurochkin@gmail.com> wrote:
> > > > Before the change, there were two ways to do search in Emacs UI:
> > > > search widget in notmuch-hello buffer and `notmuch-search'
> > > > function bound to "s". Internally, notmuch-hello search widget
> > > > uses `notmuch-search' function. But it uses widget field input
> > > > instead of minibuffer. Such duplication is a major issue for
> > > > notmuch-hello usability: search interface is inconsistent and
> > > > lacks features that are available in minibuffer (e.g. history and
> > > > auto completion). Some of these features may be relatively easy
> > > > to implement for notmuch-hello search, others would be much more
> > > > tricky. So to avoid duplication, make UI more consistent, bring
> > > > notmuch-hello search to feature parity with the minibuffer
> > > > search, the patch replaces notmuch-hello search widget and with a
> > > > button that works the same way as "s" key binding.
> > >
> > > Dmitry, if Daniel re-submits his patches to allow the construction of
> > > `notmuch-hello' buffers to be configured, it seems that this patchset
> > > would become unnecessary. Is that correct?
> >
> > Right. We will just need to fix the 's' key binding. Looking forward
> > for that.
>
> Isn't (something like) this still needed to merge the search histories:
>
> id:"1324698436-8532-1-git-send-email-dmitry.kurochkin@gmail.com"
>
I have sent a new patch series implementing the changes [1].
Regards,
Dmitry
[1] id:1326828850-8519-1-git-send-email-dmitry.kurochkin@gmail.com
>
> Jani.
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2012-01-17 19:36 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-25 4:14 [PATCH 1/4] emacs: unify search mechanisms Dmitry Kurochkin
2011-12-25 4:14 ` [PATCH 2/4] emacs: reindent `notmuch-hello' function Dmitry Kurochkin
2011-12-25 4:14 ` [PATCH 3/4] emacs: hide recent searches if `notmuch-hello-recent-searches-max' is zero Dmitry Kurochkin
2011-12-25 4:14 ` [PATCH 4/4] test: fix Emacs tests expected output after notmuch-hello search changes Dmitry Kurochkin
2011-12-30 10:44 ` [PATCH 1/4] emacs: unify search mechanisms David Edmondson
2011-12-30 14:43 ` David Bremner
2011-12-30 15:01 ` David Edmondson
2011-12-30 17:09 ` Aaron Ecay
2011-12-31 12:42 ` Jani Nikula
2011-12-31 13:06 ` David Bremner
2011-12-31 13:43 ` David Edmondson
2012-01-02 13:23 ` Tomi Ollila
2012-01-02 20:03 ` Xavier Maillard
2012-01-16 11:35 ` David Edmondson
2012-01-16 11:39 ` Dmitry Kurochkin
2012-01-16 11:47 ` David Edmondson
2012-01-16 12:21 ` Jani Nikula
2012-01-17 19:35 ` Dmitry Kurochkin
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).