From 8ee61777ada29432783e18a7634ab1150a631987 Mon Sep 17 00:00:00 2001 From: Bence Ferdinandy Date: Fri, 24 Nov 2023 21:28:12 +0100 Subject: templates: display "(no subject)" when subject is empty An empty subject, especially in a thread makes it for a slightly jarring layout. Add a new option empty-subject option to UI with "(no subject") as the default value. If the subject is empty and the current message is not the same subject as it's parent in a thread make {{.Subject}} evaluate to this option's value. Changelog-added: The `{{.Subject}}` template is evaluated to the new option `[ui].empty-subject` if the subject is empty. Signed-off-by: Bence Ferdinandy Acked-by: Robin Jarry --- config/aerc.conf | 5 +++++ config/ui.go | 1 + doc/aerc-config.5.scd | 5 +++++ lib/state/templates.go | 2 ++ 4 files changed, 13 insertions(+) diff --git a/config/aerc.conf b/config/aerc.conf index 0dfab7fc..92b92b8e 100644 --- a/config/aerc.conf +++ b/config/aerc.conf @@ -131,6 +131,11 @@ # # Default: (no folders) #empty-dirlist=(no folders) +# +# Value to set {{.Subject}} template to when subject is empty. +# +# Default: (no subject) +#empty-subject=(no subject) # Enable mouse events in the ui, e.g. clicking and scrolling with the mousewheel # diff --git a/config/ui.go b/config/ui.go index 5539d288..f339066e 100644 --- a/config/ui.go +++ b/config/ui.go @@ -38,6 +38,7 @@ type UIConfig struct { SidebarWidth int `ini:"sidebar-width" default:"20"` EmptyMessage string `ini:"empty-message" default:"(no messages)"` EmptyDirlist string `ini:"empty-dirlist" default:"(no folders)"` + EmptySubject string `ini:"empty-subject" default:"(no subject)"` MouseEnabled bool `ini:"mouse-enabled"` ThreadingEnabled bool `ini:"threading-enabled"` ForceClientThreads bool `ini:"force-client-threads"` diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd index 19723f81..00d9dfd9 100644 --- a/doc/aerc-config.5.scd +++ b/doc/aerc-config.5.scd @@ -170,6 +170,11 @@ These options are configured in the *[ui]* section of _aerc.conf_. Default: _(no folders)_ +*empty-subject* = __ + Text to display in message list, when the subject is empty. + + Default: _(no subject)_ + *mouse-enabled* = _true_|_false_ Enable mouse events in the ui, e.g. clicking and scrolling with the mousewheel diff --git a/lib/state/templates.go b/lib/state/templates.go index e8c50e86..ef84f071 100644 --- a/lib/state/templates.go +++ b/lib/state/templates.go @@ -325,6 +325,8 @@ func (d *templateData) Subject() string { } if d.threadInfo.SameSubject { subject = "" + } else if subject == "" { + subject = config.Ui.EmptySubject } return subject } -- cgit