about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--config/aerc.conf.in5
-rw-r--r--config/config.go9
-rw-r--r--doc/aerc-config.5.scd5
-rw-r--r--widgets/msgviewer.go10
4 files changed, 21 insertions, 8 deletions
diff --git a/config/aerc.conf.in b/config/aerc.conf.in
index d490831..4219042 100644
--- a/config/aerc.conf.in
+++ b/config/aerc.conf.in
@@ -69,6 +69,11 @@ show-headers=false
 # Default: From|To,Cc|Bcc,Date,Subject
 header-layout=From|To,Cc|Bcc,Date,Subject
 
+# Whether to always show the mimetype of an email, even when it is just a single part
+#
+# Default: false
+always-show-mime=false
+
 [compose]
 #
 # Specifies the command to run the editor with. It will be shown in an embedded
diff --git a/config/config.go b/config/config.go
index 9e081fd..6f3345d 100644
--- a/config/config.go
+++ b/config/config.go
@@ -77,10 +77,11 @@ type FilterConfig struct {
 }
 
 type ViewerConfig struct {
-	Pager        string
-	Alternatives []string
-	ShowHeaders  bool       `ini:"show-headers"`
-	HeaderLayout [][]string `ini:"-"`
+	Pager          string
+	Alternatives   []string
+	ShowHeaders    bool `ini:"show-headers"`
+	AlwaysShowMime bool `ini:"always-show-mime"`
+	HeaderLayout   [][]string `ini:"-"`
 }
 
 type AercConfig struct {
diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd
index 3d39ef6..665f4f4 100644
--- a/doc/aerc-config.5.scd
+++ b/doc/aerc-config.5.scd
@@ -133,6 +133,11 @@ These options are configured in the *[viewer]* section of aerc.conf.
 
 	Default: false
 
+*always-show-mime*
+	Whether to always show the mimetype of an email, even when it is just a single part.
+
+	Default: false
+
 ## COMPOSE
 
 These options are configured in the *[compose]* section of aerc.conf.
diff --git a/widgets/msgviewer.go b/widgets/msgviewer.go
index 1f0b0e4..3f9b7fe 100644
--- a/widgets/msgviewer.go
+++ b/widgets/msgviewer.go
@@ -38,9 +38,10 @@ type MessageViewer struct {
 
 type PartSwitcher struct {
 	ui.Invalidatable
-	parts       []*PartViewer
-	selected    int
-	showHeaders bool
+	parts          []*PartViewer
+	selected       int
+	showHeaders    bool
+	alwaysShowMime bool
 }
 
 func NewMessageViewer(acct *AccountView, conf *config.AercConfig,
@@ -165,6 +166,7 @@ func createSwitcher(switcher *PartSwitcher, conf *config.AercConfig,
 	store *lib.MessageStore, msg *models.MessageInfo) error {
 	var err error
 	switcher.showHeaders = conf.Viewer.ShowHeaders
+	switcher.alwaysShowMime = conf.Viewer.AlwaysShowMime
 
 	if len(msg.BodyStructure.Parts) == 0 {
 		switcher.selected = 0
@@ -312,7 +314,7 @@ func (ps *PartSwitcher) Event(event tcell.Event) bool {
 
 func (ps *PartSwitcher) Draw(ctx *ui.Context) {
 	height := len(ps.parts)
-	if height == 1 {
+	if height == 1 && !ps.alwaysShowMime {
 		ps.parts[ps.selected].Draw(ctx)
 		return
 	}