aboutsummaryrefslogtreecommitdiff
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
parentdf38d15b12de49e869121f02bbd69ff777f9e885 (diff)
downloadaerc-2e5d9536412ddbb8d1a2bc71efe84040857b30a3.tar.gz
aerc-2e5d9536412ddbb8d1a2bc71efe84040857b30a3.zip
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>
-rw-r--r--config/aerc.conf62
-rw-r--r--config/statusline.go2
-rw-r--r--config/style.go126
-rw-r--r--config/ui.go29
-rw-r--r--doc/aerc-config.5.scd39
-rw-r--r--doc/aerc-stylesets.7.scd56
-rw-r--r--stylesets/default74
-rw-r--r--stylesets/monochrome44
8 files changed, 230 insertions, 202 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)
}
diff --git a/doc/aerc-config.5.scd b/doc/aerc-config.5.scd
index f886eb92..770a23de 100644
--- a/doc/aerc-config.5.scd
+++ b/doc/aerc-config.5.scd
@@ -108,7 +108,7 @@ These options are configured in the *[ui]* section of _aerc.conf_.
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<\*_
+ Default: _flags:4,name<20%,subject,date>=_
*column-separator* = _"<separator>"_
String separator inserted between columns. When a column width specifier
@@ -125,10 +125,10 @@ These options are configured in the *[ui]* section of _aerc.conf_.
By default, these columns are defined:
```
- 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}}
```
See *aerc-templates*(7) for all available symbols and functions.
@@ -136,24 +136,31 @@ These options are configured in the *[ui]* section of _aerc.conf_.
*timestamp-format* = _<timeformat>_
See time.Time#Format at https://godoc.org/time#Time.Format
- Default: _2006-01-02 03:04 PM_ (ISO 8601 + 12 hour time)
+ Default: _2006 Jan 02_
*this-day-time-format* = _<timeformat>_
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.
+
+ Default: _15:04_
*this-week-time-format* = _<timeformat>_
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.
+ last 7 days. If this is empty, *timestamp-format* is used instead.
+
+ Default: _Jan 02_
*this-year-time-format* = _<timeformat>_
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.
+
+ Default: _Jan 02_
*message-view-timestamp-format* = _<timeformat>_
If set, overrides *timestamp-format* for the message view.
+ Default: _2006 Jan 02, 15:04 GMT-0700_
+
*message-view-this-day-time-format* = _<timeformat>_
If set, overrides *timestamp-format* in the message view for messages
that were received/sent today.
@@ -170,7 +177,7 @@ These options are configured in the *[ui]* section of _aerc.conf_.
Width of the sidebar, including the border. Set to zero to disable the
sidebar.
- Default: _20_
+ Default: _22_
*empty-message* = _<string>_
Message to display when viewing an empty folder.
@@ -210,13 +217,13 @@ These options are configured in the *[ui]* section of _aerc.conf_.
The template to use for composer tab titles. See *aerc-templates*(7) for
available field names.
- Default: _{{.Subject}}_
+ Default: _{{if .To}}to:{{index (.To | shortmboxes) 0}} {{end}}{{.SubjectBase}}_
*tab-title-viewer* = _<go_template>_
The template to use for viewer tab titles. See *aerc-templates*(7) for
available field names.
- Default: _{{if .Subject}}{{.Subject}}{{else}}(no subject){{end}}_
+ Default: _{{.Subject}}_
*pinned-tab-marker* = _"<string>"_
Marker to show before a pinned tab's name.
@@ -261,7 +268,7 @@ These options are configured in the *[ui]* section of _aerc.conf_.
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}}_
+ Default: _{{if .Unread}}{{humanReadable .Unread}}{{end}}_
*dirlist-delay* = _<duration>_
Delay after which the messages are actually listed when entering
@@ -503,7 +510,7 @@ following configurable prefix parts:
*thread-prefix-folded* = _<string>_
Define the folded thread indicator.
- Default: _""_
+ Default: _"+"_
*thread-prefix-unfolded* = _<string>_
Define the unfolded thread indicator.
@@ -560,7 +567,7 @@ Default settings (mutt-style):
[PATCH aerc v5] ui: allow thread arrow customisation
├─>[aerc/patches] build success
├─>Re: [PATCH aerc v5] ui: allow thread arrow customisation
- ├─
+ ├─+
└─>
├─>
│ ├─>
@@ -661,7 +668,7 @@ These options are configured in the *[statusline]* section of _aerc.conf_.
```
column-left = [{{.Account}}] {{.StatusInfo}}
column-center = {{.PendingKeys}}
- column-right = {{.TrayInfo}}
+ column-right = {{.TrayInfo}} | {{cwd}}
```
See *aerc-templates*(7) for all available symbols and functions.
diff --git a/doc/aerc-stylesets.7.scd b/doc/aerc-stylesets.7.scd
index a5871756..e270c700 100644
--- a/doc/aerc-stylesets.7.scd
+++ b/doc/aerc-stylesets.7.scd
@@ -347,31 +347,37 @@ _<Dec number>_
Before parsing a styleset, it is first initialized with the following defaults:
```
-*.selected.reverse=toggle
-title.reverse=true
-header.bold=true
-*error.bold=true
-error.fg=red
-warning.fg=yellow
-success.fg=green
-statusline*.default=true
-statusline_default.reverse=true
-statusline_error.fg=red
-statusline_error.reverse=true
-statusline_warning.fg=yellow
-statusline_warning.reverse=true
-msglist_unread.bold=true
-msglist_deleted.fg=gray
-msglist_result.fg=green
-msglist_pill.reverse=true
-part_mimetype.dim=true
-part_mimetype.selected.dim=false
-part_filename.selected.bold=true
-completion_pill.reverse=true
-tab.reverse=true
-border.reverse = true
-selector_focused.reverse=true
-selector_chooser.bold=true
+*.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.bg = 12
+border.fg = 15
+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
```
You can choose either to reset everything by starting your styleset with these
diff --git a/stylesets/default b/stylesets/default
index 74bbe97a..a8fb6299 100644
--- a/stylesets/default
+++ b/stylesets/default
@@ -1,3 +1,4 @@
+# vim: ft=dosini
#
# aerc default styleset
#
@@ -7,41 +8,48 @@
# modifying or creating a styleset.
# Uncomment these two lines to reset all attributes and start from scratch.
-#*.default=true
-#*.normal=true
+#*.default = true
+#*.normal = true
-#*.selected.reverse=toggle
-#
-#title.reverse=true
-#header.bold=true
+#*.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
-#*error.bold=true
-#error.fg=red
-#warning.fg=yellow
-#success.fg=green
-
-#statusline*.default=true
-#statusline_default.reverse=true
-#statusline_error.fg=red
-#statusline_error.reverse=true
-#statusline_warning.fg=yellow
-#statusline_warning.reverse=true
-
-#msglist_unread.bold=true
-#msglist_deleted.fg=gray
-#msglist_result.fg=green
-#msglist_pill.reverse=true
-
-#part_mimetype.dim=true
-#part_mimetype.selected.dim=false
-#part_filename.selected.bold=true
-#completion_pill.reverse=true
-
-#tab.reverse=true
-#border.reverse = true
-
-#selector_focused.reverse=true
-#selector_chooser.bold=true
+#completion_pill.bg = 12
+#completion_default.bg = 8
+#completion_default.fg = 15
#[viewer]
#url.underline=true
diff --git a/stylesets/monochrome b/stylesets/monochrome
new file mode 100644
index 00000000..f8e3849b
--- /dev/null
+++ b/stylesets/monochrome
@@ -0,0 +1,44 @@
+# vim: ft=dosini
+#
+# aerc monochrome styleset
+#
+
+*.default = true
+*.normal = true
+
+*.selected.reverse = toggle
+*_pill.reverse = true
+
+title.reverse = true
+title.bold = true
+header.bold = true
+tab.selected.bold = true
+dirlist*.selected.bold = true
+
+statusline_default.reverse = true
+*error.bold = true
+*error.fg = 1
+*warning.fg = 3
+
+msglist_unread.bold = true
+msglist_deleted.dim = true
+msglist_result.underline = true
+
+part_mimetype.dim = true
+part_mimetype.selected.dim = false
+part_filename.selected.bold = true
+
+selector_focused.reverse = true
+selector_chooser.bold = true
+
+[viewer]
+url.underline = true
+header.bold = true
+signature.dim = true
+diff_meta.bold = true
+diff_chunk*.dim = true
+diff_add.fg = 2
+diff_del.fg = 1
+quote_*.fg = 6
+quote_*.dim = true
+quote_1.dim = false