about summary refs log tree commit diff stats
path: root/src/config
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2023-07-29 01:04:38 +0200
committerbptato <nincsnevem662@gmail.com>2023-07-29 01:16:29 +0200
commitf646b6caf0661ab2bee5abb4489267438de27c55 (patch)
treefca88782d420787a64da9eeaf86547854c7af218 /src/config
parent4ffd835674870434dd820f8778b5eeeee615723c (diff)
downloadchawan-f646b6caf0661ab2bee5abb4489267438de27c55.tar.gz
Add default background/foreground color override
Diffstat (limited to 'src/config')
-rw-r--r--src/config/config.nim11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/config/config.nim b/src/config/config.nim
index dfcb63c4..f379cb3b 100644
--- a/src/config/config.nim
+++ b/src/config/config.nim
@@ -96,6 +96,8 @@ type
     minimum_contrast*: int32
     force_clear*: bool
     set_title*: bool
+    default_background_color*: RGBColor
+    default_foreground_color*: RGBColor
 
   #TODO: add JS wrappers for objects
   Config* = ref ConfigObj
@@ -321,6 +323,7 @@ proc parseConfigValue(x: var Opt[ColorMode], v: TomlValue, k: string)
 proc parseConfigValue(x: var Opt[FormatMode], v: TomlValue, k: string)
 proc parseConfigValue(x: var FormatMode, v: TomlValue, k: string)
 proc parseConfigValue(x: var RGBAColor, v: TomlValue, k: string)
+proc parseConfigValue(x: var RGBColor, v: TomlValue, k: string)
 proc parseConfigValue[T](x: var Opt[T], v: TomlValue, k: string)
 proc parseConfigValue(x: var ActionMap, v: TomlValue, k: string)
 proc parseConfigValue(x: var CSSConfig, v: TomlValue, k: string)
@@ -429,6 +432,14 @@ proc parseConfigValue(x: var RGBAColor, v: TomlValue, k: string) =
         "' for key " & k)
   x = c.get
 
+proc parseConfigValue(x: var RGBColor, v: TomlValue, k: string) =
+  typeCheck(v, VALUE_STRING, k)
+  let c = parseLegacyColor(v.s)
+  if c.isNone:
+      raise newException(ValueError, "invalid color '" & v.s &
+        "' for key " & k)
+  x = c.get
+
 proc parseConfigValue[T](x: var Opt[T], v: TomlValue, k: string) =
   if v.vt == VALUE_STRING and v.s == "auto":
     x.err()