aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorRobin Jarry <robin@jarry.cc>2024-02-10 00:47:04 +0100
committerRobin Jarry <robin@jarry.cc>2024-02-14 23:05:06 +0100
commit2e5d9536412ddbb8d1a2bc71efe84040857b30a3 (patch)
tree1c0b1294769dd91e95497d92d88ce7e25ce43fff /config
parentdf38d15b12de49e869121f02bbd69ff777f9e885 (diff)
downloadaerc-2e5d9536412ddbb8d1a2bc71efe84040857b30a3.tar.gz
config: change default appearance
The default styleset and ui settings are quite dull and don't make use of the "newer" features that have been added to aerc in the past two years. Change the default styleset to something more colorful that renders correctly on both dark and light backgrounds. Change the default ui settings to get something more appealing to new users. Save the previous default color theme to a new `monochrome` styleset. Changelog-changed: The default `[ui]` settings and the `default` styleset have changed extensively. A no-color theme can be restored with the `monochrome` styleset. Cc: Marc Coquand <marc@mccd.space> Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Diffstat (limited to 'config')
-rw-r--r--config/aerc.conf62
-rw-r--r--config/statusline.go2
-rw-r--r--config/style.go126
-rw-r--r--config/ui.go29
4 files changed, 91 insertions, 128 deletions
diff --git a/config/aerc.conf b/config/aerc.conf
index 22c6d359..51c73a8f 100644
--- a/config/aerc.conf
+++ b/config/aerc.conf
@@ -76,8 +76,8 @@
# terminal width. Fit width columns take the width of their contents. If no
# width specifier is set, '*' is used by default.
#
-# Default: date<20,name<17,flags>4,subject<*
-#index-columns=date<20,name<17,flags>4,subject<*
+# Default: flags:4,name<20%,subject,date>=
+#index-columns=flags:4,name<20%,subject,date>=
#
# Each name in index-columns must have a corresponding column-$name setting.
@@ -93,10 +93,10 @@
# column-name={{if match .Folder "^(Gesendet|Sent)$"}}{{index (.To | names) 0}}{{else}}{{index (.From | names) 0}}{{end}}
#
# Default settings
-#column-date={{.DateAutoFormat .Date.Local}}
-#column-name={{index (.From | names) 0}}
#column-flags={{.Flags | join ""}}
-#column-subject={{.ThreadPrefix}}{{if .ThreadFolded}}{{printf "{%d}" .ThreadCount}}{{end}}{{.Subject}}
+#column-name={{index (.From | names) 0}}
+#column-subject={{.ThreadPrefix}}{{.Subject}}
+#column-date={{.DateAutoFormat .Date.Local}}
#
# String separator inserted between columns. When the column width specifier is
@@ -109,31 +109,35 @@
#
# See time.Time#Format at https://godoc.org/time#Time.Format
#
-# Default: 2006-01-02 03:04 PM (ISO 8601 + 12 hour time)
-#timestamp-format=2006-01-02 03:04 PM
+# Default: 2006 Jan 02
+#timestamp-format=2006 Jan 02
#
# Index-only time format for messages that were received/sent today.
-# If this is not specified, timestamp-format is used instead.
+# If this is empty, timestamp-format is used instead.
#
-#this-day-time-format=
+# Default: 15:04
+#this-day-time-format=15:04
#
# Index-only time format for messages that were received/sent within the last
-# 7 days. If this is not specified, timestamp-format is used instead.
+# 7 days. If this is empty, timestamp-format is used instead.
#
-#this-week-time-format=
+# Default: Jan 02
+#this-week-time-format=Jan 02
#
# Index-only time format for messages that were received/sent this year.
-# If this is not specified, timestamp-format is used instead.
+# If this is empty, timestamp-format is used instead.
#
-#this-year-time-format=
+#Default: Jan 02
+#this-year-time-format=Jan 02
#
-# If set, overrides timestamp-format for the message view.
+# Overrides timestamp-format for the message view.
#
-#message-view-timestamp-format=
+# Default: 2006 Jan 02, 15:04 GMT-0700
+#message-view-timestamp-format=2006 Jan 02, 15:04 GMT-0700
#
# If set, overrides timestamp-format in the message view for messages
@@ -155,8 +159,8 @@
#
# Width of the sidebar, including the border.
#
-# Default: 20
-#sidebar-width=20
+# Default: 22
+#sidebar-width=22
#
# Message to display when viewing an empty folder.
@@ -194,14 +198,14 @@
#
# Template to use for Composer tab titles
#
-# Default: {{.Subject}}
-#tab-title-composer={{.Subject}}
+# Default: {{if .To}}to:{{index (.To | shortmboxes) 0}} {{end}}{{.SubjectBase}}
+#tab-title-composer={{if .To}}to:{{index (.To | shortmboxes) 0}} {{end}}{{.SubjectBase}}
#
# Template to use for Message Viewer tab titles
#
-# Default: {{if .Subject}}{{.Subject}}{{else}}(no subject){{end}}
-#tab-title-viewer={{if .Subject}}{{.Subject}}{{else}}(no subject){{end}}
+# Default: {{.Subject}}
+#tab-title-viewer={{.Subject}}
# Marker to show before a pinned tab's name.
@@ -218,8 +222,8 @@
# Template for the right side of the directory list.
# See aerc-templates(7) for all available fields and functions.
#
-# Default: {{if .Unread}}{{humanReadable .Unread}}/{{end}}{{if .Exists}}{{humanReadable .Exists}}{{end}}
-#dirlist-right={{if .Unread}}{{humanReadable .Unread}}/{{end}}{{if .Exists}}{{humanReadable .Exists}}{{end}}
+# Default: {{if .Unread}}{{humanReadable .Unread}}{{end}}
+#dirlist-right={{if .Unread}}{{humanReadable .Unread}}{{end}}
# Delay after which the messages are actually listed when entering a directory.
# This avoids loading messages when skipping over folders and makes the UI more
@@ -272,9 +276,9 @@
# Uncomment to use box-drawing characters for vertical and horizontal borders.
#
-# Default: " "
-#border-char-vertical=" "
-#border-char-horizontal=" "
+# Default: "│" and "─"
+#border-char-vertical="│"
+#border-char-horizontal="─"
# Sets the styleset to use for the aerc ui elements.
#
@@ -409,8 +413,8 @@
# Customize the thread prefix appearance by selecting the folded thread
# indicator.
#
-# Default: ""
-#thread-prefix-folded = ""
+# Default: "+"
+#thread-prefix-folded = "+"
#
# Customize the thread prefix appearance by selecting the unfolded thread
@@ -492,7 +496,7 @@
# Default settings
#column-left=[{{.Account}}] {{.StatusInfo}}
#column-center={{.PendingKeys}}
-#column-right={{.TrayInfo}}
+#column-right={{.TrayInfo}} | {{cwd}}
#
# String separator inserted between columns.
diff --git a/config/statusline.go b/config/statusline.go
index f00067db..964f3f54 100644
--- a/config/statusline.go
+++ b/config/statusline.go
@@ -32,7 +32,7 @@ func (s *StatuslineConfig) ParseColumns(sec *ini.Section, key *ini.Key) ([]*Colu
_, _ = sec.NewKey("column-center", "{{.PendingKeys}}")
}
if !sec.HasKey("column-right") {
- _, _ = sec.NewKey("column-right", "{{.TrayInfo}}")
+ _, _ = sec.NewKey("column-right", "{{.TrayInfo}} | {{cwd}}")
}
return ParseColumnDefs(key, sec)
}
diff --git a/config/style.go b/config/style.go
index efe84722..1b428f45 100644
--- a/config/style.go
+++ b/config/style.go
@@ -304,6 +304,40 @@ type StyleSet struct {
path string
}
+const defaultStyleset string = `
+*.selected.bg = 12
+*.selected.fg = 15
+*.selected.bold = true
+statusline_*.dim = true
+statusline_*.bg = 8
+statusline_*.fg = 15
+*warning.fg = 3
+*success.fg = 2
+*error.fg = 1
+*error.bold = true
+border.fg = 12
+border.bold = true
+title.bg = 12
+title.fg = 15
+title.bold = true
+header.fg = 4
+header.bold = true
+msglist_unread.bold = true
+msglist_deleted.dim = true
+msglist_marked.bg = 6
+msglist_marked.fg = 15
+msglist_pill.bg = 12
+msglist_pill.fg = 15
+part_mimetype.fg = 12
+selector_chooser.bold = true
+selector_focused.bold = true
+selector_focused.bg = 12
+selector_focused.fg = 15
+completion_pill.bg = 12
+completion_default.bg = 8
+completion_default.fg = 15
+`
+
func NewStyleSet() StyleSet {
ss := StyleSet{
objects: make(map[StyleObject]*StyleConf),
@@ -311,89 +345,15 @@ func NewStyleSet() StyleSet {
user: make(map[string]*Style),
}
for _, so := range StyleNames {
- conf := new(StyleConf)
-
- switch so {
- case STYLE_ERROR:
- // *error.bold=true
- conf.base.Bold = true
- // error.fg=red
- conf.base.Fg = vaxis.IndexColor(1)
- case STYLE_WARNING:
- // warning.fg=yellow
- conf.base.Fg = vaxis.IndexColor(3)
- case STYLE_SUCCESS:
- // success.fg=green
- conf.base.Fg = vaxis.IndexColor(2)
- case STYLE_TITLE:
- // title.reverse=true
- conf.base.Reverse = true
- case STYLE_HEADER:
- // header.bold=true
- conf.base.Bold = true
- case STYLE_STATUSLINE_DEFAULT:
- // statusline_default.reverse=true
- conf.base.Reverse = true
- case STYLE_STATUSLINE_ERROR:
- // *error.bold=true
- conf.base.Fg = vaxis.IndexColor(1)
- // statusline_error.fg=red
- conf.base.Bold = true
- // statusline_error.reverse=true
- conf.base.Reverse = true
- case STYLE_STATUSLINE_WARNING:
- // statusline_warning.fg=yellow
- conf.base.Fg = vaxis.IndexColor(3)
- // statusline_warning.reverse=true
- conf.base.Reverse = true
- case STYLE_STATUSLINE_SUCCESS:
- conf.base.Fg = vaxis.IndexColor(2)
- conf.base.Reverse = true
- case STYLE_MSGLIST_UNREAD:
- // msglist_unread.bold=true
- conf.base.Bold = true
- case STYLE_MSGLIST_DELETED:
- // msglist_deleted.fg=gray
- conf.base.Fg = vaxis.IndexColor(8)
- case STYLE_MSGLIST_RESULT:
- // msglist_result.fg=green
- conf.base.Fg = vaxis.IndexColor(2)
- case STYLE_MSGLIST_PILL:
- // msglist_pill.reverse=true
- conf.base.Reverse = true
- case STYLE_PART_MIMETYPE:
- // part_mimetype.dim=true
- conf.base.Dim = true
- case STYLE_COMPLETION_PILL:
- // completion_pill.reverse=true
- conf.base.Reverse = true
- case STYLE_TAB:
- // tab.reverse=true
- conf.base.Reverse = true
- case STYLE_BORDER:
- // border.reverse = true
- conf.base.Reverse = true
- case STYLE_SELECTOR_FOCUSED:
- // selector_focused.reverse=true
- conf.base.Reverse = true
- case STYLE_SELECTOR_CHOOSER:
- // selector_chooser.bold=true
- conf.base.Bold = true
- }
-
- ss.objects[so] = conf
- selected := *conf
- // *.selected.reverse=toggle
- selected.base.Reverse = !conf.base.Reverse
- switch so {
- case STYLE_PART_MIMETYPE:
- // part_mimetype.selected.dim=false
- selected.base.Dim = false
- case STYLE_PART_FILENAME:
- // part_filename.selected.bold=true
- selected.base.Bold = true
- }
- ss.selected[so] = &selected
+ ss.objects[so] = new(StyleConf)
+ ss.selected[so] = new(StyleConf)
+ }
+ f, err := ini.Load([]byte(defaultStyleset))
+ if err == nil {
+ err = ss.ParseStyleSet(f)
+ }
+ if err != nil {
+ panic(err)
}
return ss
}
diff --git a/config/ui.go b/config/ui.go
index ba7ba967..e7e96f9f 100644
--- a/config/ui.go
+++ b/config/ui.go
@@ -15,23 +15,23 @@ import (
)
type UIConfig struct {
- IndexColumns []*ColumnDef `ini:"index-columns" parse:"ParseIndexColumns" default:"date<20,name<17,flags>4,subject<*"`
+ IndexColumns []*ColumnDef `ini:"index-columns" parse:"ParseIndexColumns" default:"flags:4,name<20%,subject,date>="`
ColumnSeparator string `ini:"column-separator" default:" "`
DirListLeft *template.Template `ini:"dirlist-left" default:"{{.Folder}}"`
- DirListRight *template.Template `ini:"dirlist-right" default:"{{if .Unread}}{{humanReadable .Unread}}/{{end}}{{if .Exists}}{{humanReadable .Exists}}{{end}}"`
+ DirListRight *template.Template `ini:"dirlist-right" default:"{{if .Unread}}{{humanReadable .Unread}}{{end}}"`
AutoMarkRead bool `ini:"auto-mark-read" default:"true"`
- TimestampFormat string `ini:"timestamp-format" default:"2006-01-02 03:04 PM"`
- ThisDayTimeFormat string `ini:"this-day-time-format"`
- ThisWeekTimeFormat string `ini:"this-week-time-format"`
- ThisYearTimeFormat string `ini:"this-year-time-format"`
- MessageViewTimestampFormat string `ini:"message-view-timestamp-format"`
+ TimestampFormat string `ini:"timestamp-format" default:"2006 Jan 02"`
+ ThisDayTimeFormat string `ini:"this-day-time-format" default:"15:04"`
+ ThisWeekTimeFormat string `ini:"this-week-time-format" default:"Jan 02"`
+ ThisYearTimeFormat string `ini:"this-year-time-format" default:"Jan 02"`
+ MessageViewTimestampFormat string `ini:"message-view-timestamp-format" default:"2006 Jan 02, 15:04 GMT-0700"`
MessageViewThisDayTimeFormat string `ini:"message-view-this-day-time-format"`
MessageViewThisWeekTimeFormat string `ini:"message-view-this-week-time-format"`
MessageViewThisYearTimeFormat string `ini:"message-view-this-year-time-format"`
PinnedTabMarker string "ini:\"pinned-tab-marker\" default:\"`\""
- SidebarWidth int `ini:"sidebar-width" default:"20"`
+ SidebarWidth int `ini:"sidebar-width" default:"22"`
EmptyMessage string `ini:"empty-message" default:"(no messages)"`
EmptyDirlist string `ini:"empty-dirlist" default:"(no folders)"`
EmptySubject string `ini:"empty-subject" default:"(no subject)"`
@@ -72,8 +72,8 @@ type UIConfig struct {
StyleSetName string `ini:"styleset-name" default:"default"`
style StyleSet
// customize border appearance
- BorderCharVertical rune `ini:"border-char-vertical" default:" " type:"rune"`
- BorderCharHorizontal rune `ini:"border-char-horizontal" default:" " type:"rune"`
+ BorderCharVertical rune `ini:"border-char-vertical" default:"│" type:"rune"`
+ BorderCharHorizontal rune `ini:"border-char-horizontal" default:"─" type:"rune"`
ReverseOrder bool `ini:"reverse-msglist-order"`
ReverseThreadOrder bool `ini:"reverse-thread-order"`
@@ -83,7 +83,7 @@ type UIConfig struct {
ThreadPrefixIndent string `ini:"thread-prefix-indent" default:" "`
ThreadPrefixStem string `ini:"thread-prefix-stem" default:"│"`
ThreadPrefixLimb string `ini:"thread-prefix-limb" default:""`
- ThreadPrefixFolded string `ini:"thread-prefix-folded" default:""`
+ ThreadPrefixFolded string `ini:"thread-prefix-folded" default:"+"`
ThreadPrefixUnfolded string `ini:"thread-prefix-unfolded" default:""`
ThreadPrefixFirstChild string `ini:"thread-prefix-first-child" default:""`
ThreadPrefixHasSiblings string `ini:"thread-prefix-has-siblings" default:"├─"`
@@ -96,8 +96,8 @@ type UIConfig struct {
// Tab Templates
TabTitleAccount *template.Template `ini:"tab-title-account" default:"{{.Account}}"`
- TabTitleComposer *template.Template `ini:"tab-title-composer" default:"{{.Subject}}"`
- TabTitleViewer *template.Template `ini:"tab-title-viewer" default:"{{if .Subject}}{{.Subject}}{{else}}(no subject){{end}}"`
+ TabTitleComposer *template.Template `ini:"tab-title-composer" default:"{{if .To}}to:{{index (.To | shortmboxes) 0}} {{end}}{{.SubjectBase}}"`
+ TabTitleViewer *template.Template `ini:"tab-title-viewer" default:"{{.Subject}}"`
// private
contextualUis []*UiConfigContext
@@ -228,8 +228,7 @@ func (*UIConfig) ParseIndexColumns(section *ini.Section, key *ini.Key) ([]*Colum
_, _ = section.NewKey("column-flags", `{{.Flags | join ""}}`)
}
if !section.HasKey("column-subject") {
- _, _ = section.NewKey("column-subject",
- `{{.ThreadPrefix}}{{if .ThreadFolded}}{{printf "{%d}" .ThreadCount}}{{end}}{{.Subject}}`)
+ _, _ = section.NewKey("column-subject", `{{.ThreadPrefix}}{{.Subject}}`)
}
return ParseColumnDefs(key, section)
}