aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Wölfel <tobias.woelfel@mailbox.org>2022-04-07 12:20:31 +0200
committerRobin Jarry <robin@jarry.cc>2022-04-07 12:51:09 +0200
commite810ae12d7b86dfe51aed6f5b88e90c1fe1814ac (patch)
tree1a45d97e580c12b568de27f071e0787495d50287
parent4dbdf586887614a334b2af47d6a83f3a5d0ea516 (diff)
downloadaerc-e810ae12d7b86dfe51aed6f5b88e90c1fe1814ac.tar.gz
stylesets: allow specifying color by number
Make it possible to specify the color in the style sets by number in addition to the color name. This allows using colors defined by the terminal. Signed-off-by: Tobias Wölfel <tobias.woelfel@mailbox.org> Acked-by: Robin Jarry <robin@jarry.cc>
-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)