Commit Graph

174 Commits

Author SHA1 Message Date
djcb 7dff782c58 mu4e: let-bind context vars in mu4e-get-*-folder
When we determine the drafts/refile/trash/sent folder, see if we can
find a context matching the particular message. If we find one, let-bind
the vars for that context before determining the folder.

This allows e.g for moving message to context-specific folder, rather
than the one for the current context - useful when dealing with headers
buffers with message belonging to different contexts.
2015-12-29 18:47:12 +02:00
djcb 6fa9556aa8 mu4e: improve mu4e-contact-rewrite-function
Allow mu4e-contact-rewrite-function to return nil to remove a
contact. Improve documentation.
2015-12-26 13:26:26 +02:00
djcb ed1c7edba3 mu4e: some more context tweaking
Fix some typo, change default for startup to pick-first.
2015-12-24 16:03:55 +02:00
djcb 113c024632 mu4e: implement context-policies
Allow setting a policy about what context to choose when starting mu4e
and composing a message. Basically:

When you have defined contexts and you start mu4e it decides which
context to use based on the variable `mu4e-context-policy';
similarly, when you compose a new message, the context is determined
using `mu4e-compose-context-policy'.

These policies can be one of the following:
- a symbol always-ask: unconditionally ask the user what context to pick

The other choices only apply if none of the context matches (i.e., if
none of the contexts' match-functions returns t:

- symbol ask: ask the user
- a symbol pick-first: pick the first context
- nil: don't change the context
2015-12-23 22:01:51 +02:00
djcb 27e9251d24 mu4e: add mu4e-bookmark-define
mu4e-bookmark-define allows for defining a bookmark; it will be added to
mu4e-bookmarks, replacing any bookmarks with the same key.
2015-12-22 18:03:53 +02:00
djcb 41677dfa0b mu4e: cosmetic 2015-12-21 22:24:16 +02:00
djcb 1a0ad61e4d mu4e: by default, don't cache maildirs
Since the environment (and settings) can change, default to
re-calculating the maildirs when we need them. When you have so many
maildirs that this is slow, you can set mu4e-cache-maildir-list to
t (but be sure to read the docstring).
2015-12-19 13:59:18 +02:00
djcb a1d0071dd0 mu4e: contexts: auto select one at startup, document
When contexts have been defined, automatically select one at startup --
either the first whose match-function returns non-nil, or simply the
first one.

Document this, too.
2015-12-15 18:20:31 +02:00
djcb 2262e185af mu4e: allow for clearing some cached values
This helpful for various 'change account' actions
2015-12-04 23:20:27 +02:00
Hinrik Örn Sigurðsson 77529b105e Allow specifying list shortnames with regexes
This way mu4e will intelligently shorten mailing list names which
contain dots:

    (setq mu4e-mailing-list-patterns
          '("\\([a-z0-9.]+\\)\.lists\.company\.com"))
2015-11-14 00:04:26 +00:00
djcb ada193c8fd Don't raise 'Update process is already running' error
Only issue a message. Refactor a bit.

This is for the use-case where the time to update is longer than the
period between updates -- e.g. you return from suspension/hibernation
and an old update process is still running.
2015-10-13 07:05:55 +03:00
djcb 041a79fdb5 mu4e: add NEWS(.org) as a main menu item 2015-06-09 21:08:02 +03:00
djcb 823d80f075 mu4e: allow lisp expressions for bookmarks
based on an idea by davidcsterratt
2014-12-01 23:29:40 +02:00
djcb 664431bf8c mu4e: improve mail-retrieval error handling
Add two new customization variables:
  mu4e-index-update-error-continue
  mu4e-index-update-error-warning

With these, we can configure what happens when the mail-retrieval
program finishes with a non-zero exit code.

Make the default to warn but continue; it seems quite some users got
bitten by the old behavior of not updating after an error (which may
only be a pseudo-error). offlineimap/mbsync do not document their exit
codes very well, unlike fetchmail.

Also update manual for this.
2014-11-30 11:33:31 +02:00
djcb efb40abaa1 Guard against nil in mu4e~guess-maildir (Fixes #472)
Add a guard so we don't error out if string-match evaluates to nil
2014-09-23 00:36:31 +03:00
djcb 8b775ab238 * mu4e: update the contact-rewriting code a bit:
- make the default nil rather than a dummy (identity) function, for
    speed
  - don't use 'canonical' but the 'rewrite' which is a bit more general
2014-04-06 17:51:12 +01:00
joost d2915b7bb9 fixes #383 2014-03-28 10:24:43 +01:00
Thierry Volpiatto ee2e9d11f3 * mu4e/mu4e-utils.el (mu4e~fontify-cited): remove unsused let var. 2014-03-02 21:04:21 +01:00
Thierry Volpiatto 3835c2e45e * mu4e/mu4e-utils.el (mu4e~fontify-cited): Use string-width.
* mu4e/mu4e-vars.el (mu4e-cited-regexp): Improve it.
2014-03-02 20:58:49 +01:00
Thierry Volpiatto 1e8f97b961 * mu4e/mu4e-utils.el (mu4e~fontify-cited): Simplify.
* mu4e/mu4e-vars.el (mu4e-cited-regexp): Simplify regex and use a group to match the >*.
2014-03-02 08:19:33 +01:00
Thierry Volpiatto 815961acbb * mu4e/mu4e-utils.el (mu4e~fontify-cited): Fix regexp matching cited lines. 2014-03-02 06:16:58 +01:00
sabof e2c8bff298 Moved citation regexps to a variable 2014-02-05 20:24:05 +00:00
sabof d4bcf629c2 Use window-deletable-p 2014-02-03 05:30:29 +00:00
djcb a4646ca502 * mu4e-utils: fix mu4e~temp-window 2014-01-12 12:57:05 +02:00
Dirk-Jan C. Binnema 980f786ae3 Merge pull request #305 from tmalsburg/master
* mu4e: update window stays inside mu4e boundaries
2013-11-16 06:26:41 -08:00
djcb 86aafa7fe0 * mu4e: don't error out if no empty lines are found 2013-10-21 23:17:35 +03:00
Titus von der Malsburg 447a15e9bf mu4e: update window stays inside mu4e boundaries 2013-10-21 11:04:52 +02:00
djcb 9c8101d949 * mu4e: centralize some of the fontification code; cleanup signature support 2013-10-20 15:41:47 +03:00
djcb 55d6057dac * mu4e: some more work on the updating process 2013-10-19 16:36:17 +03:00
djcb 1fca0be451 * mu4e: some improvements in the update-mail window behaviour (wip) 2013-10-19 13:32:01 +03:00
djcb 2df31c8a71 * mu4e: restore the old update-buffer behaviour 2013-10-19 12:39:40 +03:00
Thierry Volpiatto 78ffccfb2d * mu4e/mu4e-utils.el (mu4e-update-mail-and-index): Don't run a new process if one is already running. 2013-10-16 15:08:12 +02:00
djcb b92e2d20fd * mu4e: fix some minor things in the main page 2013-10-14 22:30:29 +03:00
djcb 9abaf83fbd * mu4e: don't balk on searches with no results and some cleanups 2013-10-14 00:07:27 +03:00
djcb 8be5e92709 * mu4e: fix display of images 2013-10-13 23:24:56 +03:00
djcb 92158cfdd4 * mu4e: add hooks mu4e-headers-found-hook and mu4e-update-pre-hook, document them. 2013-10-13 21:44:47 +03:00
djcb 66ebdf21e0 * mu4e: don't try to kill the visible window when there is none (thanks to thierryvolpiatto) 2013-10-13 19:48:08 +03:00
djcb 03ae06532f * mu4e: some cleanups 2013-10-12 16:04:40 +03:00
djcb 347b41c951 * cosmetic 2013-10-12 14:12:42 +03:00
Thierry Volpiatto f650eec98c * mu4e/mu4e-utils.el (mu4e~update-mail-mode): New mode to use when updating emails.
(mu4e-update-mail-and-index): Use it.
2013-10-10 11:42:21 +02:00
Thierry Volpiatto ac89861b96 * mu4e/mu4e-main.el (mu4e-interrupt-update-mail): Move to mu4e-utils.el.
* mu4e/mu4e-utils.el (mu4e~interrupt-update-mail): Renamed with mu4e~ prefix and add docstring.
(mu4e--update-buffer-name): same.
2013-10-09 06:38:02 +02:00
Thierry Volpiatto 4bfaedd739 * mu4e/mu4e-utils.el (mu4e-update-mail-and-index): Don't make window dedicated. 2013-10-08 14:55:23 +02:00
Thierry Volpiatto 8da15dc8f2 * mu4e/mu4e-main.el (mu4e-interrupt-update-mail): New function to stop update process.(SIGINT) (mu4e~main-view): Use it and bind it to S.
* mu4e/mu4e-utils.el (mu4e-update-mail-and-index): Fix Window and buffer process.
2013-10-08 14:44:26 +02:00
Stuart Hickinbottom 6e8e9ec44a New flexible method of customising completing-read
Added the customisation option 'mu4e-completing-read-function' which can
be used to choose which method of input-with-completion will be used by
mu4e. This variable is set to the function which mu4e will use.

By default, mu4e will use ido (via 'ido-completing-read'), but any
compatible completing-read function can be used instead. Interesting
choices would include 'helm-comp-read' for Helm-based completion, and
'completing-read' for the built-in basic completion system.
2013-09-12 22:42:45 +01:00
djcb fa6d63af43 * mu4e-utils: fix display of messages only consisting of an image 2013-08-11 15:28:30 +03:00
djcb beffb8072b * mu4e: add variable mu4e-hide-index-messages 2013-08-11 14:37:19 +03:00
djcb f7eefcf37a * cosmetics 2013-08-11 14:12:09 +03:00
djcb b26bd3a4e7 * mu4e: do a better job of trying to show images (without delay) 2013-07-06 11:51:33 +03:00
djcb 59666a7eda * mu4e: automatically refresh the contacts list when there are changes in the index 2013-06-29 17:06:04 +03:00
djcb 72e6fb997a * mu4e: make the byte-compiler happy 2013-06-29 13:07:32 +03:00
djcb 76a87ded2d * mu4e-utils: support the new format for the contacts list 2013-06-16 23:05:52 +03:00
joost aefa144421 handle the case where phrase is empty 2013-06-05 10:19:08 +02:00
djcb 34c84a1258 * mu4e: fix mu4e-message 2013-06-03 23:35:01 +03:00
djcb 3c67aa6591 * mu4e: fix a few compiler warnings / typos 2013-06-03 21:09:20 +03:00
djcb 60f75eea42 * minor 2013-05-30 06:16:05 -07:00
djcb 445d0cc6fb * fix quoting of contacts in autocompletion (thanks to jhelberg) 2013-05-27 11:47:42 -07:00
djcb 1dea612cba * cosmetics 2013-05-21 20:11:11 +03:00
djcb 222d8c3627 * improve message-composition / draft handling 2013-05-21 08:05:06 +03:00
djcb 4de859668c * cosmetics 2013-05-13 00:05:14 +03:00
Steve Purcell fd336771b2 Fix typo 2013-05-03 18:39:05 +02:00
djcb 3c4b351e69 * mu4e: small cleanup 2013-04-06 10:17:03 +03:00
Nicolas Avrutin 0fa6a92bb3 support recursive maildirs 2013-03-17 09:34:48 -04:00
Tibor Simko eb606f9c8a mu4e: fix `q' binding in About buffer
mu4e's About buffer uses org-mode and used to locally bind `q' to bury
the buffer.  However, altering local key map via local-set-key
shares binding with all buffers using the same major mode.  As a result,
after executing About mu4e once, pressing `q' in any regular org-mode
buffer was also burying it instead of inserting the letter `q'.

This commit fixes the problem by creating a new mu4e-about-mode
derived from org-mode and by defining `q' only for that mode.
2013-03-10 21:27:59 +01:00
djcb a2fc0a26b9 * mu4e: don't try to select nil window when updating mail 2013-03-05 06:35:29 -08:00
djcb 1c98cbbf4e * mu4e: update doc for mu4e-create-maildir-maybe 2013-03-04 20:58:41 -08:00
djcb 6fc99ad495 * mu4e: auto scroll down in the mail fetch window (thanks to chrisklaiber) 2013-02-17 17:32:12 +02:00
djcb 382ccc2e2e * improvements in the :mailing-list field 2012-12-26 13:01:36 +02:00
djcb 1e6b7792d6 * better handling of mailing lists which are not in the shortcuts lists 2012-12-22 11:48:02 +02:00
djcb 4dd81e5b7f * mu4e-utils: when completing a maildir, put the initial / there already 2012-12-20 23:32:37 +02:00
djcb 10ad5ce2ca * mu4e: add support for display mailing list (short)names in headers/view mode 2012-12-18 23:29:17 +02:00
djcb 2cd915f611 * cosmetics 2012-12-17 22:26:22 +02:00
Jonas Bernoulli cd5f730222 mu4e-maildir-shortcuts: define custom type 2012-12-12 20:07:01 +01:00
djcb 0e204fece4 * small cleanup of the retagging support 2012-12-09 15:07:21 +02:00
Jonas Bernoulli 8a3d4c27de improve doc-strings
The first sentence should summarize the variable's or function's
purpose and it should fit on the first line.  Change existing
doc-string by:

* Move first sentence onto first line even if that makes it _a bit_
  long.
* Move additional notes out of first sentence and add them later,
  possibly as complete sentences.
* If I am uncertain whether doing the above would alter the meaning,
  _don't_ do it.
* If fitting the initial sentence on the first line would require a
  complete rewrite of the doc-string _don't_ do so unless it is very
  easy to do.
* Remove indentation from second and later lines if it is there to
  align them with the first in the source code, instead of in
  `describe-*' output.
* Make "pullet point" lists a bit more consistent.

Obviously this does not fix all problems but it's a start.
2012-11-10 14:01:17 +01:00
djcb f64922e026 * mu4e: update the mail/indexing update process:
- M-x mu4e-update-mail-and-index (C-S-U in main/headers/view/compose, with
  prefix arg, run in background
  - M-x mu4e-update-index to only update the index
  - document / add to FAQ
2012-10-25 11:59:50 +03:00
djcb 6ccbd45b85 * mu4e: replace `mu4e-user-mail-address-regexp' and `mu4e-my-mail-addresses' with `mu4e-user-mail-address-list' 2012-10-19 16:01:55 +03:00
djcb 1873b20acb * mu4e: cosmetic 2012-10-19 00:51:24 +03:00
djcb d65e1ddf44 mu4e: hopefully get rid of the org-mode-related warnings 2012-10-16 11:01:33 +03:00
djcb 11f5105402 * mu4e: hopefully get rid of the org-mode-related warnings 2012-10-16 10:58:27 +03:00
djcb 23fc0b4a63 * mu4e: offer to create target dirs when they do not exist yet 2012-10-09 00:03:24 +03:00
djcb 1c6e882142 * mu4e: add mu4e-running-p, document it 2012-10-06 22:22:11 +03:00
djcb f9c9e790a6 * mu4e: allow setting a function for mu4e-attachment-dir 2012-10-03 12:53:16 +03:00
djcb c7bb9aef9a * mu4e: cosmetics 2012-09-28 17:10:34 +03:00
djcb 18fd16ddec * mu4e: fix mu4e~check-requirements for dynamic folders 2012-09-27 22:26:16 +03:00
djcb 5779820ba0 * mu4e: dynamic folder updates 2012-09-27 21:53:21 +03:00
djcb dde75fbb86 * mu4e: implement automatic refiling with 'r' 2012-09-27 12:53:16 +03:00
djcb bd0cba007b * mu4e: allow functions for special folders, implement for marking (WIP) 2012-09-27 12:01:26 +03:00
djcb 58b6be1d97 * mu4e: allow functions for special folders (WIP), implement for msg composition 2012-09-27 10:03:58 +03:00
djcb 5c2025a12c * mu4e: mu4e-message part 3 2012-09-26 17:28:30 +03:00
djcb 97c13d0920 * mu4e: mu4e-message part 2 2012-09-26 16:47:42 +03:00
djcb 7d831184b7 * mu4e: abstract access to the mu4e-message plist 2012-09-26 12:25:38 +03:00
djcb 0844984095 * mu4e: improve version checks, startup handling 2012-09-15 18:04:39 +03:00
djcb ac1d1b2ed8 * cosmetics 2012-09-13 21:12:12 +03:00
djcb f9e14d72b4 * mu4e: only use user-error if it exists (i.e.., emacs trunk); otherwise
user (error..)

  it'd be nice to have something like user-error in emacs 24, 23, i.e., like
  error but without triggering the debugger
2012-09-11 22:47:58 +03:00
djcb 07eb3a7515 * mu4e: docstring improved even more 2012-09-11 12:55:22 +03:00
djcb df0105cc8c * mu4e: improved docstring for mu4e-index-updated-hook 2012-09-11 12:50:59 +03:00
djcb ef3a8f832d * mu4e: add mu4e-index-updated-hook, triggered when the indexing process did
any updates. This can be used e.g. to get some notification when there is
  new mail. It imperfect though; see the docstring and the entry in the mu4e faq.
2012-09-11 11:58:00 +03:00
djcb ca3f491ff6 * mu4e: support '/' as well to choose a maildir from the full set 2012-09-09 13:17:09 +03:00
djcb ab17f384bf * mu4e: give user more info in mu4e-message, but attempt not to disrupt input 2012-09-07 10:46:49 +03:00
djcb e342f9a5c4 * mu4e: use (user-error ..), not (error ..) for user errors 2012-09-06 10:33:53 +03:00