aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/style.go16
-rw-r--r--doc/aerc-stylesets.7.scd4
2 files changed, 18 insertions, 2 deletions
diff --git a/config/style.go b/config/style.go
index c3e85032..fc6f7db7 100644
--- a/config/style.go
+++ b/config/style.go
@@ -6,6 +6,7 @@ import (
"os"
"path"
"regexp"
+ "strconv"
"strings"
"github.com/gdamore/tcell/v2"
@@ -139,12 +140,23 @@ func boolSwitch(val string, cur_val bool) (bool, error) {
}
}
+func extractColor(val string) tcell.Color {
+ // Check if the string can be interpreted as a number, indicating a
+ // reference to the color number. Otherwise retrieve the number based
+ // on the name.
+ if i, err := strconv.ParseUint(val, 10, 8); err == nil {
+ return tcell.PaletteColor(int(i))
+ } else {
+ return tcell.GetColor(val)
+ }
+}
+
func (s *Style) Set(attr, val string) error {
switch attr {
case "fg":
- s.Fg = tcell.GetColor(val)
+ s.Fg = extractColor(val)
case "bg":
- s.Bg = tcell.GetColor(val)
+ s.Bg = extractColor(val)
case "bold":
if state, err := boolSwitch(val, s.Bold); err != nil {
return err
diff --git a/doc/aerc-stylesets.7.scd b/doc/aerc-stylesets.7.scd
index 97d3194a..598a7707 100644
--- a/doc/aerc-stylesets.7.scd
+++ b/doc/aerc-stylesets.7.scd
@@ -205,6 +205,10 @@ The values can be one of the following.
*<Hex code>*
Hexcode for a color can be used. The format must be "\#XXXXXX"
+ *<Dec number>*
+ Color based on the palette index. Valid numbers are between 0
+ and 255.
+
# SEE ALSO
*aerc*(1) *aerc-config*(5)