diff --git a/config/style.go b/config/style.go index c3e8503..fc6f7db 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 97d3194..598a770 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. ** Hexcode for a color can be used. The format must be "\#XXXXXX" + ** + Color based on the palette index. Valid numbers are between 0 + and 255. + # SEE ALSO *aerc*(1) *aerc-config*(5)