Commit graph

63 commits

Author SHA1 Message Date
Manos Pitsidianakis
9f7dcfc21e
Bump version to 0.8.10
Highlights:
  ===========

  - added pipe-attachment command
  - added sample scripts for using meli as a mailto scheme handler in
    contrib/
  - fixed GPG encryption with libgpgme

  Contributors in alphabetical order:
  ===================================

  - Manos Pitsidianakis
  - Matthias Geiger

  Added
  =====

  - 5e77821f mail/view: add pipe-attachment command in PR #540
    "mail/view: add pipe-attachment command"
  - fa896f6b contrib: add mailto: scheme handler scripts
  - 00ce9660
    melib/backends: add as_any/as_any_mut methods to BackendMailbox
  - fd243fa5 maildir: add mailbox creation tests
  - de65eec3 meli/accounts: add mailbox_by_path() tests in PR #535
    "Rework maildir mailbox path logic, add tests"
  - 6b363601 melib/gpgme: impl Display for gpgme::Key

  Bug Fixes
  =========

  - 60c90d75 melib/attachments: ensure MIME boundary prefixed with CRLF
  - 3433c5c3 compose/pgp: rewrite key selection logic in PR #541 "More
    gpgme/PGP fixes again"
  - 12de82e7 melib/conf: fix mutt_alias_file not being validated in PR
    #550 "Remove sealed_test dependency"
  - c8e055a7 Fix version migrations being triggered backwards in PR #557
    "Fix version migrations being triggered backwards"
  - efab99fd
    terminal: check for NO_COLOR env var without unicode validation
  - 36a63e88 melib/maildir: rewrite create_mailbox()
  - fcab855f view: ensure envelope headers are always populated in PR
    #538 "view: ensure envelope headers are always populated"
  - 84564f44 mailcap: don't drop File before opening it in PR #552
    "mailcap: don't drop File before opening it"

  Changes
  =======

  - ed85da51 Remove sealed_test dependency

  Refactoring
  ===========

  - 03df2ac1 meli/utilities: add print utilities for tests
  - 18e9d5c1 conf.rs: impl From<melib::AccountSettings> for AccountConf
  - 1f2fec19 Fix 1.83.0 lints in PR #536 "CI: Add action to check for
    DCO signoffs in PRs"
  - 192ecea2 compose/gpg.rs: Fix msrv regression

  Documentation
  =============

  - 4a61a4b8 melib: include README.md as preamble of crate rustdocs
  - 80e53471 BUILD.md: move melib specific stuff to melib/README.md
  - 91a17ece melib/README.md: mention sqlite3-static feature
  - b77a691b meli/README.md: Add cargo features section in PR #549
    "Document cargo features in READMEs"
  - 91dc271d contrib: add a README.md file
  - 2e900be6 contrib/README.md: add section about oauth2.py
  - 07812d2c contrib/README.md: elaborate a bit about mailto in PR #545
    "Add external mailto: handler support via scripts in contrib"
  - e784e8d2 scripts: add markdown_doc_lints.py

  Continuous Integration
  ======================

  - 77629851 CI: Add action to check for DCO signoffs in PRs
  - f944ebed CI: Add error msg when cargo-derivefmt check fails
  - d49344f9 CI: Move MSRV checks from manifest to lints in PR #553
    "ci-workflow-fixes"
  - ece6bfc2 CI: non-zero exit if cargo-derivefmt-* targets fail
  - 2257b91b CI: add actions/cache steps in PR #554 "CI: add
    actions/cache steps"
  - a1c9524f CI: fix check_dco.sh not working with other repos in PR
    #555 "CI: fix check_dco.sh not working with other repos"

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-12-06 07:56:00 +02:00
Manos Pitsidianakis
5e77821f78
mail/view: add pipe-attachment command
You can pipe individual attachments to binaries with the following
     command:

     pipe-attachment INDEX binary ARGS

     Example usage with the less(1) pager:
           pipe-attachment 0 less
     If the binary does not wait for your input before exiting, you will
     probably not see its output since you will return back to the user
     interface immediately.  You can write a wrapper script that pipes your
     binary's output to
           less
     or
           less -r
     if you want to preserve the ANSI escape codes in the pager's output.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-11-30 11:25:31 +02:00
Manos Pitsidianakis
25c32a6b95
meli/docs/meli.conf.examples.5: fix .Dt macro arguments
Dt macro takes two arguments, or three of the last one is the host
machine architecture.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-11-24 11:56:07 +02:00
Manos Pitsidianakis
b912aabca2
docs: add examples of file picker usage
Add an example for `fzf` use with the `add-attachment-file-picker < `
command when composing e-mail.

Closes #507

Resolves: <https://git.meli-email.org/meli/meli/issues/507>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-11-15 12:27:53 +02:00
Manos Pitsidianakis
789a88b28d
shortcuts: add select_motion equivalent to select_entry
Change select_entry to toggle only one's selection entry (default 'V'),
while select_motion (default 'v') inherits the original functionality of
  performing a select motion when combined with a number and motion verb
  (scroll up/down etc)

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-11-04 15:13:40 +02:00
Manos Pitsidianakis
6c315580b1
compose: fix add-attachment-file-picker
Related to #507

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-10-24 21:09:18 +03:00
Manos Pitsidianakis
77e7c3df60
Add support for signatures
Add config values to `composing` config section to enable signatures:

   signature_file Path                   (optional) Plain text file with signature that will pre-populate an email draft.  Signatures must be explicitly enabled to be used, otherwise this setting will be ignored.  (None)

   use_signature bool                    Pre-populate email drafts with signature, if any.  meli will lookup the signature value in this order:
                                         1.   The signature_file setting.
                                         2.   ${XDG_CONFIG_DIR}/meli/<account>/signature
                                         3.   ${XDG_CONFIG_DIR}/meli/signature
                                         4.   ${XDG_CONFIG_DIR}/signature
                                         5.   ${HOME}/.signature
                                         6.   No signature otherwise.
                                         (false)

   signature_delimiter String            (optional) Signature delimiter, that is, text that will be prefixed to your signature to separate it from the email body.  (‘\n\n-- \n’)

Closes #498

Resolves: https://git.meli-email.org/meli/meli/issues/498
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-10-05 18:50:02 +03:00
Manos Pitsidianakis
8af003abd0
Rename addressbook stuff to "contacts"
Wasn't a nice name to begin with.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-09-23 09:44:00 +03:00
Manos Pitsidianakis
2001b4dd06
Make subscribed_mailboxes conf val optional
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-09-21 13:06:01 +03:00
Manos Pitsidianakis
aaea3a5ab4
nntp: add timeout conf flag
To match IMAP and JMAP, add a configuration flag `timeout` to use for
server connections.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-09-14 10:52:47 +03:00
Manos Pitsidianakis
46b2c3b1f7
Add listing.thread_layout config flag
Allows the user to set the default thread layout and takes the values
"auto" | "vertical" | "horizontal". The layout can always be changed at
runtime with the `listing.toggle_layout` shortcut.

Closes #484

Resolves: <https://git.meli-email.org/meli/meli/issues/484>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-09-12 15:15:52 +03:00
Manos Pitsidianakis
e9a72072bf
Remove unused/obsolete plugins code and mentions
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-09-08 11:30:03 +03:00
Manos Pitsidianakis
601e37117c
Add vCard exports
Add shortcut to export contact under cursor in the contact list as a
.vcf file (default: `E`).

Also add an export button in the contact editor form.

Closes #424

Resolves: <https://git.meli-email.org/meli/meli/issues/424>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-09-08 11:30:03 +03:00
Manos Pitsidianakis
0c0f821000
Add a "move to Trash" shortcut
Add send_to_trash shortcut (default value: `D`) to send an entry or
selected entries to the Trash folder.

Closes #389

Resolves: <https://git.meli-email.org/meli/meli/issues/389>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-09-08 09:21:39 +03:00
Manos Pitsidianakis
00236b86f6
docs: add meli.conf.examples(5) WIP
Closes #461

Resolves: <https://git.meli-email.org/meli/meli/issues/461>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-09-08 09:21:37 +03:00
Manos Pitsidianakis
57b45a9c4a
docs/historical-manpages: add DEP5 copyright file
Add debian copyright file for historical manpages. Copyright was
mentioned in the manpage comments, but wasn't otherwise visible.

While at it, make files ending up at .gz actually gzip'ed.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-09-02 22:42:04 +03:00
Manos Pitsidianakis
a55f65e131
meli.conf.5: Fix wrong default value type in default_header_values
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-09-02 11:52:51 +03:00
Manos Pitsidianakis
6fbf569fe0
search: add Message-ID, and other header search support
Add support for searching by Message-ID, In-Reply-To, References, or any
header with the following keywords:

- "message-id:term", "msg-id:term"
- "in-reply-to:term"
- "references:term"
- "header:title,value"

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:30 +03:00
Manos Pitsidianakis
72dea6f3b2
Manpage fixes
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-23 14:48:29 +03:00
Manos Pitsidianakis
aed7a60fb9
samples: add ibm-modern theme
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-11 14:18:13 +03:00
Manos Pitsidianakis
84cfa358de
conf: remove need for global send_mail setting
This was a bad UX artifact from the very first meli versions. There's no
need to keep it around.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-08-03 16:03:41 +03:00
Manos Pitsidianakis
a83b4176b0
meli.1: small fixes
- Use .Oo/.Oc for inline Optional arguments
- Replace "thread" selection with "entry"
- Spell out alternative arguments in set seen | unseen

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-07-31 08:20:39 +03:00
Manos Pitsidianakis
6379fbe8f4
meli/terminal: add support for Undercurl attribute
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-07-17 17:19:27 +03:00
Manos Pitsidianakis
475860c946
meli/subcommands: accept - for stdio in {create,test}_config
Accept "-" operand in create_config and test_config subcommands as
stdout and stdin respectively.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-07-13 17:09:19 +03:00
Manos Pitsidianakis
a8e82a302b
meli/docs/meli.conf.5: Add missing entries from JMAP
Configuration entries `use_token` and `timeout` were not included in the
JMAP section so add them.

Related to #422

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-07-11 09:08:36 +03:00
Manos Pitsidianakis
84d93d6555
melib/imap: add support for ID extension (opt-in)
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:11 +03:00
Manos Pitsidianakis
97aa6a8e6c
meli/docs: replace obsolete .Tn macro with .Em
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:09 +03:00
Manos Pitsidianakis
9fb5bc41b4
melib/imap: impl AUTH=ANONYMOUS (RFC4505)
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:09 +03:00
Manos Pitsidianakis
eb27773b47
meli: add pager.named_filters setting
This new setting defines shell commands with names that can be applied
at any time on a text attachment by using the `filter` command without
any arguments.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-06-28 11:15:09 +03:00
euxane
3de4908d6b man(7): fix typo for toggle_expand_headers
Signed-off-by: euxane <euxane.trangirard@pacien.net>
2024-05-29 12:36:32 +02:00
euxane
4722d7ccb8 docs/meli.conf: also mention server_password_command for jmap
This was already supported but not mentioned on the manual page.

Signed-off-by: euxane <euxane.trangirard@pacien.net>
2024-05-27 19:59:40 +02:00
Manos Pitsidianakis
fe08d52a7f
terminal.rs: add force_text_emoji_presentation option
If true, text presentations of color symbols and emoji will be enforced
as much as possible.

Might not work on all non-text symbols and is experimental.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-05-20 16:21:11 +03:00
Manos Pitsidianakis
39fbb164ed
Change info_message_{next,prev} shortcuts to <, >
Alt-< and Alt-> might not work on all keyboards/terminals.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-05-20 10:35:38 +03:00
Manos Pitsidianakis
660022ce23
docs: add mailaddr.7 manpage
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-05-02 13:21:47 +03:00
Manos Pitsidianakis
c5e9e67604
docs: add historical-manpages dir
Add some old manpages that may be of interest to users:

- maildir (5)
- mbox (5)
- mbox (5qmail)
- qmail-maildir (5)

Under meli/docs/historical-manpages/

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-04-11 21:19:15 +03:00
Manos Pitsidianakis
38bca8f8bc
docs/meli.conf.5: mention use_oauth2=true for gmail oauth2
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-03-17 14:07:07 +02:00
Manos Pitsidianakis
4e941a9e8b
accounts: add default_mailbox setting
Add a default mailbox setting:

> The mailbox that is the default to open / view for this account. Must be
> a valid mailbox name.
>
> If not specified, the default is [`Self::root_mailbox`].

Closes: #350
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-03-16 18:16:05 +02:00
Manos Pitsidianakis
e481880321
Various manpage touchups and URL updates
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-03-10 21:34:46 +02:00
Manos Pitsidianakis
e2cdebe89c
Add option to highlight self in mailing list threads
Use under `listing` options such as:

globally
========

  [listing]
  highlight_self = true

per-account
===========

  [accounts.work]
  root_mailbox = '[Gmail]'
  format = "imap"
  subscribed_mailboxes = ["*"]
  listing.index_style = "compact"
  listing.highlight_self = true

per-mailbox
===========

  [accounts.work.mailboxes]
  "INBOX/Lists/project-devel" = { listing.highlight_self=true }

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-03-06 17:39:28 +02:00
Manos Pitsidianakis
3884c0da1f
docs/meli.conf.5: small typographic fixups
- Add macro for literal string values to enable showing unicode
 literal characters
- Fix bool/boolean inconsistency
- Fix "true" / true inconsistency
- Add macro for horizontal rule in subsections
- Add terminal subsection about unicode modifier / combining marks for
  emojis

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-03-06 17:39:28 +02:00
Manos Pitsidianakis
62aee4644b
Add subcommand to print log file location
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-02-29 12:04:49 +02:00
Manos Pitsidianakis
5af2e1ee66
Add subcommand to print config file location
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-02-29 11:53:30 +02:00
Guillaume Ranquet
a37d5fc1d1 conf/shortcuts: implement a key to command mapping
Permits users to map keys in their configuration file to an array of meli commands

e.g:
[shortcuts.listing]
commands = [ { command = [ "tag remove trash", "flag unset trash" ], shortcut = "D" },
             { command = [ "tag add trash", "flag set trash" ], shortcut = "d" } ]

Signed-off-by: Guillaume Ranquet <granquet@baylibre.com>
2024-01-18 15:53:35 +01:00
Manos Pitsidianakis
cd448924ed
listing: add clear-selection command
Add a command that performs what Escape does: clears the selection.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-01-06 15:35:56 +02:00
Manos Pitsidianakis
61a0c3c27f
listing: do not clear selection after action
Clear selection only when Escape is pressed, not after action is
completed. The user might want to perform further actions on the
selection.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-01-06 15:20:00 +02:00
Manos Pitsidianakis
7861fb0402
Fix typos found with typos tool
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-01-03 11:08:55 +02:00
Manos Pitsidianakis
148f0433d9
meli: implement flag set/unset action in UI
Also document it in manpages meli.1 and meli.7

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2024-01-01 21:28:21 +02:00
Manos Pitsidianakis
23c15261e7
mail/view: abstract envelope view filters away
Modularize an envelope view by introducing a stack of "view filters".

Example uses:

- html email can have a view on top of it that is plain text conversion
- selecting and viewing text/* attachments is just appending a new filter at
  the stack

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2023-12-02 17:20:39 +02:00
Manos Pitsidianakis
d018f07aa5
Retouch manual pages
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2023-12-02 17:20:38 +02:00
Manos Pitsidianakis
0114e69542
Add next_search_result and previous_search_result shortcuts
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2023-12-02 17:20:38 +02:00