mirror of
https://github.com/daylinmorgan/hwylterm.git
synced 2024-12-22 03:00:43 -06:00
add colorsystem detection
This commit is contained in:
parent
5673b92863
commit
c2bcfd1f73
2 changed files with 20 additions and 4 deletions
|
@ -6,6 +6,8 @@ import ./[styles, colors]
|
||||||
type
|
type
|
||||||
BbMode* = enum
|
BbMode* = enum
|
||||||
On, NoColor, Off
|
On, NoColor, Off
|
||||||
|
ColorSystem = enum
|
||||||
|
TrueColor, EightBit, Standard, None
|
||||||
|
|
||||||
proc checkColorSupport(): BbMode =
|
proc checkColorSupport(): BbMode =
|
||||||
when defined(bbansiOff):
|
when defined(bbansiOff):
|
||||||
|
@ -13,14 +15,28 @@ proc checkColorSupport(): BbMode =
|
||||||
when defined(bbansiNoColor):
|
when defined(bbansiNoColor):
|
||||||
return NoColor
|
return NoColor
|
||||||
else:
|
else:
|
||||||
if os.getEnv("HWYLTERM_FORCE_COLOR") != "":
|
if getEnv("HWYLTERM_FORCE_COLOR") != "":
|
||||||
return On
|
return On
|
||||||
if os.getEnv("NO_COLOR") != "":
|
elif getEnv("NO_COLOR") != "":
|
||||||
return NoColor
|
return NoColor
|
||||||
if not isatty(stdout):
|
elif (getEnv("TERM") in ["dumb", "unknown"]) or not isatty(stdout):
|
||||||
return Off
|
return Off
|
||||||
|
|
||||||
|
proc checkColorSystem(): ColorSystem =
|
||||||
|
let colorterm = getEnv("COLORTERM").strip().toLowerAscii()
|
||||||
|
if colorterm in ["truecolor", "24bit"]:
|
||||||
|
return TrueColor
|
||||||
|
let term = getEnv("TERM", "").strip().toLowerAscii()
|
||||||
|
let colors = term.split("-")[^1]
|
||||||
|
return
|
||||||
|
case colors:
|
||||||
|
of "kitty": EightBit
|
||||||
|
of "256color": EightBit
|
||||||
|
of "16color": Standard
|
||||||
|
else: Standard
|
||||||
|
|
||||||
let bbMode* = checkColorSupport()
|
let bbMode* = checkColorSupport()
|
||||||
|
let colorSystem* = checkColorSystem()
|
||||||
|
|
||||||
func firstCapital(s: string): string = s.toLowerAscii().capitalizeAscii()
|
func firstCapital(s: string): string = s.toLowerAscii().capitalizeAscii()
|
||||||
func normalizeStyle(style: string): string = style.replace("_","").capitalizeAscii()
|
func normalizeStyle(style: string): string = style.replace("_","").capitalizeAscii()
|
||||||
|
|
2
todo.md
2
todo.md
|
@ -16,6 +16,6 @@
|
||||||
- [ ] add support for 256 and truecolors
|
- [ ] add support for 256 and truecolors
|
||||||
- [ ] add support for rgb colors
|
- [ ] add support for rgb colors
|
||||||
- [ ] modify 256 colors w/parser changes to be `"[color(9)]red"` instead of `[9]red`
|
- [ ] modify 256 colors w/parser changes to be `"[color(9)]red"` instead of `[9]red`
|
||||||
- [ ] improve color detection [ref](https://github.com/Textualize/rich/blob/4101991898ee7a09fe1706daca24af5e1e054862/rich/console.py#L791)
|
- [x] improve color detection [ref](https://github.com/Textualize/rich/blob/4101991898ee7a09fe1706daca24af5e1e054862/rich/console.py#L791)
|
||||||
|
|
||||||
<!-- generated with <3 by daylinmorgan/todo -->
|
<!-- generated with <3 by daylinmorgan/todo -->
|
||||||
|
|
Loading…
Reference in a new issue