1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-05 21:15:38 -05:00

Compare commits

...

3 Commits

Author SHA1 Message Date
bbedward
f06e6e85d5 niri: support compact kb layout display
fixes #818
fixes #500
2025-11-27 10:53:37 -05:00
bbedward
28ad641070 displays: workaround for duplicate models 2025-11-27 10:34:18 -05:00
bbedward
384c775f1a dank16: enrich with hex, hex stripped, rgb 2025-11-27 09:46:45 -05:00
17 changed files with 554 additions and 403 deletions

View File

@@ -15,6 +15,48 @@ type HSV struct {
H, S, V float64 H, S, V float64
} }
type ColorInfo struct {
Hex string `json:"hex"`
HexStripped string `json:"hex_stripped"`
R int `json:"r"`
G int `json:"g"`
B int `json:"b"`
}
type Palette struct {
Color0 ColorInfo `json:"color0"`
Color1 ColorInfo `json:"color1"`
Color2 ColorInfo `json:"color2"`
Color3 ColorInfo `json:"color3"`
Color4 ColorInfo `json:"color4"`
Color5 ColorInfo `json:"color5"`
Color6 ColorInfo `json:"color6"`
Color7 ColorInfo `json:"color7"`
Color8 ColorInfo `json:"color8"`
Color9 ColorInfo `json:"color9"`
Color10 ColorInfo `json:"color10"`
Color11 ColorInfo `json:"color11"`
Color12 ColorInfo `json:"color12"`
Color13 ColorInfo `json:"color13"`
Color14 ColorInfo `json:"color14"`
Color15 ColorInfo `json:"color15"`
}
func NewColorInfo(hex string) ColorInfo {
rgb := HexToRGB(hex)
stripped := hex
if len(hex) > 0 && hex[0] == '#' {
stripped = hex[1:]
}
return ColorInfo{
Hex: hex,
HexStripped: stripped,
R: int(math.Round(rgb.R * 255)),
G: int(math.Round(rgb.G * 255)),
B: int(math.Round(rgb.B * 255)),
}
}
func HexToRGB(hex string) RGB { func HexToRGB(hex string) RGB {
if hex[0] == '#' { if hex[0] == '#' {
hex = hex[1:] hex = hex[1:]
@@ -310,13 +352,13 @@ func DeriveContainer(primary string, isLight bool) string {
return RGBToHex(HSVToRGB(HSV{H: hsv.H, S: containerS, V: containerV})) return RGBToHex(HSVToRGB(HSV{H: hsv.H, S: containerS, V: containerV}))
} }
func GeneratePalette(primaryColor string, opts PaletteOptions) []string { func GeneratePalette(primaryColor string, opts PaletteOptions) Palette {
baseColor := DeriveContainer(primaryColor, opts.IsLight) baseColor := DeriveContainer(primaryColor, opts.IsLight)
rgb := HexToRGB(baseColor) rgb := HexToRGB(baseColor)
hsv := RGBToHSV(rgb) hsv := RGBToHSV(rgb)
palette := make([]string, 0, 16) var palette Palette
var normalTextTarget, secondaryTarget float64 var normalTextTarget, secondaryTarget float64
if opts.UseDPS { if opts.UseDPS {
@@ -335,7 +377,7 @@ func GeneratePalette(primaryColor string, opts PaletteOptions) []string {
} else { } else {
bgColor = "#1a1a1a" bgColor = "#1a1a1a"
} }
palette = append(palette, bgColor) palette.Color0 = NewColorInfo(bgColor)
hueShift := (hsv.H - 0.6) * 0.12 hueShift := (hsv.H - 0.6) * 0.12
satBoost := 1.15 satBoost := 1.15
@@ -344,39 +386,39 @@ func GeneratePalette(primaryColor string, opts PaletteOptions) []string {
var redColor string var redColor string
if opts.IsLight { if opts.IsLight {
redColor = RGBToHex(HSVToRGB(HSV{H: redH, S: math.Min(0.80*satBoost, 1.0), V: 0.55})) redColor = RGBToHex(HSVToRGB(HSV{H: redH, S: math.Min(0.80*satBoost, 1.0), V: 0.55}))
palette = append(palette, ensureContrastAuto(redColor, bgColor, normalTextTarget, opts)) palette.Color1 = NewColorInfo(ensureContrastAuto(redColor, bgColor, normalTextTarget, opts))
} else { } else {
redColor = RGBToHex(HSVToRGB(HSV{H: redH, S: math.Min(0.65*satBoost, 1.0), V: 0.80})) redColor = RGBToHex(HSVToRGB(HSV{H: redH, S: math.Min(0.65*satBoost, 1.0), V: 0.80}))
palette = append(palette, ensureContrastAuto(redColor, bgColor, normalTextTarget, opts)) palette.Color1 = NewColorInfo(ensureContrastAuto(redColor, bgColor, normalTextTarget, opts))
} }
greenH := math.Mod(0.33+hueShift+1.0, 1.0) greenH := math.Mod(0.33+hueShift+1.0, 1.0)
var greenColor string var greenColor string
if opts.IsLight { if opts.IsLight {
greenColor = RGBToHex(HSVToRGB(HSV{H: greenH, S: math.Min(math.Max(hsv.S*0.9, 0.80)*satBoost, 1.0), V: 0.45})) greenColor = RGBToHex(HSVToRGB(HSV{H: greenH, S: math.Min(math.Max(hsv.S*0.9, 0.80)*satBoost, 1.0), V: 0.45}))
palette = append(palette, ensureContrastAuto(greenColor, bgColor, normalTextTarget, opts)) palette.Color2 = NewColorInfo(ensureContrastAuto(greenColor, bgColor, normalTextTarget, opts))
} else { } else {
greenColor = RGBToHex(HSVToRGB(HSV{H: greenH, S: math.Min(0.42*satBoost, 1.0), V: 0.84})) greenColor = RGBToHex(HSVToRGB(HSV{H: greenH, S: math.Min(0.42*satBoost, 1.0), V: 0.84}))
palette = append(palette, ensureContrastAuto(greenColor, bgColor, normalTextTarget, opts)) palette.Color2 = NewColorInfo(ensureContrastAuto(greenColor, bgColor, normalTextTarget, opts))
} }
yellowH := math.Mod(0.15+hueShift+1.0, 1.0) yellowH := math.Mod(0.15+hueShift+1.0, 1.0)
var yellowColor string var yellowColor string
if opts.IsLight { if opts.IsLight {
yellowColor = RGBToHex(HSVToRGB(HSV{H: yellowH, S: math.Min(0.75*satBoost, 1.0), V: 0.50})) yellowColor = RGBToHex(HSVToRGB(HSV{H: yellowH, S: math.Min(0.75*satBoost, 1.0), V: 0.50}))
palette = append(palette, ensureContrastAuto(yellowColor, bgColor, normalTextTarget, opts)) palette.Color3 = NewColorInfo(ensureContrastAuto(yellowColor, bgColor, normalTextTarget, opts))
} else { } else {
yellowColor = RGBToHex(HSVToRGB(HSV{H: yellowH, S: math.Min(0.38*satBoost, 1.0), V: 0.86})) yellowColor = RGBToHex(HSVToRGB(HSV{H: yellowH, S: math.Min(0.38*satBoost, 1.0), V: 0.86}))
palette = append(palette, ensureContrastAuto(yellowColor, bgColor, normalTextTarget, opts)) palette.Color3 = NewColorInfo(ensureContrastAuto(yellowColor, bgColor, normalTextTarget, opts))
} }
var blueColor string var blueColor string
if opts.IsLight { if opts.IsLight {
blueColor = RGBToHex(HSVToRGB(HSV{H: hsv.H, S: math.Max(hsv.S*0.9, 0.7), V: hsv.V * 1.1})) blueColor = RGBToHex(HSVToRGB(HSV{H: hsv.H, S: math.Max(hsv.S*0.9, 0.7), V: hsv.V * 1.1}))
palette = append(palette, ensureContrastAuto(blueColor, bgColor, normalTextTarget, opts)) palette.Color4 = NewColorInfo(ensureContrastAuto(blueColor, bgColor, normalTextTarget, opts))
} else { } else {
blueColor = RGBToHex(HSVToRGB(HSV{H: hsv.H, S: math.Max(hsv.S*0.8, 0.6), V: math.Min(hsv.V*1.6, 1.0)})) blueColor = RGBToHex(HSVToRGB(HSV{H: hsv.H, S: math.Max(hsv.S*0.8, 0.6), V: math.Min(hsv.V*1.6, 1.0)}))
palette = append(palette, ensureContrastAuto(blueColor, bgColor, normalTextTarget, opts)) palette.Color4 = NewColorInfo(ensureContrastAuto(blueColor, bgColor, normalTextTarget, opts))
} }
magH := hsv.H - 0.03 magH := hsv.H - 0.03
@@ -388,65 +430,64 @@ func GeneratePalette(primaryColor string, opts PaletteOptions) []string {
hh := RGBToHSV(hr) hh := RGBToHSV(hr)
if opts.IsLight { if opts.IsLight {
magColor = RGBToHex(HSVToRGB(HSV{H: hh.H, S: math.Max(hh.S*0.9, 0.7), V: hh.V * 0.85})) magColor = RGBToHex(HSVToRGB(HSV{H: hh.H, S: math.Max(hh.S*0.9, 0.7), V: hh.V * 0.85}))
palette = append(palette, ensureContrastAuto(magColor, bgColor, normalTextTarget, opts)) palette.Color5 = NewColorInfo(ensureContrastAuto(magColor, bgColor, normalTextTarget, opts))
} else { } else {
magColor = RGBToHex(HSVToRGB(HSV{H: hh.H, S: hh.S * 0.8, V: hh.V * 0.75})) magColor = RGBToHex(HSVToRGB(HSV{H: hh.H, S: hh.S * 0.8, V: hh.V * 0.75}))
palette = append(palette, ensureContrastAuto(magColor, bgColor, normalTextTarget, opts)) palette.Color5 = NewColorInfo(ensureContrastAuto(magColor, bgColor, normalTextTarget, opts))
} }
cyanH := hsv.H + 0.08 cyanH := hsv.H + 0.08
if cyanH > 1.0 { if cyanH > 1.0 {
cyanH -= 1.0 cyanH -= 1.0
} }
palette = append(palette, ensureContrastAuto(primaryColor, bgColor, normalTextTarget, opts)) palette.Color6 = NewColorInfo(ensureContrastAuto(primaryColor, bgColor, normalTextTarget, opts))
if opts.IsLight { if opts.IsLight {
palette = append(palette, "#1a1a1a") palette.Color7 = NewColorInfo("#1a1a1a")
palette = append(palette, "#2e2e2e") palette.Color8 = NewColorInfo("#2e2e2e")
} else { } else {
palette = append(palette, "#abb2bf") palette.Color7 = NewColorInfo("#abb2bf")
palette = append(palette, "#5c6370") palette.Color8 = NewColorInfo("#5c6370")
} }
if opts.IsLight { if opts.IsLight {
brightRed := RGBToHex(HSVToRGB(HSV{H: redH, S: math.Min(0.70*satBoost, 1.0), V: 0.65})) brightRed := RGBToHex(HSVToRGB(HSV{H: redH, S: math.Min(0.70*satBoost, 1.0), V: 0.65}))
palette = append(palette, ensureContrastAuto(brightRed, bgColor, secondaryTarget, opts)) palette.Color9 = NewColorInfo(ensureContrastAuto(brightRed, bgColor, secondaryTarget, opts))
brightGreen := RGBToHex(HSVToRGB(HSV{H: greenH, S: math.Min(math.Max(hsv.S*0.85, 0.75)*satBoost, 1.0), V: 0.55})) brightGreen := RGBToHex(HSVToRGB(HSV{H: greenH, S: math.Min(math.Max(hsv.S*0.85, 0.75)*satBoost, 1.0), V: 0.55}))
palette = append(palette, ensureContrastAuto(brightGreen, bgColor, secondaryTarget, opts)) palette.Color10 = NewColorInfo(ensureContrastAuto(brightGreen, bgColor, secondaryTarget, opts))
brightYellow := RGBToHex(HSVToRGB(HSV{H: yellowH, S: math.Min(0.68*satBoost, 1.0), V: 0.60})) brightYellow := RGBToHex(HSVToRGB(HSV{H: yellowH, S: math.Min(0.68*satBoost, 1.0), V: 0.60}))
palette = append(palette, ensureContrastAuto(brightYellow, bgColor, secondaryTarget, opts)) palette.Color11 = NewColorInfo(ensureContrastAuto(brightYellow, bgColor, secondaryTarget, opts))
hr := HexToRGB(primaryColor) hr := HexToRGB(primaryColor)
hh := RGBToHSV(hr) hh := RGBToHSV(hr)
brightBlue := RGBToHex(HSVToRGB(HSV{H: hh.H, S: math.Min(hh.S*1.1, 1.0), V: math.Min(hh.V*1.2, 1.0)})) brightBlue := RGBToHex(HSVToRGB(HSV{H: hh.H, S: math.Min(hh.S*1.1, 1.0), V: math.Min(hh.V*1.2, 1.0)}))
palette = append(palette, ensureContrastAuto(brightBlue, bgColor, secondaryTarget, opts)) palette.Color12 = NewColorInfo(ensureContrastAuto(brightBlue, bgColor, secondaryTarget, opts))
brightMag := RGBToHex(HSVToRGB(HSV{H: magH, S: math.Max(hsv.S*0.9, 0.75), V: math.Min(hsv.V*1.25, 1.0)})) brightMag := RGBToHex(HSVToRGB(HSV{H: magH, S: math.Max(hsv.S*0.9, 0.75), V: math.Min(hsv.V*1.25, 1.0)}))
palette = append(palette, ensureContrastAuto(brightMag, bgColor, secondaryTarget, opts)) palette.Color13 = NewColorInfo(ensureContrastAuto(brightMag, bgColor, secondaryTarget, opts))
brightCyan := RGBToHex(HSVToRGB(HSV{H: cyanH, S: math.Max(hsv.S*0.75, 0.65), V: math.Min(hsv.V*1.25, 1.0)})) brightCyan := RGBToHex(HSVToRGB(HSV{H: cyanH, S: math.Max(hsv.S*0.75, 0.65), V: math.Min(hsv.V*1.25, 1.0)}))
palette = append(palette, ensureContrastAuto(brightCyan, bgColor, secondaryTarget, opts)) palette.Color14 = NewColorInfo(ensureContrastAuto(brightCyan, bgColor, secondaryTarget, opts))
} else { } else {
brightRed := RGBToHex(HSVToRGB(HSV{H: redH, S: math.Min(0.50*satBoost, 1.0), V: 0.88})) brightRed := RGBToHex(HSVToRGB(HSV{H: redH, S: math.Min(0.50*satBoost, 1.0), V: 0.88}))
palette = append(palette, ensureContrastAuto(brightRed, bgColor, secondaryTarget, opts)) palette.Color9 = NewColorInfo(ensureContrastAuto(brightRed, bgColor, secondaryTarget, opts))
brightGreen := RGBToHex(HSVToRGB(HSV{H: greenH, S: math.Min(0.35*satBoost, 1.0), V: 0.88})) brightGreen := RGBToHex(HSVToRGB(HSV{H: greenH, S: math.Min(0.35*satBoost, 1.0), V: 0.88}))
palette = append(palette, ensureContrastAuto(brightGreen, bgColor, secondaryTarget, opts)) palette.Color10 = NewColorInfo(ensureContrastAuto(brightGreen, bgColor, secondaryTarget, opts))
brightYellow := RGBToHex(HSVToRGB(HSV{H: yellowH, S: math.Min(0.30*satBoost, 1.0), V: 0.91})) brightYellow := RGBToHex(HSVToRGB(HSV{H: yellowH, S: math.Min(0.30*satBoost, 1.0), V: 0.91}))
palette = append(palette, ensureContrastAuto(brightYellow, bgColor, secondaryTarget, opts)) palette.Color11 = NewColorInfo(ensureContrastAuto(brightYellow, bgColor, secondaryTarget, opts))
// Make it way brighter for type names in dark mode
brightBlue := retoneToL(primaryColor, 85.0) brightBlue := retoneToL(primaryColor, 85.0)
palette = append(palette, brightBlue) palette.Color12 = NewColorInfo(brightBlue)
brightMag := RGBToHex(HSVToRGB(HSV{H: magH, S: math.Max(hsv.S*0.7, 0.6), V: math.Min(hsv.V*1.3, 0.9)})) brightMag := RGBToHex(HSVToRGB(HSV{H: magH, S: math.Max(hsv.S*0.7, 0.6), V: math.Min(hsv.V*1.3, 0.9)}))
palette = append(palette, ensureContrastAuto(brightMag, bgColor, secondaryTarget, opts)) palette.Color13 = NewColorInfo(ensureContrastAuto(brightMag, bgColor, secondaryTarget, opts))
brightCyanH := hsv.H + 0.02 brightCyanH := hsv.H + 0.02
if brightCyanH > 1.0 { if brightCyanH > 1.0 {
brightCyanH -= 1.0 brightCyanH -= 1.0
} }
brightCyan := RGBToHex(HSVToRGB(HSV{H: brightCyanH, S: math.Max(hsv.S*0.6, 0.5), V: math.Min(hsv.V*1.2, 0.85)})) brightCyan := RGBToHex(HSVToRGB(HSV{H: brightCyanH, S: math.Max(hsv.S*0.6, 0.5), V: math.Min(hsv.V*1.2, 0.85)}))
palette = append(palette, ensureContrastAuto(brightCyan, bgColor, secondaryTarget, opts)) palette.Color14 = NewColorInfo(ensureContrastAuto(brightCyan, bgColor, secondaryTarget, opts))
} }
if opts.IsLight { if opts.IsLight {
palette = append(palette, "#1a1a1a") palette.Color15 = NewColorInfo("#1a1a1a")
} else { } else {
palette = append(palette, "#ffffff") palette.Color15 = NewColorInfo("#ffffff")
} }
return palette return palette

View File

@@ -345,28 +345,31 @@ func TestGeneratePalette(t *testing.T) {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
result := GeneratePalette(tt.base, tt.opts) result := GeneratePalette(tt.base, tt.opts)
if len(result) != 16 { colors := []ColorInfo{
t.Errorf("GeneratePalette returned %d colors, expected 16", len(result)) result.Color0, result.Color1, result.Color2, result.Color3,
result.Color4, result.Color5, result.Color6, result.Color7,
result.Color8, result.Color9, result.Color10, result.Color11,
result.Color12, result.Color13, result.Color14, result.Color15,
} }
for i, color := range result { for i, color := range colors {
if len(color) != 7 || color[0] != '#' { if len(color.Hex) != 7 || color.Hex[0] != '#' {
t.Errorf("Color at index %d (%s) is not a valid hex color", i, color) t.Errorf("Color at index %d (%s) is not a valid hex color", i, color.Hex)
} }
} }
if tt.opts.Background != "" && result[0] != tt.opts.Background { if tt.opts.Background != "" && result.Color0.Hex != tt.opts.Background {
t.Errorf("Background color = %s, expected %s", result[0], tt.opts.Background) t.Errorf("Background color = %s, expected %s", result.Color0.Hex, tt.opts.Background)
} else if !tt.opts.IsLight && tt.opts.Background == "" && result[0] != "#1a1a1a" { } else if !tt.opts.IsLight && tt.opts.Background == "" && result.Color0.Hex != "#1a1a1a" {
t.Errorf("Dark mode background = %s, expected #1a1a1a", result[0]) t.Errorf("Dark mode background = %s, expected #1a1a1a", result.Color0.Hex)
} else if tt.opts.IsLight && tt.opts.Background == "" && result[0] != "#f8f8f8" { } else if tt.opts.IsLight && tt.opts.Background == "" && result.Color0.Hex != "#f8f8f8" {
t.Errorf("Light mode background = %s, expected #f8f8f8", result[0]) t.Errorf("Light mode background = %s, expected #f8f8f8", result.Color0.Hex)
} }
if tt.opts.IsLight && result[15] != "#1a1a1a" { if tt.opts.IsLight && result.Color15.Hex != "#1a1a1a" {
t.Errorf("Light mode foreground = %s, expected #1a1a1a", result[15]) t.Errorf("Light mode foreground = %s, expected #1a1a1a", result.Color15.Hex)
} else if !tt.opts.IsLight && result[15] != "#ffffff" { } else if !tt.opts.IsLight && result.Color15.Hex != "#ffffff" {
t.Errorf("Dark mode foreground = %s, expected #ffffff", result[15]) t.Errorf("Dark mode foreground = %s, expected #ffffff", result.Color15.Hex)
} }
}) })
} }
@@ -561,23 +564,26 @@ func TestGeneratePaletteWithDPS(t *testing.T) {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
result := GeneratePalette(tt.base, tt.opts) result := GeneratePalette(tt.base, tt.opts)
if len(result) != 16 { colors := []ColorInfo{
t.Errorf("GeneratePalette returned %d colors, expected 16", len(result)) result.Color0, result.Color1, result.Color2, result.Color3,
result.Color4, result.Color5, result.Color6, result.Color7,
result.Color8, result.Color9, result.Color10, result.Color11,
result.Color12, result.Color13, result.Color14, result.Color15,
} }
for i, color := range result { for i, color := range colors {
if len(color) != 7 || color[0] != '#' { if len(color.Hex) != 7 || color.Hex[0] != '#' {
t.Errorf("Color at index %d (%s) is not a valid hex color", i, color) t.Errorf("Color at index %d (%s) is not a valid hex color", i, color.Hex)
} }
} }
bgColor := result[0] bgColor := result.Color0.Hex
for i := 1; i < 8; i++ { for i := 1; i < 8; i++ {
lc := DeltaPhiStarContrast(result[i], bgColor, tt.opts.IsLight) lc := DeltaPhiStarContrast(colors[i].Hex, bgColor, tt.opts.IsLight)
minLc := 30.0 minLc := 30.0
if lc < minLc && lc > 0 { if lc < minLc && lc > 0 {
t.Errorf("Color %d (%s) has insufficient DPS contrast %f with background %s (expected >= %f)", t.Errorf("Color %d (%s) has insufficient DPS contrast %f with background %s (expected >= %f)",
i, result[i], lc, bgColor, minLc) i, colors[i].Hex, lc, bgColor, minLc)
} }
} }
}) })
@@ -634,17 +640,26 @@ func TestContrastAlgorithmComparison(t *testing.T) {
paletteWCAG := GeneratePalette(base, optsWCAG) paletteWCAG := GeneratePalette(base, optsWCAG)
paletteDPS := GeneratePalette(base, optsDPS) paletteDPS := GeneratePalette(base, optsDPS)
if len(paletteWCAG) != 16 || len(paletteDPS) != 16 { wcagColors := []ColorInfo{
t.Fatal("Both palettes should have 16 colors") paletteWCAG.Color0, paletteWCAG.Color1, paletteWCAG.Color2, paletteWCAG.Color3,
paletteWCAG.Color4, paletteWCAG.Color5, paletteWCAG.Color6, paletteWCAG.Color7,
paletteWCAG.Color8, paletteWCAG.Color9, paletteWCAG.Color10, paletteWCAG.Color11,
paletteWCAG.Color12, paletteWCAG.Color13, paletteWCAG.Color14, paletteWCAG.Color15,
}
dpsColors := []ColorInfo{
paletteDPS.Color0, paletteDPS.Color1, paletteDPS.Color2, paletteDPS.Color3,
paletteDPS.Color4, paletteDPS.Color5, paletteDPS.Color6, paletteDPS.Color7,
paletteDPS.Color8, paletteDPS.Color9, paletteDPS.Color10, paletteDPS.Color11,
paletteDPS.Color12, paletteDPS.Color13, paletteDPS.Color14, paletteDPS.Color15,
} }
if paletteWCAG[0] != paletteDPS[0] { if paletteWCAG.Color0.Hex != paletteDPS.Color0.Hex {
t.Errorf("Background colors differ: WCAG=%s, DPS=%s", paletteWCAG[0], paletteDPS[0]) t.Errorf("Background colors differ: WCAG=%s, DPS=%s", paletteWCAG.Color0.Hex, paletteDPS.Color0.Hex)
} }
differentCount := 0 differentCount := 0
for i := 0; i < 16; i++ { for i := 0; i < 16; i++ {
if paletteWCAG[i] != paletteDPS[i] { if wcagColors[i].Hex != dpsColors[i].Hex {
differentCount++ differentCount++
} }
} }

View File

@@ -6,135 +6,104 @@ import (
"strings" "strings"
) )
func GenerateJSON(colors []string) string { func GenerateJSON(p Palette) string {
colorMap := make(map[string]string) marshalled, _ := json.Marshal(p)
for i, color := range colors {
colorMap[fmt.Sprintf("color%d", i)] = color
}
marshalled, _ := json.Marshal(colorMap)
return string(marshalled) return string(marshalled)
} }
func GenerateKittyTheme(colors []string) string { func GenerateKittyTheme(p Palette) string {
kittyColors := []struct {
name string
index int
}{
{"color0", 0},
{"color1", 1},
{"color2", 2},
{"color3", 3},
{"color4", 4},
{"color5", 5},
{"color6", 6},
{"color7", 7},
{"color8", 8},
{"color9", 9},
{"color10", 10},
{"color11", 11},
{"color12", 12},
{"color13", 13},
{"color14", 14},
{"color15", 15},
}
var result strings.Builder var result strings.Builder
for _, kc := range kittyColors { fmt.Fprintf(&result, "color0 %s\n", p.Color0.Hex)
fmt.Fprintf(&result, "%s %s\n", kc.name, colors[kc.index]) fmt.Fprintf(&result, "color1 %s\n", p.Color1.Hex)
} fmt.Fprintf(&result, "color2 %s\n", p.Color2.Hex)
fmt.Fprintf(&result, "color3 %s\n", p.Color3.Hex)
fmt.Fprintf(&result, "color4 %s\n", p.Color4.Hex)
fmt.Fprintf(&result, "color5 %s\n", p.Color5.Hex)
fmt.Fprintf(&result, "color6 %s\n", p.Color6.Hex)
fmt.Fprintf(&result, "color7 %s\n", p.Color7.Hex)
fmt.Fprintf(&result, "color8 %s\n", p.Color8.Hex)
fmt.Fprintf(&result, "color9 %s\n", p.Color9.Hex)
fmt.Fprintf(&result, "color10 %s\n", p.Color10.Hex)
fmt.Fprintf(&result, "color11 %s\n", p.Color11.Hex)
fmt.Fprintf(&result, "color12 %s\n", p.Color12.Hex)
fmt.Fprintf(&result, "color13 %s\n", p.Color13.Hex)
fmt.Fprintf(&result, "color14 %s\n", p.Color14.Hex)
fmt.Fprintf(&result, "color15 %s\n", p.Color15.Hex)
return result.String() return result.String()
} }
func GenerateFootTheme(colors []string) string { func GenerateFootTheme(p Palette) string {
footColors := []struct {
name string
index int
}{
{"regular0", 0},
{"regular1", 1},
{"regular2", 2},
{"regular3", 3},
{"regular4", 4},
{"regular5", 5},
{"regular6", 6},
{"regular7", 7},
{"bright0", 8},
{"bright1", 9},
{"bright2", 10},
{"bright3", 11},
{"bright4", 12},
{"bright5", 13},
{"bright6", 14},
{"bright7", 15},
}
var result strings.Builder var result strings.Builder
for _, fc := range footColors { fmt.Fprintf(&result, "regular0=%s\n", p.Color0.HexStripped)
fmt.Fprintf(&result, "%s=%s\n", fc.name, strings.TrimPrefix(colors[fc.index], "#")) fmt.Fprintf(&result, "regular1=%s\n", p.Color1.HexStripped)
} fmt.Fprintf(&result, "regular2=%s\n", p.Color2.HexStripped)
fmt.Fprintf(&result, "regular3=%s\n", p.Color3.HexStripped)
fmt.Fprintf(&result, "regular4=%s\n", p.Color4.HexStripped)
fmt.Fprintf(&result, "regular5=%s\n", p.Color5.HexStripped)
fmt.Fprintf(&result, "regular6=%s\n", p.Color6.HexStripped)
fmt.Fprintf(&result, "regular7=%s\n", p.Color7.HexStripped)
fmt.Fprintf(&result, "bright0=%s\n", p.Color8.HexStripped)
fmt.Fprintf(&result, "bright1=%s\n", p.Color9.HexStripped)
fmt.Fprintf(&result, "bright2=%s\n", p.Color10.HexStripped)
fmt.Fprintf(&result, "bright3=%s\n", p.Color11.HexStripped)
fmt.Fprintf(&result, "bright4=%s\n", p.Color12.HexStripped)
fmt.Fprintf(&result, "bright5=%s\n", p.Color13.HexStripped)
fmt.Fprintf(&result, "bright6=%s\n", p.Color14.HexStripped)
fmt.Fprintf(&result, "bright7=%s\n", p.Color15.HexStripped)
return result.String() return result.String()
} }
func GenerateAlacrittyTheme(colors []string) string { func GenerateAlacrittyTheme(p Palette) string {
alacrittyColors := []struct {
section string
name string
index int
}{
{"normal", "black", 0},
{"normal", "red", 1},
{"normal", "green", 2},
{"normal", "yellow", 3},
{"normal", "blue", 4},
{"normal", "magenta", 5},
{"normal", "cyan", 6},
{"normal", "white", 7},
{"bright", "black", 8},
{"bright", "red", 9},
{"bright", "green", 10},
{"bright", "yellow", 11},
{"bright", "blue", 12},
{"bright", "magenta", 13},
{"bright", "cyan", 14},
{"bright", "white", 15},
}
var result strings.Builder var result strings.Builder
currentSection := "" result.WriteString("[colors.normal]\n")
for _, ac := range alacrittyColors { fmt.Fprintf(&result, "black = '%s'\n", p.Color0.Hex)
if ac.section != currentSection { fmt.Fprintf(&result, "red = '%s'\n", p.Color1.Hex)
if currentSection != "" { fmt.Fprintf(&result, "green = '%s'\n", p.Color2.Hex)
result.WriteString("\n") fmt.Fprintf(&result, "yellow = '%s'\n", p.Color3.Hex)
} fmt.Fprintf(&result, "blue = '%s'\n", p.Color4.Hex)
fmt.Fprintf(&result, "[colors.%s]\n", ac.section) fmt.Fprintf(&result, "magenta = '%s'\n", p.Color5.Hex)
currentSection = ac.section fmt.Fprintf(&result, "cyan = '%s'\n", p.Color6.Hex)
} fmt.Fprintf(&result, "white = '%s'\n", p.Color7.Hex)
fmt.Fprintf(&result, "%-7s = '%s'\n", ac.name, colors[ac.index]) result.WriteString("\n[colors.bright]\n")
} fmt.Fprintf(&result, "black = '%s'\n", p.Color8.Hex)
fmt.Fprintf(&result, "red = '%s'\n", p.Color9.Hex)
fmt.Fprintf(&result, "green = '%s'\n", p.Color10.Hex)
fmt.Fprintf(&result, "yellow = '%s'\n", p.Color11.Hex)
fmt.Fprintf(&result, "blue = '%s'\n", p.Color12.Hex)
fmt.Fprintf(&result, "magenta = '%s'\n", p.Color13.Hex)
fmt.Fprintf(&result, "cyan = '%s'\n", p.Color14.Hex)
fmt.Fprintf(&result, "white = '%s'\n", p.Color15.Hex)
return result.String() return result.String()
} }
func GenerateGhosttyTheme(colors []string) string { func GenerateGhosttyTheme(p Palette) string {
var result strings.Builder var result strings.Builder
for i, color := range colors { fmt.Fprintf(&result, "palette = 0=%s\n", p.Color0.Hex)
fmt.Fprintf(&result, "palette = %d=%s\n", i, color) fmt.Fprintf(&result, "palette = 1=%s\n", p.Color1.Hex)
} fmt.Fprintf(&result, "palette = 2=%s\n", p.Color2.Hex)
fmt.Fprintf(&result, "palette = 3=%s\n", p.Color3.Hex)
fmt.Fprintf(&result, "palette = 4=%s\n", p.Color4.Hex)
fmt.Fprintf(&result, "palette = 5=%s\n", p.Color5.Hex)
fmt.Fprintf(&result, "palette = 6=%s\n", p.Color6.Hex)
fmt.Fprintf(&result, "palette = 7=%s\n", p.Color7.Hex)
fmt.Fprintf(&result, "palette = 8=%s\n", p.Color8.Hex)
fmt.Fprintf(&result, "palette = 9=%s\n", p.Color9.Hex)
fmt.Fprintf(&result, "palette = 10=%s\n", p.Color10.Hex)
fmt.Fprintf(&result, "palette = 11=%s\n", p.Color11.Hex)
fmt.Fprintf(&result, "palette = 12=%s\n", p.Color12.Hex)
fmt.Fprintf(&result, "palette = 13=%s\n", p.Color13.Hex)
fmt.Fprintf(&result, "palette = 14=%s\n", p.Color14.Hex)
fmt.Fprintf(&result, "palette = 15=%s\n", p.Color15.Hex)
return result.String() return result.String()
} }
func GenerateWeztermTheme(colors []string) string { func GenerateWeztermTheme(p Palette) string {
var result strings.Builder var result strings.Builder
labels := []string{"ansi", "brights"} fmt.Fprintf(&result, "ansi = ['%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s']\n",
for j, label := range labels { p.Color0.Hex, p.Color1.Hex, p.Color2.Hex, p.Color3.Hex,
start := j * 8 p.Color4.Hex, p.Color5.Hex, p.Color6.Hex, p.Color7.Hex)
colorSlice := make([]string, 8) fmt.Fprintf(&result, "brights = ['%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s']\n",
for i, color := range colors[start : start+8] { p.Color8.Hex, p.Color9.Hex, p.Color10.Hex, p.Color11.Hex,
colorSlice[i] = fmt.Sprintf("'%s'", color) p.Color12.Hex, p.Color13.Hex, p.Color14.Hex, p.Color15.Hex)
}
fmt.Fprintf(&result, "%s = [%s]\n", label, strings.Join(colorSlice, ", "))
}
return result.String() return result.String()
} }

View File

@@ -927,10 +927,46 @@ rm -rf '${home}'/.cache/icon-cache '${home}'/.cache/thumbnails 2>/dev/null || tr
return barConfigs.filter(cfg => cfg.enabled); return barConfigs.filter(cfg => cfg.enabled);
} }
function getScreensSortedByPosition() {
const screens = [];
for (let i = 0; i < Quickshell.screens.length; i++) {
screens.push(Quickshell.screens[i]);
}
screens.sort((a, b) => {
if (a.x !== b.x)
return a.x - b.x;
return a.y - b.y;
});
return screens;
}
function getScreenModelIndex(screen) {
if (!screen || !screen.model)
return -1;
const sorted = getScreensSortedByPosition();
let modelCount = 0;
let screenIndex = -1;
for (let i = 0; i < sorted.length; i++) {
if (sorted[i].model === screen.model) {
if (sorted[i].name === screen.name) {
screenIndex = modelCount;
}
modelCount++;
}
}
if (modelCount <= 1)
return -1;
return screenIndex;
}
function getScreenDisplayName(screen) { function getScreenDisplayName(screen) {
if (!screen) if (!screen)
return ""; return "";
if (displayNameMode === "model" && screen.model) { if (displayNameMode === "model" && screen.model) {
const modelIndex = getScreenModelIndex(screen);
if (modelIndex >= 0) {
return screen.model + "-" + modelIndex;
}
return screen.model; return screen.model;
} }
return screen.name; return screen.name;
@@ -940,13 +976,27 @@ rm -rf '${home}'/.cache/icon-cache '${home}'/.cache/thumbnails 2>/dev/null || tr
if (!screen) if (!screen)
return false; return false;
const screenDisplayName = getScreenDisplayName(screen);
return prefs.some(pref => { return prefs.some(pref => {
if (typeof pref === "string") { if (typeof pref === "string") {
return pref === "all" || pref === screen.name || pref === screen.model; if (pref === "all" || pref === screen.name)
return true;
if (displayNameMode === "model") {
return pref === screenDisplayName;
}
return pref === screen.model;
} }
if (displayNameMode === "model") { if (displayNameMode === "model") {
return pref.model && screen.model && pref.model === screen.model; if (pref.model && screen.model) {
if (pref.modelIndex !== undefined) {
const screenModelIndex = getScreenModelIndex(screen);
return pref.model === screen.model && pref.modelIndex === screenModelIndex;
}
return pref.model === screen.model;
}
return false;
} }
return pref.name === screen.name; return pref.name === screen.name;
}); });

View File

@@ -1,4 +1,5 @@
import QtQuick import QtQuick
import Quickshell
import qs.Common import qs.Common
import qs.Services import qs.Services
import qs.Widgets import qs.Widgets
@@ -16,10 +17,16 @@ Rectangle {
property string currentDeviceName: "" property string currentDeviceName: ""
function getScreenPinKey() { function getScreenPinKey() {
if (!screenName)
return "";
const screen = Quickshell.screens.find(s => s.name === screenName);
if (screen) {
return SettingsData.getScreenDisplayName(screen);
}
if (SettingsData.displayNameMode === "model" && screenModel && screenModel.length > 0) { if (SettingsData.displayNameMode === "model" && screenModel && screenModel.length > 0) {
return screenModel; return screenModel;
} }
return screenName || ""; return screenName;
} }
function resolveDeviceName() { function resolveDeviceName() {

View File

@@ -1,4 +1,5 @@
import QtQuick import QtQuick
import Quickshell
import qs.Common import qs.Common
import qs.Modules.Plugins import qs.Modules.Plugins
import qs.Services import qs.Services
@@ -79,10 +80,16 @@ BasePill {
} }
function getScreenPinKey() { function getScreenPinKey() {
if (!root.screenName)
return "";
const screen = Quickshell.screens.find(s => s.name === root.screenName);
if (screen) {
return SettingsData.getScreenDisplayName(screen);
}
if (SettingsData.displayNameMode === "model" && root.screenModel && root.screenModel.length > 0) { if (SettingsData.displayNameMode === "model" && root.screenModel && root.screenModel.length > 0) {
return root.screenModel; return root.screenModel;
} }
return root.screenName || ""; return root.screenName;
} }
function getPinnedBrightnessDevice() { function getPinnedBrightnessDevice() {

View File

@@ -11,6 +11,33 @@ BasePill {
property var widgetData: null property var widgetData: null
property bool compactMode: widgetData?.keyboardLayoutNameCompactMode !== undefined ? widgetData.keyboardLayoutNameCompactMode : SettingsData.keyboardLayoutNameCompactMode property bool compactMode: widgetData?.keyboardLayoutNameCompactMode !== undefined ? widgetData.keyboardLayoutNameCompactMode : SettingsData.keyboardLayoutNameCompactMode
readonly property var langCodes: ({
"afrikaans": "af", "albanian": "sq", "amharic": "am", "arabic": "ar",
"armenian": "hy", "azerbaijani": "az", "basque": "eu", "belarusian": "be",
"bengali": "bn", "bosnian": "bs", "bulgarian": "bg", "burmese": "my",
"catalan": "ca", "chinese": "zh", "croatian": "hr", "czech": "cs",
"danish": "da", "dutch": "nl", "english": "en", "esperanto": "eo",
"estonian": "et", "filipino": "fil", "finnish": "fi", "french": "fr",
"galician": "gl", "georgian": "ka", "german": "de", "greek": "el",
"gujarati": "gu", "hausa": "ha", "hebrew": "he", "hindi": "hi",
"hungarian": "hu", "icelandic": "is", "igbo": "ig", "indonesian": "id",
"irish": "ga", "italian": "it", "japanese": "ja", "javanese": "jv",
"kannada": "kn", "kazakh": "kk", "khmer": "km", "korean": "ko",
"kurdish": "ku", "kyrgyz": "ky", "lao": "lo", "latvian": "lv",
"lithuanian": "lt", "luxembourgish": "lb", "macedonian": "mk", "malay": "ms",
"malayalam": "ml", "maltese": "mt", "maori": "mi", "marathi": "mr",
"mongolian": "mn", "nepali": "ne", "norwegian": "no", "pashto": "ps",
"persian": "fa", "iranian": "fa", "farsi": "fa", "polish": "pl",
"portuguese": "pt", "punjabi": "pa", "romanian": "ro", "russian": "ru",
"serbian": "sr", "sindhi": "sd", "sinhala": "si", "slovak": "sk",
"slovenian": "sl", "somali": "so", "spanish": "es", "swahili": "sw",
"swedish": "sv", "tajik": "tg", "tamil": "ta", "tatar": "tt",
"telugu": "te", "thai": "th", "tibetan": "bo", "turkish": "tr",
"turkmen": "tk", "ukrainian": "uk", "urdu": "ur", "uyghur": "ug",
"uzbek": "uz", "vietnamese": "vi", "welsh": "cy", "yiddish": "yi",
"yoruba": "yo", "zulu": "zu"
})
readonly property var validVariants: ["US", "UK", "GB", "AZERTY", "QWERTY", "Dvorak", "Colemak", "Mac", "Intl", "International"]
property string currentLayout: { property string currentLayout: {
if (CompositorService.isNiri) { if (CompositorService.isNiri) {
return NiriService.getCurrentKeyboardLayoutName(); return NiriService.getCurrentKeyboardLayoutName();
@@ -43,11 +70,9 @@ BasePill {
text: { text: {
if (!root.currentLayout) if (!root.currentLayout)
return ""; return "";
const parts = root.currentLayout.split(" "); const lang = root.currentLayout.split(" ")[0].toLowerCase();
if (parts.length > 0) { const code = root.langCodes[lang] || lang.substring(0, 2);
return parts[0].substring(0, 2).toUpperCase(); return code.toUpperCase();
}
return root.currentLayout.substring(0, 2).toUpperCase();
} }
font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale)
color: Theme.widgetTextColor color: Theme.widgetTextColor
@@ -62,7 +87,26 @@ BasePill {
spacing: Theme.spacingS spacing: Theme.spacingS
StyledText { StyledText {
text: root.currentLayout text: {
if (!root.currentLayout)
return "";
if (root.compactMode && !CompositorService.isHyprland) {
const match = root.currentLayout.match(/^(\S+)(?:.*\(([^)]+)\))?/);
if (match) {
const lang = match[1].toLowerCase();
const code = root.langCodes[lang] || lang.substring(0, 2);
if (match[2]) {
const variant = match[2].trim();
const isValid = root.validVariants.some(v => variant.toUpperCase().includes(v.toUpperCase())) || variant.length <= 3;
if (isValid)
return code + "-" + variant;
}
return code.toUpperCase();
}
return root.currentLayout.substring(0, 2).toUpperCase();
}
return root.currentLayout;
}
font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale) font.pixelSize: Theme.barTextSize(root.barThickness, root.barConfig?.fontScale)
color: Theme.widgetTextColor color: Theme.widgetTextColor
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter

View File

@@ -1486,17 +1486,26 @@ Item {
currentPrefs = []; currentPrefs = [];
} }
const screenModelIndex = SettingsData.getScreenModelIndex(screenData);
let newPrefs = currentPrefs.filter(pref => { let newPrefs = currentPrefs.filter(pref => {
if (typeof pref === "string") if (typeof pref === "string")
return false; return false;
if (pref.modelIndex !== undefined && screenModelIndex >= 0) {
return !(pref.model === screenData.model && pref.modelIndex === screenModelIndex);
}
return pref.name !== screenData.name || pref.model !== screenData.model; return pref.name !== screenData.name || pref.model !== screenData.model;
}); });
if (checked) { if (checked) {
newPrefs.push({ const prefObj = {
name: screenData.name, name: screenData.name,
model: screenData.model || "" model: screenData.model || ""
}); };
if (screenModelIndex >= 0) {
prefObj.modelIndex = screenModelIndex;
}
newPrefs.push(prefObj);
} }
dankBarTab.setBarScreenPreferences(selectedBarId, newPrefs); dankBarTab.setBarScreenPreferences(selectedBarId, newPrefs);

View File

@@ -691,9 +691,9 @@ Item {
StyledText { StyledText {
text: { text: {
if (parent.currentMode) { if (parent.currentMode) {
return parent.currentMode.width + "×" + parent.currentMode.height + "@" + Math.round(parent.currentMode.refresh / 1000) + "Hz" return parent.currentMode.width + "×" + parent.currentMode.height + "@" + Math.round(parent.currentMode.refresh / 1000) + "Hz";
} }
return modelData.width + "×" + modelData.height return modelData.width + "×" + modelData.height;
} }
font.pixelSize: Theme.fontSizeSmall font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText color: Theme.surfaceVariantText
@@ -870,17 +870,26 @@ Item {
currentPrefs = []; currentPrefs = [];
} }
const screenModelIndex = SettingsData.getScreenModelIndex(screenData);
var newPrefs = currentPrefs.filter(pref => { var newPrefs = currentPrefs.filter(pref => {
if (typeof pref === "string") if (typeof pref === "string")
return false; return false;
if (pref.modelIndex !== undefined && screenModelIndex >= 0) {
return !(pref.model === screenData.model && pref.modelIndex === screenModelIndex);
}
return pref.name !== screenData.name || pref.model !== screenData.model; return pref.name !== screenData.name || pref.model !== screenData.model;
}); });
if (checked) { if (checked) {
newPrefs.push({ const prefObj = {
name: screenData.name, name: screenData.name,
model: screenData.model || "" model: screenData.model || ""
}); };
if (screenModelIndex >= 0) {
prefObj.modelIndex = screenModelIndex;
}
newPrefs.push(prefObj);
} }
displaysTab.setScreenPreferences(componentId, newPrefs); displaysTab.setScreenPreferences(componentId, newPrefs);

View File

@@ -11,21 +11,21 @@ text = '{{colors.background.default.hex}}'
cursor = '{{colors.primary.default.hex}}' cursor = '{{colors.primary.default.hex}}'
[colors.normal] [colors.normal]
black = '{{dank16.color0}}' black = '{{dank16.color0.hex}}'
red = '{{dank16.color1}}' red = '{{dank16.color1.hex}}'
green = '{{dank16.color2}}' green = '{{dank16.color2.hex}}'
yellow = '{{dank16.color3}}' yellow = '{{dank16.color3.hex}}'
blue = '{{dank16.color4}}' blue = '{{dank16.color4.hex}}'
magenta = '{{dank16.color5}}' magenta = '{{dank16.color5.hex}}'
cyan = '{{dank16.color6}}' cyan = '{{dank16.color6.hex}}'
white = '{{dank16.color7}}' white = '{{dank16.color7.hex}}'
[colors.bright] [colors.bright]
black = '{{dank16.color8}}' black = '{{dank16.color8.hex}}'
red = '{{dank16.color9}}' red = '{{dank16.color9.hex}}'
green = '{{dank16.color10}}' green = '{{dank16.color10.hex}}'
yellow = '{{dank16.color11}}' yellow = '{{dank16.color11.hex}}'
blue = '{{dank16.color12}}' blue = '{{dank16.color12.hex}}'
magenta = '{{dank16.color13}}' magenta = '{{dank16.color13.hex}}'
cyan = '{{dank16.color14}}' cyan = '{{dank16.color14.hex}}'
white = '{{dank16.color15}}' white = '{{dank16.color15.hex}}'

View File

@@ -4,19 +4,19 @@ background={{colors.background.default.hex_stripped}}
selection-foreground={{colors.on_surface.default.hex_stripped}} selection-foreground={{colors.on_surface.default.hex_stripped}}
selection-background={{colors.primary_container.default.hex_stripped}} selection-background={{colors.primary_container.default.hex_stripped}}
regular0={{dank16.color0 | remove_prefix: '#'}} regular0={{dank16.color0.hex_stripped}}
regular1={{dank16.color1 | remove_prefix: '#'}} regular1={{dank16.color1.hex_stripped}}
regular2={{dank16.color2 | remove_prefix: '#'}} regular2={{dank16.color2.hex_stripped}}
regular3={{dank16.color3 | remove_prefix: '#'}} regular3={{dank16.color3.hex_stripped}}
regular4={{dank16.color4 | remove_prefix: '#'}} regular4={{dank16.color4.hex_stripped}}
regular5={{dank16.color5 | remove_prefix: '#'}} regular5={{dank16.color5.hex_stripped}}
regular6={{dank16.color6 | remove_prefix: '#'}} regular6={{dank16.color6.hex_stripped}}
regular7={{dank16.color7 | remove_prefix: '#'}} regular7={{dank16.color7.hex_stripped}}
bright0={{dank16.color8 | remove_prefix: '#'}} bright0={{dank16.color8.hex_stripped}}
bright1={{dank16.color9 | remove_prefix: '#'}} bright1={{dank16.color9.hex_stripped}}
bright2={{dank16.color10 | remove_prefix: '#'}} bright2={{dank16.color10.hex_stripped}}
bright3={{dank16.color11 | remove_prefix: '#'}} bright3={{dank16.color11.hex_stripped}}
bright4={{dank16.color12 | remove_prefix: '#'}} bright4={{dank16.color12.hex_stripped}}
bright5={{dank16.color13 | remove_prefix: '#'}} bright5={{dank16.color13.hex_stripped}}
bright6={{dank16.color14 | remove_prefix: '#'}} bright6={{dank16.color14.hex_stripped}}
bright7={{dank16.color15 | remove_prefix: '#'}} bright7={{dank16.color15.hex_stripped}}

View File

@@ -4,19 +4,19 @@ cursor-color = {{colors.primary.default.hex}}
selection-background = {{colors.primary_container.default.hex}} selection-background = {{colors.primary_container.default.hex}}
selection-foreground = {{colors.on_surface.default.hex}} selection-foreground = {{colors.on_surface.default.hex}}
palette = 0={{dank16.color0}} palette = 0={{dank16.color0.hex}}
palette = 1={{dank16.color1}} palette = 1={{dank16.color1.hex}}
palette = 2={{dank16.color2}} palette = 2={{dank16.color2.hex}}
palette = 3={{dank16.color3}} palette = 3={{dank16.color3.hex}}
palette = 4={{dank16.color4}} palette = 4={{dank16.color4.hex}}
palette = 5={{dank16.color5}} palette = 5={{dank16.color5.hex}}
palette = 6={{dank16.color6}} palette = 6={{dank16.color6.hex}}
palette = 7={{dank16.color7}} palette = 7={{dank16.color7.hex}}
palette = 8={{dank16.color8}} palette = 8={{dank16.color8.hex}}
palette = 9={{dank16.color9}} palette = 9={{dank16.color9.hex}}
palette = 10={{dank16.color10}} palette = 10={{dank16.color10.hex}}
palette = 11={{dank16.color11}} palette = 11={{dank16.color11.hex}}
palette = 12={{dank16.color12}} palette = 12={{dank16.color12.hex}}
palette = 13={{dank16.color13}} palette = 13={{dank16.color13.hex}}
palette = 14={{dank16.color14}} palette = 14={{dank16.color14.hex}}
palette = 15={{dank16.color15}} palette = 15={{dank16.color15.hex}}

View File

@@ -7,19 +7,19 @@ selection_foreground {{colors.on_secondary.default.hex}}
selection_background {{colors.secondary_fixed_dim.default.hex}} selection_background {{colors.secondary_fixed_dim.default.hex}}
url_color {{colors.primary.default.hex}} url_color {{colors.primary.default.hex}}
color0 {{dank16.color0}} color0 {{dank16.color0.hex}}
color1 {{dank16.color1}} color1 {{dank16.color1.hex}}
color2 {{dank16.color2}} color2 {{dank16.color2.hex}}
color3 {{dank16.color3}} color3 {{dank16.color3.hex}}
color4 {{dank16.color4}} color4 {{dank16.color4.hex}}
color5 {{dank16.color5}} color5 {{dank16.color5.hex}}
color6 {{dank16.color6}} color6 {{dank16.color6.hex}}
color7 {{dank16.color7}} color7 {{dank16.color7.hex}}
color8 {{dank16.color8}} color8 {{dank16.color8.hex}}
color9 {{dank16.color9}} color9 {{dank16.color9.hex}}
color10 {{dank16.color10}} color10 {{dank16.color10.hex}}
color11 {{dank16.color11}} color11 {{dank16.color11.hex}}
color12 {{dank16.color12}} color12 {{dank16.color12.hex}}
color13 {{dank16.color13}} color13 {{dank16.color13.hex}}
color14 {{dank16.color14}} color14 {{dank16.color14.hex}}
color15 {{dank16.color15}} color15 {{dank16.color15.hex}}

View File

@@ -97,22 +97,22 @@
"terminal.background": "{{colors.background.dark.hex}}", "terminal.background": "{{colors.background.dark.hex}}",
"terminal.foreground": "{{colors.on_surface.dark.hex}}", "terminal.foreground": "{{colors.on_surface.dark.hex}}",
"terminal.ansiBlack": "{{dank16.color0}}", "terminal.ansiBlack": "{{dank16.color0.hex}}",
"terminal.ansiRed": "{{dank16.color1}}", "terminal.ansiRed": "{{dank16.color1.hex}}",
"terminal.ansiGreen": "{{dank16.color2}}", "terminal.ansiGreen": "{{dank16.color2.hex}}",
"terminal.ansiYellow": "{{dank16.color3}}", "terminal.ansiYellow": "{{dank16.color3.hex}}",
"terminal.ansiBlue": "{{dank16.color4}}", "terminal.ansiBlue": "{{dank16.color4.hex}}",
"terminal.ansiMagenta": "{{dank16.color5}}", "terminal.ansiMagenta": "{{dank16.color5.hex}}",
"terminal.ansiCyan": "{{dank16.color6}}", "terminal.ansiCyan": "{{dank16.color6.hex}}",
"terminal.ansiWhite": "{{dank16.color7}}", "terminal.ansiWhite": "{{dank16.color7.hex}}",
"terminal.ansiBrightBlack": "{{dank16.color8}}", "terminal.ansiBrightBlack": "{{dank16.color8.hex}}",
"terminal.ansiBrightRed": "{{dank16.color9}}", "terminal.ansiBrightRed": "{{dank16.color9.hex}}",
"terminal.ansiBrightGreen": "{{dank16.color10}}", "terminal.ansiBrightGreen": "{{dank16.color10.hex}}",
"terminal.ansiBrightYellow": "{{dank16.color11}}", "terminal.ansiBrightYellow": "{{dank16.color11.hex}}",
"terminal.ansiBrightBlue": "{{dank16.color12}}", "terminal.ansiBrightBlue": "{{dank16.color12.hex}}",
"terminal.ansiBrightMagenta": "{{dank16.color13}}", "terminal.ansiBrightMagenta": "{{dank16.color13.hex}}",
"terminal.ansiBrightCyan": "{{dank16.color14}}", "terminal.ansiBrightCyan": "{{dank16.color14.hex}}",
"terminal.ansiBrightWhite": "{{dank16.color15}}", "terminal.ansiBrightWhite": "{{dank16.color15.hex}}",
"gitDecoration.modifiedResourceForeground": "{{colors.primary.dark.hex}}", "gitDecoration.modifiedResourceForeground": "{{colors.primary.dark.hex}}",
"gitDecoration.addedResourceForeground": "{{colors.primary.dark.hex}}", "gitDecoration.addedResourceForeground": "{{colors.primary.dark.hex}}",
@@ -270,109 +270,109 @@
{ {
"scope": ["comment", "punctuation.definition.comment"], "scope": ["comment", "punctuation.definition.comment"],
"settings": { "settings": {
"foreground": "{{dank16.color8}}" "foreground": "{{dank16.color8.hex}}"
} }
}, },
{ {
"scope": "keyword", "scope": "keyword",
"settings": { "settings": {
"foreground": "{{dank16.color5}}" "foreground": "{{dank16.color5.hex}}"
} }
}, },
{ {
"scope": "storage.type", "scope": "storage.type",
"settings": { "settings": {
"foreground": "{{dank16.color13}}" "foreground": "{{dank16.color13.hex}}"
} }
}, },
{ {
"scope": "storage.modifier", "scope": "storage.modifier",
"settings": { "settings": {
"foreground": "{{dank16.color5}}" "foreground": "{{dank16.color5.hex}}"
} }
}, },
{ {
"scope": "variable", "scope": "variable",
"settings": { "settings": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
} }
}, },
{ {
"scope": "variable.parameter", "scope": "variable.parameter",
"settings": { "settings": {
"foreground": "{{dank16.color7}}" "foreground": "{{dank16.color7.hex}}"
} }
}, },
{ {
"scope": ["meta.object-literal.key", "meta.property.object", "variable.other.property"], "scope": ["meta.object-literal.key", "meta.property.object", "variable.other.property"],
"settings": { "settings": {
"foreground": "{{dank16.color4}}" "foreground": "{{dank16.color4.hex}}"
} }
}, },
{ {
"scope": "constant.other.symbol", "scope": "constant.other.symbol",
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": ["constant.numeric", "constant.language"], "scope": ["constant.numeric", "constant.language"],
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": "constant.character", "scope": "constant.character",
"settings": { "settings": {
"foreground": "{{dank16.color3}}" "foreground": "{{dank16.color3.hex}}"
} }
}, },
{ {
"scope": ["entity.name.type", "entity.name.class"], "scope": ["entity.name.type", "entity.name.class"],
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": "support.type", "scope": "support.type",
"settings": { "settings": {
"foreground": "{{dank16.color13}}" "foreground": "{{dank16.color13.hex}}"
} }
}, },
{ {
"scope": ["entity.name.function", "support.function"], "scope": ["entity.name.function", "support.function"],
"settings": { "settings": {
"foreground": "{{dank16.color2}}" "foreground": "{{dank16.color2.hex}}"
} }
}, },
{ {
"scope": ["support.class", "support.variable"], "scope": ["support.class", "support.variable"],
"settings": { "settings": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
} }
}, },
{ {
"scope": "variable.language", "scope": "variable.language",
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": "entity.name.tag.yaml", "scope": "entity.name.tag.yaml",
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": ["string.unquoted.plain.out.yaml", "string.unquoted.yaml"], "scope": ["string.unquoted.plain.out.yaml", "string.unquoted.yaml"],
"settings": { "settings": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
} }
}, },
{ {
"scope": "string", "scope": "string",
"settings": { "settings": {
"foreground": "{{dank16.color3}}" "foreground": "{{dank16.color3.hex}}"
} }
} }
], ],
@@ -380,52 +380,52 @@
"semanticHighlighting": true, "semanticHighlighting": true,
"semanticTokenColors": { "semanticTokenColors": {
"variable": { "variable": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
}, },
"variable.readonly": { "variable.readonly": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"property": { "property": {
"foreground": "{{dank16.color4}}" "foreground": "{{dank16.color4.hex}}"
}, },
"function": { "function": {
"foreground": "{{dank16.color2}}" "foreground": "{{dank16.color2.hex}}"
}, },
"method": { "method": {
"foreground": "{{dank16.color2}}" "foreground": "{{dank16.color2.hex}}"
}, },
"type": { "type": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"class": { "class": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"typeParameter": { "typeParameter": {
"foreground": "{{dank16.color13}}" "foreground": "{{dank16.color13.hex}}"
}, },
"enumMember": { "enumMember": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"string": { "string": {
"foreground": "{{dank16.color3}}" "foreground": "{{dank16.color3.hex}}"
}, },
"number": { "number": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"comment": { "comment": {
"foreground": "{{dank16.color8}}" "foreground": "{{dank16.color8.hex}}"
}, },
"keyword": { "keyword": {
"foreground": "{{dank16.color5}}" "foreground": "{{dank16.color5.hex}}"
}, },
"operator": { "operator": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
}, },
"parameter": { "parameter": {
"foreground": "{{dank16.color7}}" "foreground": "{{dank16.color7.hex}}"
}, },
"namespace": { "namespace": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
} }
} }
} }

View File

@@ -97,22 +97,22 @@
"terminal.background": "{{colors.background.default.hex}}", "terminal.background": "{{colors.background.default.hex}}",
"terminal.foreground": "{{colors.on_surface.default.hex}}", "terminal.foreground": "{{colors.on_surface.default.hex}}",
"terminal.ansiBlack": "{{dank16.color0}}", "terminal.ansiBlack": "{{dank16.color0.hex}}",
"terminal.ansiRed": "{{dank16.color1}}", "terminal.ansiRed": "{{dank16.color1.hex}}",
"terminal.ansiGreen": "{{dank16.color2}}", "terminal.ansiGreen": "{{dank16.color2.hex}}",
"terminal.ansiYellow": "{{dank16.color3}}", "terminal.ansiYellow": "{{dank16.color3.hex}}",
"terminal.ansiBlue": "{{dank16.color4}}", "terminal.ansiBlue": "{{dank16.color4.hex}}",
"terminal.ansiMagenta": "{{dank16.color5}}", "terminal.ansiMagenta": "{{dank16.color5.hex}}",
"terminal.ansiCyan": "{{dank16.color6}}", "terminal.ansiCyan": "{{dank16.color6.hex}}",
"terminal.ansiWhite": "{{dank16.color7}}", "terminal.ansiWhite": "{{dank16.color7.hex}}",
"terminal.ansiBrightBlack": "{{dank16.color8}}", "terminal.ansiBrightBlack": "{{dank16.color8.hex}}",
"terminal.ansiBrightRed": "{{dank16.color9}}", "terminal.ansiBrightRed": "{{dank16.color9.hex}}",
"terminal.ansiBrightGreen": "{{dank16.color10}}", "terminal.ansiBrightGreen": "{{dank16.color10.hex}}",
"terminal.ansiBrightYellow": "{{dank16.color11}}", "terminal.ansiBrightYellow": "{{dank16.color11.hex}}",
"terminal.ansiBrightBlue": "{{dank16.color12}}", "terminal.ansiBrightBlue": "{{dank16.color12.hex}}",
"terminal.ansiBrightMagenta": "{{dank16.color13}}", "terminal.ansiBrightMagenta": "{{dank16.color13.hex}}",
"terminal.ansiBrightCyan": "{{dank16.color14}}", "terminal.ansiBrightCyan": "{{dank16.color14.hex}}",
"terminal.ansiBrightWhite": "{{dank16.color15}}", "terminal.ansiBrightWhite": "{{dank16.color15.hex}}",
"gitDecoration.modifiedResourceForeground": "{{colors.primary.default.hex}}", "gitDecoration.modifiedResourceForeground": "{{colors.primary.default.hex}}",
"gitDecoration.addedResourceForeground": "{{colors.primary.default.hex}}", "gitDecoration.addedResourceForeground": "{{colors.primary.default.hex}}",
@@ -270,109 +270,109 @@
{ {
"scope": ["comment", "punctuation.definition.comment"], "scope": ["comment", "punctuation.definition.comment"],
"settings": { "settings": {
"foreground": "{{dank16.color8}}" "foreground": "{{dank16.color8.hex}}"
} }
}, },
{ {
"scope": "keyword", "scope": "keyword",
"settings": { "settings": {
"foreground": "{{dank16.color5}}" "foreground": "{{dank16.color5.hex}}"
} }
}, },
{ {
"scope": "storage.type", "scope": "storage.type",
"settings": { "settings": {
"foreground": "{{dank16.color13}}" "foreground": "{{dank16.color13.hex}}"
} }
}, },
{ {
"scope": "storage.modifier", "scope": "storage.modifier",
"settings": { "settings": {
"foreground": "{{dank16.color5}}" "foreground": "{{dank16.color5.hex}}"
} }
}, },
{ {
"scope": "variable", "scope": "variable",
"settings": { "settings": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
} }
}, },
{ {
"scope": "variable.parameter", "scope": "variable.parameter",
"settings": { "settings": {
"foreground": "{{dank16.color7}}" "foreground": "{{dank16.color7.hex}}"
} }
}, },
{ {
"scope": ["meta.object-literal.key", "meta.property.object", "variable.other.property"], "scope": ["meta.object-literal.key", "meta.property.object", "variable.other.property"],
"settings": { "settings": {
"foreground": "{{dank16.color4}}" "foreground": "{{dank16.color4.hex}}"
} }
}, },
{ {
"scope": "constant.other.symbol", "scope": "constant.other.symbol",
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": ["constant.numeric", "constant.language"], "scope": ["constant.numeric", "constant.language"],
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": "constant.character", "scope": "constant.character",
"settings": { "settings": {
"foreground": "{{dank16.color3}}" "foreground": "{{dank16.color3.hex}}"
} }
}, },
{ {
"scope": ["entity.name.type", "entity.name.class"], "scope": ["entity.name.type", "entity.name.class"],
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": "support.type", "scope": "support.type",
"settings": { "settings": {
"foreground": "{{dank16.color13}}" "foreground": "{{dank16.color13.hex}}"
} }
}, },
{ {
"scope": ["entity.name.function", "support.function"], "scope": ["entity.name.function", "support.function"],
"settings": { "settings": {
"foreground": "{{dank16.color2}}" "foreground": "{{dank16.color2.hex}}"
} }
}, },
{ {
"scope": ["support.class", "support.variable"], "scope": ["support.class", "support.variable"],
"settings": { "settings": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
} }
}, },
{ {
"scope": "variable.language", "scope": "variable.language",
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": "entity.name.tag.yaml", "scope": "entity.name.tag.yaml",
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": ["string.unquoted.plain.out.yaml", "string.unquoted.yaml"], "scope": ["string.unquoted.plain.out.yaml", "string.unquoted.yaml"],
"settings": { "settings": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
} }
}, },
{ {
"scope": "string", "scope": "string",
"settings": { "settings": {
"foreground": "{{dank16.color3}}" "foreground": "{{dank16.color3.hex}}"
} }
} }
], ],
@@ -380,52 +380,52 @@
"semanticHighlighting": true, "semanticHighlighting": true,
"semanticTokenColors": { "semanticTokenColors": {
"variable": { "variable": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
}, },
"variable.readonly": { "variable.readonly": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"property": { "property": {
"foreground": "{{dank16.color4}}" "foreground": "{{dank16.color4.hex}}"
}, },
"function": { "function": {
"foreground": "{{dank16.color2}}" "foreground": "{{dank16.color2.hex}}"
}, },
"method": { "method": {
"foreground": "{{dank16.color2}}" "foreground": "{{dank16.color2.hex}}"
}, },
"type": { "type": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"class": { "class": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"typeParameter": { "typeParameter": {
"foreground": "{{dank16.color13}}" "foreground": "{{dank16.color13.hex}}"
}, },
"enumMember": { "enumMember": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"string": { "string": {
"foreground": "{{dank16.color3}}" "foreground": "{{dank16.color3.hex}}"
}, },
"number": { "number": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"comment": { "comment": {
"foreground": "{{dank16.color8}}" "foreground": "{{dank16.color8.hex}}"
}, },
"keyword": { "keyword": {
"foreground": "{{dank16.color5}}" "foreground": "{{dank16.color5.hex}}"
}, },
"operator": { "operator": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
}, },
"parameter": { "parameter": {
"foreground": "{{dank16.color7}}" "foreground": "{{dank16.color7.hex}}"
}, },
"namespace": { "namespace": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
} }
} }
} }

View File

@@ -97,22 +97,22 @@
"terminal.background": "{{colors.background.light.hex}}", "terminal.background": "{{colors.background.light.hex}}",
"terminal.foreground": "{{colors.on_surface.light.hex}}", "terminal.foreground": "{{colors.on_surface.light.hex}}",
"terminal.ansiBlack": "{{dank16.color0}}", "terminal.ansiBlack": "{{dank16.color0.hex}}",
"terminal.ansiRed": "{{dank16.color1}}", "terminal.ansiRed": "{{dank16.color1.hex}}",
"terminal.ansiGreen": "{{dank16.color2}}", "terminal.ansiGreen": "{{dank16.color2.hex}}",
"terminal.ansiYellow": "{{dank16.color3}}", "terminal.ansiYellow": "{{dank16.color3.hex}}",
"terminal.ansiBlue": "{{dank16.color4}}", "terminal.ansiBlue": "{{dank16.color4.hex}}",
"terminal.ansiMagenta": "{{dank16.color5}}", "terminal.ansiMagenta": "{{dank16.color5.hex}}",
"terminal.ansiCyan": "{{dank16.color6}}", "terminal.ansiCyan": "{{dank16.color6.hex}}",
"terminal.ansiWhite": "{{dank16.color7}}", "terminal.ansiWhite": "{{dank16.color7.hex}}",
"terminal.ansiBrightBlack": "{{dank16.color8}}", "terminal.ansiBrightBlack": "{{dank16.color8.hex}}",
"terminal.ansiBrightRed": "{{dank16.color9}}", "terminal.ansiBrightRed": "{{dank16.color9.hex}}",
"terminal.ansiBrightGreen": "{{dank16.color10}}", "terminal.ansiBrightGreen": "{{dank16.color10.hex}}",
"terminal.ansiBrightYellow": "{{dank16.color11}}", "terminal.ansiBrightYellow": "{{dank16.color11.hex}}",
"terminal.ansiBrightBlue": "{{dank16.color12}}", "terminal.ansiBrightBlue": "{{dank16.color12.hex}}",
"terminal.ansiBrightMagenta": "{{dank16.color13}}", "terminal.ansiBrightMagenta": "{{dank16.color13.hex}}",
"terminal.ansiBrightCyan": "{{dank16.color14}}", "terminal.ansiBrightCyan": "{{dank16.color14.hex}}",
"terminal.ansiBrightWhite": "{{dank16.color15}}", "terminal.ansiBrightWhite": "{{dank16.color15.hex}}",
"gitDecoration.modifiedResourceForeground": "{{colors.primary.light.hex}}", "gitDecoration.modifiedResourceForeground": "{{colors.primary.light.hex}}",
"gitDecoration.addedResourceForeground": "{{colors.primary.light.hex}}", "gitDecoration.addedResourceForeground": "{{colors.primary.light.hex}}",
@@ -270,109 +270,109 @@
{ {
"scope": ["comment", "punctuation.definition.comment"], "scope": ["comment", "punctuation.definition.comment"],
"settings": { "settings": {
"foreground": "{{dank16.color8}}" "foreground": "{{dank16.color8.hex}}"
} }
}, },
{ {
"scope": "keyword", "scope": "keyword",
"settings": { "settings": {
"foreground": "{{dank16.color5}}" "foreground": "{{dank16.color5.hex}}"
} }
}, },
{ {
"scope": "storage.type", "scope": "storage.type",
"settings": { "settings": {
"foreground": "{{dank16.color13}}" "foreground": "{{dank16.color13.hex}}"
} }
}, },
{ {
"scope": "storage.modifier", "scope": "storage.modifier",
"settings": { "settings": {
"foreground": "{{dank16.color5}}" "foreground": "{{dank16.color5.hex}}"
} }
}, },
{ {
"scope": "variable", "scope": "variable",
"settings": { "settings": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
} }
}, },
{ {
"scope": "variable.parameter", "scope": "variable.parameter",
"settings": { "settings": {
"foreground": "{{dank16.color7}}" "foreground": "{{dank16.color7.hex}}"
} }
}, },
{ {
"scope": ["meta.object-literal.key", "meta.property.object", "variable.other.property"], "scope": ["meta.object-literal.key", "meta.property.object", "variable.other.property"],
"settings": { "settings": {
"foreground": "{{dank16.color4}}" "foreground": "{{dank16.color4.hex}}"
} }
}, },
{ {
"scope": "constant.other.symbol", "scope": "constant.other.symbol",
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": ["constant.numeric", "constant.language"], "scope": ["constant.numeric", "constant.language"],
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": "constant.character", "scope": "constant.character",
"settings": { "settings": {
"foreground": "{{dank16.color3}}" "foreground": "{{dank16.color3.hex}}"
} }
}, },
{ {
"scope": ["entity.name.type", "entity.name.class"], "scope": ["entity.name.type", "entity.name.class"],
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": "support.type", "scope": "support.type",
"settings": { "settings": {
"foreground": "{{dank16.color13}}" "foreground": "{{dank16.color13.hex}}"
} }
}, },
{ {
"scope": ["entity.name.function", "support.function"], "scope": ["entity.name.function", "support.function"],
"settings": { "settings": {
"foreground": "{{dank16.color2}}" "foreground": "{{dank16.color2.hex}}"
} }
}, },
{ {
"scope": ["support.class", "support.variable"], "scope": ["support.class", "support.variable"],
"settings": { "settings": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
} }
}, },
{ {
"scope": "variable.language", "scope": "variable.language",
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": "entity.name.tag.yaml", "scope": "entity.name.tag.yaml",
"settings": { "settings": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
} }
}, },
{ {
"scope": ["string.unquoted.plain.out.yaml", "string.unquoted.yaml"], "scope": ["string.unquoted.plain.out.yaml", "string.unquoted.yaml"],
"settings": { "settings": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
} }
}, },
{ {
"scope": "string", "scope": "string",
"settings": { "settings": {
"foreground": "{{dank16.color3}}" "foreground": "{{dank16.color3.hex}}"
} }
} }
], ],
@@ -380,52 +380,52 @@
"semanticHighlighting": true, "semanticHighlighting": true,
"semanticTokenColors": { "semanticTokenColors": {
"variable": { "variable": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
}, },
"variable.readonly": { "variable.readonly": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"property": { "property": {
"foreground": "{{dank16.color4}}" "foreground": "{{dank16.color4.hex}}"
}, },
"function": { "function": {
"foreground": "{{dank16.color2}}" "foreground": "{{dank16.color2.hex}}"
}, },
"method": { "method": {
"foreground": "{{dank16.color2}}" "foreground": "{{dank16.color2.hex}}"
}, },
"type": { "type": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"class": { "class": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"typeParameter": { "typeParameter": {
"foreground": "{{dank16.color13}}" "foreground": "{{dank16.color13.hex}}"
}, },
"enumMember": { "enumMember": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"string": { "string": {
"foreground": "{{dank16.color3}}" "foreground": "{{dank16.color3.hex}}"
}, },
"number": { "number": {
"foreground": "{{dank16.color12}}" "foreground": "{{dank16.color12.hex}}"
}, },
"comment": { "comment": {
"foreground": "{{dank16.color8}}" "foreground": "{{dank16.color8.hex}}"
}, },
"keyword": { "keyword": {
"foreground": "{{dank16.color5}}" "foreground": "{{dank16.color5.hex}}"
}, },
"operator": { "operator": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
}, },
"parameter": { "parameter": {
"foreground": "{{dank16.color7}}" "foreground": "{{dank16.color7.hex}}"
}, },
"namespace": { "namespace": {
"foreground": "{{dank16.color15}}" "foreground": "{{dank16.color15.hex}}"
} }
} }
} }

View File

@@ -9,5 +9,5 @@ cursor_border = '{{colors.primary.default.hex}}'
selection_bg = '{{colors.primary_container.default.hex}}' selection_bg = '{{colors.primary_container.default.hex}}'
selection_fg = '{{colors.on_surface.default.hex}}' selection_fg = '{{colors.on_surface.default.hex}}'
ansi = ['{{dank16.color0}}', '{{dank16.color1}}', '{{dank16.color2}}', '{{dank16.color3}}', '{{dank16.color4}}', '{{dank16.color5}}', '{{dank16.color6}}', '{{dank16.color7}}'] ansi = ['{{dank16.color0.hex}}', '{{dank16.color1.hex}}', '{{dank16.color2.hex}}', '{{dank16.color3.hex}}', '{{dank16.color4.hex}}', '{{dank16.color5.hex}}', '{{dank16.color6.hex}}', '{{dank16.color7.hex}}']
brights = ['{{dank16.color8}}', '{{dank16.color9}}', '{{dank16.color10}}', '{{dank16.color11}}', '{{dank16.color12}}', '{{dank16.color13}}', '{{dank16.color14}}', '{{dank16.color15}}'] brights = ['{{dank16.color8.hex}}', '{{dank16.color9.hex}}', '{{dank16.color10.hex}}', '{{dank16.color11.hex}}', '{{dank16.color12.hex}}', '{{dank16.color13.hex}}', '{{dank16.color14.hex}}', '{{dank16.color15.hex}}']