The Future of NeoMutt
This is a rough guide to some of the bigger goals for NeoMutt.
Some of the ideas will take a long time to become real…
Unless you help :-)
Table of Contents
Description: Validation and notification
Status: In progress
Refactor the handling of config items to define types, enable notifications
and perform validation.
Most of these changes won’t be visible to the user.
Description: User-defined accounts and account-specific config
Status: Blocked by Config System
Create an account
object that has its own config. This will simplify the
setup for multiple accounts and remove the need for many hooks.
Description: Make network connection code independent of NeoMutt
Status: Started
Making the code independent of NeoMutt will make it easier to maintain and test.
Description: Make IMAP code independent of NeoMutt
Status: Blocked by libconn
Making the code independent of NeoMutt will make it easier to maintain and test.
Description: Add lots of commands to display useful info
Status: Started
See also: https://github.com/neomutt/neomutt/issues/162
There are lots of possibilities:
:color
display all NeoMutt’s colours:set
display variables that have been set:messages
display the recent messages / errorsDescription: Make it easier to find the help you need
Status: Future
Everything’s documented in NeoMutt, but too often users can’t find what they need to know. Change the Guide to be more task-oriented. Make it easier for users to contribute to the Guide.
Description: Change GUI architecture
Status: Future
Replace the five standard windows: Index, Message, Help, Sidebar, Status with a nested set. This would simplify the redrawing and the key binding logic. This would be the first step to an MVC architecture.
Description: Make mouse clicks useful
Status: Blocked by Nested Windows
NeoMutt already has some mouse support (try your mouse wheel in the index).
It should be pretty simple to turn ncurses mouse events into functions like:
<display-message>
<sidebar-open>
<edit-to>
Description: Better colour and attribute support
Status: Future
Curses severely limits how NeoMutt can display colours and attributes. Many other curses applications manage colour display themselves. Using Vim as a model, allow the user to pick and mix colours, attributes and transparency.
Description: Support OAuth2 Authentication
Status: Future
Supporting OAuth2 doesn’t require many changes to NeoMutt. Initially, NeoMutt would ask the server for a token and get the user to visit the server’s website. This saved token can then be used to login to the server for POP/IMAP/SMTP connections.
Description: Rebuild the file/folder browser
Status: Future
NeoMutt’s browser is complicated to use and has dependencies on all the major mailbox types. It needs to be made independent.