From d6f48a82d97b54c45e29076cfe598e6a21d0b52e Mon Sep 17 00:00:00 2001 From: Farokh Date: Sun, 7 Dec 2025 20:17:25 +0330 Subject: [PATCH] Update VSCode color theme templates for improved contrast and readability (#931) * matugen/vscode-theme: update VSCode templates for contrast and readability * vscode-theme: rework dark theme, refine light, restore default fallback * dank16: add variants option, make default vscode consistent, fix termial always dark --------- Co-authored-by: bbedward --- core/cmd/dms/commands_dank16.go | 55 +- core/internal/dank16/dank16.go | 81 +++ core/internal/dank16/terminals.go | 5 + .../matugen/dynamic-base16-dankshell.vsix | Bin 4982 -> 4983 bytes quickshell/matugen/templates/alacritty.toml | 32 +- quickshell/matugen/templates/foot.ini | 32 +- quickshell/matugen/templates/ghostty.conf | 32 +- quickshell/matugen/templates/kitty.conf | 32 +- .../templates/vscode-color-theme-dark.json | 582 +++++++---------- .../templates/vscode-color-theme-default.json | 530 +++++---------- .../templates/vscode-color-theme-light.json | 605 +++++++++--------- .../matugen/templates/vscode-color-theme.json | 315 --------- quickshell/matugen/templates/wezterm.toml | 4 +- quickshell/scripts/matugen-worker.sh | 91 +-- 14 files changed, 950 insertions(+), 1446 deletions(-) delete mode 100644 quickshell/matugen/templates/vscode-color-theme.json diff --git a/core/cmd/dms/commands_dank16.go b/core/cmd/dms/commands_dank16.go index 83479e5c..e8ace79a 100644 --- a/core/cmd/dms/commands_dank16.go +++ b/core/cmd/dms/commands_dank16.go @@ -10,15 +10,15 @@ import ( ) var dank16Cmd = &cobra.Command{ - Use: "dank16 ", + Use: "dank16 [hex_color]", Short: "Generate Base16 color palettes", Long: "Generate Base16 color palettes from a color with support for various output formats", - Args: cobra.ExactArgs(1), + Args: cobra.MaximumNArgs(1), Run: runDank16, } func init() { - dank16Cmd.Flags().Bool("light", false, "Generate light theme variant") + dank16Cmd.Flags().Bool("light", false, "Generate light theme variant (sets default to light)") dank16Cmd.Flags().Bool("json", false, "Output in JSON format") dank16Cmd.Flags().Bool("kitty", false, "Output in Kitty terminal format") dank16Cmd.Flags().Bool("foot", false, "Output in Foot terminal format") @@ -27,17 +27,15 @@ func init() { dank16Cmd.Flags().Bool("wezterm", false, "Output in Wezterm terminal format") dank16Cmd.Flags().String("background", "", "Custom background color") dank16Cmd.Flags().String("contrast", "dps", "Contrast algorithm: dps (Delta Phi Star, default) or wcag") + dank16Cmd.Flags().Bool("variants", false, "Output all variants (dark/light/default) in JSON") + dank16Cmd.Flags().String("primary-dark", "", "Primary color for dark mode (use with --variants)") + dank16Cmd.Flags().String("primary-light", "", "Primary color for light mode (use with --variants)") _ = dank16Cmd.RegisterFlagCompletionFunc("contrast", func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { return []string{"dps", "wcag"}, cobra.ShellCompDirectiveNoFileComp }) } func runDank16(cmd *cobra.Command, args []string) { - primaryColor := args[0] - if !strings.HasPrefix(primaryColor, "#") { - primaryColor = "#" + primaryColor - } - isLight, _ := cmd.Flags().GetBool("light") isJson, _ := cmd.Flags().GetBool("json") isKitty, _ := cmd.Flags().GetBool("kitty") @@ -47,16 +45,57 @@ func runDank16(cmd *cobra.Command, args []string) { isWezterm, _ := cmd.Flags().GetBool("wezterm") background, _ := cmd.Flags().GetString("background") contrastAlgo, _ := cmd.Flags().GetString("contrast") + useVariants, _ := cmd.Flags().GetBool("variants") + primaryDark, _ := cmd.Flags().GetString("primary-dark") + primaryLight, _ := cmd.Flags().GetString("primary-light") if background != "" && !strings.HasPrefix(background, "#") { background = "#" + background } + if primaryDark != "" && !strings.HasPrefix(primaryDark, "#") { + primaryDark = "#" + primaryDark + } + if primaryLight != "" && !strings.HasPrefix(primaryLight, "#") { + primaryLight = "#" + primaryLight + } contrastAlgo = strings.ToLower(contrastAlgo) if contrastAlgo != "dps" && contrastAlgo != "wcag" { log.Fatalf("Invalid contrast algorithm: %s (must be 'dps' or 'wcag')", contrastAlgo) } + if useVariants { + if primaryDark == "" || primaryLight == "" { + if len(args) == 0 { + log.Fatalf("--variants requires either a positional color argument or both --primary-dark and --primary-light") + } + primaryColor := args[0] + if !strings.HasPrefix(primaryColor, "#") { + primaryColor = "#" + primaryColor + } + primaryDark = primaryColor + primaryLight = primaryColor + } + variantOpts := dank16.VariantOptions{ + PrimaryDark: primaryDark, + PrimaryLight: primaryLight, + Background: background, + UseDPS: contrastAlgo == "dps", + IsLightMode: isLight, + } + variantColors := dank16.GenerateVariantPalette(variantOpts) + fmt.Print(dank16.GenerateVariantJSON(variantColors)) + return + } + + if len(args) == 0 { + log.Fatalf("A color argument is required (or use --variants with --primary-dark and --primary-light)") + } + primaryColor := args[0] + if !strings.HasPrefix(primaryColor, "#") { + primaryColor = "#" + primaryColor + } + opts := dank16.PaletteOptions{ IsLight: isLight, Background: background, diff --git a/core/internal/dank16/dank16.go b/core/internal/dank16/dank16.go index b7854e27..40133cc0 100644 --- a/core/internal/dank16/dank16.go +++ b/core/internal/dank16/dank16.go @@ -23,6 +23,17 @@ type ColorInfo struct { B int `json:"b"` } +type VariantColorValue struct { + Hex string `json:"hex"` + HexStripped string `json:"hex_stripped"` +} + +type VariantColorInfo struct { + Dark VariantColorValue `json:"dark"` + Light VariantColorValue `json:"light"` + Default VariantColorValue `json:"default"` +} + type Palette struct { Color0 ColorInfo `json:"color0"` Color1 ColorInfo `json:"color1"` @@ -42,6 +53,25 @@ type Palette struct { Color15 ColorInfo `json:"color15"` } +type VariantPalette struct { + Color0 VariantColorInfo `json:"color0"` + Color1 VariantColorInfo `json:"color1"` + Color2 VariantColorInfo `json:"color2"` + Color3 VariantColorInfo `json:"color3"` + Color4 VariantColorInfo `json:"color4"` + Color5 VariantColorInfo `json:"color5"` + Color6 VariantColorInfo `json:"color6"` + Color7 VariantColorInfo `json:"color7"` + Color8 VariantColorInfo `json:"color8"` + Color9 VariantColorInfo `json:"color9"` + Color10 VariantColorInfo `json:"color10"` + Color11 VariantColorInfo `json:"color11"` + Color12 VariantColorInfo `json:"color12"` + Color13 VariantColorInfo `json:"color13"` + Color14 VariantColorInfo `json:"color14"` + Color15 VariantColorInfo `json:"color15"` +} + func NewColorInfo(hex string) ColorInfo { rgb := HexToRGB(hex) stripped := hex @@ -492,3 +522,54 @@ func GeneratePalette(primaryColor string, opts PaletteOptions) Palette { return palette } + +type VariantOptions struct { + PrimaryDark string + PrimaryLight string + Background string + UseDPS bool + IsLightMode bool +} + +func mergeColorInfo(dark, light ColorInfo, isLightMode bool) VariantColorInfo { + darkVal := VariantColorValue{Hex: dark.Hex, HexStripped: dark.HexStripped} + lightVal := VariantColorValue{Hex: light.Hex, HexStripped: light.HexStripped} + + defaultVal := darkVal + if isLightMode { + defaultVal = lightVal + } + + return VariantColorInfo{ + Dark: darkVal, + Light: lightVal, + Default: defaultVal, + } +} + +func GenerateVariantPalette(opts VariantOptions) VariantPalette { + darkOpts := PaletteOptions{IsLight: false, Background: opts.Background, UseDPS: opts.UseDPS} + lightOpts := PaletteOptions{IsLight: true, Background: opts.Background, UseDPS: opts.UseDPS} + + dark := GeneratePalette(opts.PrimaryDark, darkOpts) + light := GeneratePalette(opts.PrimaryLight, lightOpts) + + return VariantPalette{ + Color0: mergeColorInfo(dark.Color0, light.Color0, opts.IsLightMode), + Color1: mergeColorInfo(dark.Color1, light.Color1, opts.IsLightMode), + Color2: mergeColorInfo(dark.Color2, light.Color2, opts.IsLightMode), + Color3: mergeColorInfo(dark.Color3, light.Color3, opts.IsLightMode), + Color4: mergeColorInfo(dark.Color4, light.Color4, opts.IsLightMode), + Color5: mergeColorInfo(dark.Color5, light.Color5, opts.IsLightMode), + Color6: mergeColorInfo(dark.Color6, light.Color6, opts.IsLightMode), + Color7: mergeColorInfo(dark.Color7, light.Color7, opts.IsLightMode), + Color8: mergeColorInfo(dark.Color8, light.Color8, opts.IsLightMode), + Color9: mergeColorInfo(dark.Color9, light.Color9, opts.IsLightMode), + Color10: mergeColorInfo(dark.Color10, light.Color10, opts.IsLightMode), + Color11: mergeColorInfo(dark.Color11, light.Color11, opts.IsLightMode), + Color12: mergeColorInfo(dark.Color12, light.Color12, opts.IsLightMode), + Color13: mergeColorInfo(dark.Color13, light.Color13, opts.IsLightMode), + Color14: mergeColorInfo(dark.Color14, light.Color14, opts.IsLightMode), + Color15: mergeColorInfo(dark.Color15, light.Color15, opts.IsLightMode), + } +} diff --git a/core/internal/dank16/terminals.go b/core/internal/dank16/terminals.go index bf27908f..d9686ee5 100644 --- a/core/internal/dank16/terminals.go +++ b/core/internal/dank16/terminals.go @@ -11,6 +11,11 @@ func GenerateJSON(p Palette) string { return string(marshalled) } +func GenerateVariantJSON(p VariantPalette) string { + marshalled, _ := json.Marshal(p) + return string(marshalled) +} + func GenerateKittyTheme(p Palette) string { var result strings.Builder fmt.Fprintf(&result, "color0 %s\n", p.Color0.Hex) diff --git a/quickshell/matugen/dynamic-base16-dankshell.vsix b/quickshell/matugen/dynamic-base16-dankshell.vsix index 64f754dca3bbffdd6050c3919a52257dce75c8c6..b08078990045de2d0172280ea157f2ef13a67ea6 100644 GIT binary patch delta 1246 zcmeyS_FauPz?+#xgn@y9gJDuw`$S$%_QQ)zGl6)b?MY#vNOXqk-nreX`~4yf*?xe#+ffo@qZv`mEoJJ)4$2h}`vr$2WDUQR%^C z3zhjloOhns9Kra@;sQJF?)W zq{5dJe!0#3oh+Z9^{+79U+Px7R5Jbcj_Y0jVh(Oy>rh;%8libV>%~6j=BHT=$@BFK za$F1Q&)df6J&U|<^<`>suEM0aZ+r6>E_xQ#E_avnC(E|R2EWF%^=6wKvL>qXByI4_ z@zn6z_FgX}`H@GZ@{S<8K&RZfPVw)mWaf8AW}LXW>)tH`*1U!99^FWrb+r4_#1l?a zPA&5fOZs*6$|;3PcB@HK=12b8IDgd-{w2i@mw*2cm9(s9bTi$lcklbm?w>b4Z~e%) zrETW7$_(~($3CoAV_O&Vhtq9x_QeZPp)Ph$Y^wSbOFn!`*uC!P{%o24hBEF$6R#Cr z(Yf`|>r(tZsdI8mm(2aJ;W~>%%p57{$df(a(?j*@m_ccR3z#MtKxrZx%zzSH3^EL< zlXaQ-RB$8!l;kuyo*AB=Hup2_R`B)_p8o*AH2WcwbAF!nvsOm2`dm=O~ zY0RE%FDQrN$a+C(M!U(g1tpO^rT{XfEDQ|lC{}l}Pfie$6HZM_EX^s= z%PP*#L-!ci8OR2xAQ`Zv(Ry;ckPfni;DA^wB+0U*@f8=)aM{Vvh4_&bSc6=o!0C@pPwtmHc_dV4ES0mZ`+RTDPYroLcI`fi6BXu@UG1ha#Xj9y_|<3G zj?;E0+kY;JasJ9?y6(VC*&q>p=VP&UZ|jR@9KGoCE;;Aj)J0kS>EAs-U+bq$Vp|&X?{qH=f6*~^7DI{7fk~tYBU?{QS(N%T9n}%IJ4qbNM zyt7?(x4n(bV&Iz;-q`&_m^n+H=Tgn(j{z(5oNUu%cYQl%SirmW`MR~oD)&fu>4;4> zv#b9k^;v(N8Q;$O1mWnPkx%4z|6BP#!OFGdF3&!x zKRot3H-mZMu^;P|s@4Ym^*lB?`@+YpP@Q|pa-9ZzvNrZdmgRnUFW2t;;BV88=T~KH zRxjH><&Su!`q9PL_6V~?pKdW+vT=js)Y%{ZZFx5NJ}60W0h0s+C`m+v8Bl_YL53l< zVzNFnuL_O?fRdahCosd))8+}xIgHFe11JAy(Saqh$wsWsV6h5TxY*{^taBj>z1h`? zvt}B*EzHEtx7f2Gx;;3pFa^JJSz`(==TV0XUgep@1a?stzd0z8PfipRn=ByA#*2~{ zCZFXufXd2%Rm%%Vi}3+7L25-wYF=?>ex8142rD?3zzhH@%NLMjZD` zAfpH}{iote1x;W;gRmHb1USfn8IPf%@gobvWPVmjga)vamVI)fknrRUf~?5CQvexN^7lbhAkZjF76t}&6#F|sn&gC2(-KQ_ zO7yad^YhSs2X+gx0V*g4SWQk4(m}Qm92)C{Bv~37UvdErm!14Vh#y&jHONH@3~w{a km>3wefG!e5F>odia#;I#I=lJ>yTTn6D6GI1#SaQV07z}1sQ>@~ diff --git a/quickshell/matugen/templates/alacritty.toml b/quickshell/matugen/templates/alacritty.toml index 7f34e6d7..b9295fd4 100644 --- a/quickshell/matugen/templates/alacritty.toml +++ b/quickshell/matugen/templates/alacritty.toml @@ -11,21 +11,21 @@ text = '{{colors.background.default.hex}}' cursor = '{{colors.primary.default.hex}}' [colors.normal] -black = '{{dank16.color0.hex}}' -red = '{{dank16.color1.hex}}' -green = '{{dank16.color2.hex}}' -yellow = '{{dank16.color3.hex}}' -blue = '{{dank16.color4.hex}}' -magenta = '{{dank16.color5.hex}}' -cyan = '{{dank16.color6.hex}}' -white = '{{dank16.color7.hex}}' +black = '{{dank16.color0.default.hex}}' +red = '{{dank16.color1.default.hex}}' +green = '{{dank16.color2.default.hex}}' +yellow = '{{dank16.color3.default.hex}}' +blue = '{{dank16.color4.default.hex}}' +magenta = '{{dank16.color5.default.hex}}' +cyan = '{{dank16.color6.default.hex}}' +white = '{{dank16.color7.default.hex}}' [colors.bright] -black = '{{dank16.color8.hex}}' -red = '{{dank16.color9.hex}}' -green = '{{dank16.color10.hex}}' -yellow = '{{dank16.color11.hex}}' -blue = '{{dank16.color12.hex}}' -magenta = '{{dank16.color13.hex}}' -cyan = '{{dank16.color14.hex}}' -white = '{{dank16.color15.hex}}' +black = '{{dank16.color8.default.hex}}' +red = '{{dank16.color9.default.hex}}' +green = '{{dank16.color10.default.hex}}' +yellow = '{{dank16.color11.default.hex}}' +blue = '{{dank16.color12.default.hex}}' +magenta = '{{dank16.color13.default.hex}}' +cyan = '{{dank16.color14.default.hex}}' +white = '{{dank16.color15.default.hex}}' diff --git a/quickshell/matugen/templates/foot.ini b/quickshell/matugen/templates/foot.ini index 291352ef..66d228ec 100644 --- a/quickshell/matugen/templates/foot.ini +++ b/quickshell/matugen/templates/foot.ini @@ -4,19 +4,19 @@ background={{colors.background.default.hex_stripped}} selection-foreground={{colors.on_surface.default.hex_stripped}} selection-background={{colors.primary_container.default.hex_stripped}} -regular0={{dank16.color0.hex_stripped}} -regular1={{dank16.color1.hex_stripped}} -regular2={{dank16.color2.hex_stripped}} -regular3={{dank16.color3.hex_stripped}} -regular4={{dank16.color4.hex_stripped}} -regular5={{dank16.color5.hex_stripped}} -regular6={{dank16.color6.hex_stripped}} -regular7={{dank16.color7.hex_stripped}} -bright0={{dank16.color8.hex_stripped}} -bright1={{dank16.color9.hex_stripped}} -bright2={{dank16.color10.hex_stripped}} -bright3={{dank16.color11.hex_stripped}} -bright4={{dank16.color12.hex_stripped}} -bright5={{dank16.color13.hex_stripped}} -bright6={{dank16.color14.hex_stripped}} -bright7={{dank16.color15.hex_stripped}} +regular0={{dank16.color0.default.hex_stripped}} +regular1={{dank16.color1.default.hex_stripped}} +regular2={{dank16.color2.default.hex_stripped}} +regular3={{dank16.color3.default.hex_stripped}} +regular4={{dank16.color4.default.hex_stripped}} +regular5={{dank16.color5.default.hex_stripped}} +regular6={{dank16.color6.default.hex_stripped}} +regular7={{dank16.color7.default.hex_stripped}} +bright0={{dank16.color8.default.hex_stripped}} +bright1={{dank16.color9.default.hex_stripped}} +bright2={{dank16.color10.default.hex_stripped}} +bright3={{dank16.color11.default.hex_stripped}} +bright4={{dank16.color12.default.hex_stripped}} +bright5={{dank16.color13.default.hex_stripped}} +bright6={{dank16.color14.default.hex_stripped}} +bright7={{dank16.color15.default.hex_stripped}} diff --git a/quickshell/matugen/templates/ghostty.conf b/quickshell/matugen/templates/ghostty.conf index 9cde7041..2fe27215 100644 --- a/quickshell/matugen/templates/ghostty.conf +++ b/quickshell/matugen/templates/ghostty.conf @@ -4,19 +4,19 @@ cursor-color = {{colors.primary.default.hex}} selection-background = {{colors.primary_container.default.hex}} selection-foreground = {{colors.on_surface.default.hex}} -palette = 0={{dank16.color0.hex}} -palette = 1={{dank16.color1.hex}} -palette = 2={{dank16.color2.hex}} -palette = 3={{dank16.color3.hex}} -palette = 4={{dank16.color4.hex}} -palette = 5={{dank16.color5.hex}} -palette = 6={{dank16.color6.hex}} -palette = 7={{dank16.color7.hex}} -palette = 8={{dank16.color8.hex}} -palette = 9={{dank16.color9.hex}} -palette = 10={{dank16.color10.hex}} -palette = 11={{dank16.color11.hex}} -palette = 12={{dank16.color12.hex}} -palette = 13={{dank16.color13.hex}} -palette = 14={{dank16.color14.hex}} -palette = 15={{dank16.color15.hex}} \ No newline at end of file +palette = 0={{dank16.color0.default.hex}} +palette = 1={{dank16.color1.default.hex}} +palette = 2={{dank16.color2.default.hex}} +palette = 3={{dank16.color3.default.hex}} +palette = 4={{dank16.color4.default.hex}} +palette = 5={{dank16.color5.default.hex}} +palette = 6={{dank16.color6.default.hex}} +palette = 7={{dank16.color7.default.hex}} +palette = 8={{dank16.color8.default.hex}} +palette = 9={{dank16.color9.default.hex}} +palette = 10={{dank16.color10.default.hex}} +palette = 11={{dank16.color11.default.hex}} +palette = 12={{dank16.color12.default.hex}} +palette = 13={{dank16.color13.default.hex}} +palette = 14={{dank16.color14.default.hex}} +palette = 15={{dank16.color15.default.hex}} diff --git a/quickshell/matugen/templates/kitty.conf b/quickshell/matugen/templates/kitty.conf index f7720668..c140ff37 100644 --- a/quickshell/matugen/templates/kitty.conf +++ b/quickshell/matugen/templates/kitty.conf @@ -7,19 +7,19 @@ selection_foreground {{colors.on_secondary.default.hex}} selection_background {{colors.secondary_fixed_dim.default.hex}} url_color {{colors.primary.default.hex}} -color0 {{dank16.color0.hex}} -color1 {{dank16.color1.hex}} -color2 {{dank16.color2.hex}} -color3 {{dank16.color3.hex}} -color4 {{dank16.color4.hex}} -color5 {{dank16.color5.hex}} -color6 {{dank16.color6.hex}} -color7 {{dank16.color7.hex}} -color8 {{dank16.color8.hex}} -color9 {{dank16.color9.hex}} -color10 {{dank16.color10.hex}} -color11 {{dank16.color11.hex}} -color12 {{dank16.color12.hex}} -color13 {{dank16.color13.hex}} -color14 {{dank16.color14.hex}} -color15 {{dank16.color15.hex}} \ No newline at end of file +color0 {{dank16.color0.default.hex}} +color1 {{dank16.color1.default.hex}} +color2 {{dank16.color2.default.hex}} +color3 {{dank16.color3.default.hex}} +color4 {{dank16.color4.default.hex}} +color5 {{dank16.color5.default.hex}} +color6 {{dank16.color6.default.hex}} +color7 {{dank16.color7.default.hex}} +color8 {{dank16.color8.default.hex}} +color9 {{dank16.color9.default.hex}} +color10 {{dank16.color10.default.hex}} +color11 {{dank16.color11.default.hex}} +color12 {{dank16.color12.default.hex}} +color13 {{dank16.color13.default.hex}} +color14 {{dank16.color14.default.hex}} +color15 {{dank16.color15.default.hex}} diff --git a/quickshell/matugen/templates/vscode-color-theme-dark.json b/quickshell/matugen/templates/vscode-color-theme-dark.json index 490681d8..a70f3826 100644 --- a/quickshell/matugen/templates/vscode-color-theme-dark.json +++ b/quickshell/matugen/templates/vscode-color-theme-dark.json @@ -1,431 +1,299 @@ { "$schema": "vscode://schemas/color-theme", - "name": "Dynamic Base16 DankShell", + "name": "Dynamic Base16 DankShell Dark", + "semanticHighlighting": true, "colors": { + // + // Core foreground + background hierarchy + // + "foreground": "{{colors.on_surface.dark.hex}}", "editor.background": "{{colors.background.dark.hex}}", "editor.foreground": "{{colors.on_surface.dark.hex}}", - "editorLineNumber.foreground": "{{colors.outline.dark.hex}}", - "editorLineNumber.activeForeground": "{{colors.on_surface.dark.hex}}", - "editorCursor.foreground": "{{colors.primary.dark.hex}}", - "editor.selectionBackground": "{{colors.primary_container.dark.hex}}", - "editor.inactiveSelectionBackground": "{{colors.background.dark.hex}}", - "editor.lineHighlightBackground": "{{colors.background.dark.hex}}", - "editorIndentGuide.background": "{{colors.background.dark.hex}}", - "editorIndentGuide.activeBackground": "{{colors.outline.dark.hex}}", - "editorWhitespace.foreground": "{{colors.outline_variant.dark.hex}}", - "editorBracketMatch.background": "{{colors.background.dark.hex}}", - "editorBracketMatch.border": "{{colors.primary.dark.hex}}", - + "errorForeground": "{{colors.error.dark.hex}}", + // + // Borders + dividers + // + "panel.border": "{{colors.outline_variant.dark.hex}}", + "panelTitle.activeBorder": "{{colors.primary.dark.hex}}", + "sideBar.border": "{{colors.outline_variant.dark.hex}}", + "editorGroup.border": "{{colors.outline_variant.dark.hex}}", + "tab.border": "{{colors.outline_variant.dark.hex}}", + "titleBar.border": "{{colors.outline_variant.dark.hex}}", + // + // Focus + active indicators + // + "focusBorder": "{{colors.primary.dark.hex}}", + "selection.background": "{{colors.primary_container.dark.hex}}66", + // + // Title bar, activity bar, sidebar + // + "titleBar.activeBackground": "{{colors.background.dark.hex}}", + "titleBar.activeForeground": "{{colors.on_surface.dark.hex}}", + "titleBar.inactiveForeground": "{{colors.outline.dark.hex}}", "activityBar.background": "{{colors.background.dark.hex}}", "activityBar.foreground": "{{colors.on_surface.dark.hex}}", + "activityBar.inactiveForeground": "{{colors.outline.dark.hex}}", "activityBar.activeBorder": "{{colors.primary.dark.hex}}", - "activityBar.activeBackground": "{{colors.background.dark.hex}}", "activityBarBadge.background": "{{colors.primary.dark.hex}}", "activityBarBadge.foreground": "{{colors.on_primary.dark.hex}}", - - "sideBar.background": "{{colors.background.dark.hex}}", + "sideBar.background": "{{colors.surface_container_low.dark.hex}}", "sideBar.foreground": "{{colors.on_surface.dark.hex}}", - "sideBar.border": "{{colors.background.dark.hex}}", + "statusBarItem.hoverBackground": "{{colors.surface_container_low.dark.hex}}", + "statusBarItem.activeBackground": "{{colors.surface_container.dark.hex}}", "sideBarTitle.foreground": "{{colors.on_surface.dark.hex}}", - "sideBarSectionHeader.background": "{{colors.background.dark.hex}}", + "panel.background": "{{colors.surface_container_low.dark.hex}}", + "panelTitle.activeForeground": "{{colors.on_surface.dark.hex}}", + "panelTitle.inactiveForeground": "{{colors.outline.dark.hex}}", + "sideBarSectionHeader.background": "{{colors.surface_container.dark.hex}}", "sideBarSectionHeader.foreground": "{{colors.on_surface.dark.hex}}", - - "list.activeSelectionBackground": "{{colors.primary_container.dark.hex}}", - "list.activeSelectionForeground": "{{colors.on_primary_container.dark.hex}}", - "list.inactiveSelectionBackground": "{{colors.surface_container.dark.hex}}", - "list.inactiveSelectionForeground": "{{colors.on_surface.dark.hex}}", - "list.hoverBackground": "{{colors.surface_container.dark.hex}}", - "list.hoverForeground": "{{colors.on_surface.dark.hex}}", - "list.focusBackground": "{{colors.surface_container_high.dark.hex}}", - "list.focusForeground": "{{colors.on_surface.dark.hex}}", - "list.highlightForeground": "{{colors.primary.dark.hex}}", - - "statusBar.background": "{{colors.background.dark.hex}}", - "statusBar.foreground": "{{colors.on_surface.dark.hex}}", - "statusBar.border": "{{colors.background.dark.hex}}", - "statusBar.noFolderBackground": "{{colors.background.dark.hex}}", - "statusBar.debuggingBackground": "{{colors.error.dark.hex}}", - "statusBar.debuggingForeground": "{{colors.on_error.dark.hex}}", - - "tab.activeBackground": "{{colors.background.dark.hex}}", + // + // Tabs + editor groups + // + "editorGroupHeader.tabsBackground": "{{colors.background.dark.hex}}", + "tab.activeBackground": "{{colors.surface_container_low.dark.hex}}", "tab.inactiveBackground": "{{colors.background.dark.hex}}", "tab.activeForeground": "{{colors.on_surface.dark.hex}}", "tab.inactiveForeground": "{{colors.outline.dark.hex}}", - "tab.border": "{{colors.background.dark.hex}}", - "tab.activeBorder": "{{colors.primary.dark.hex}}", - "tab.unfocusedActiveBorder": "{{colors.outline.dark.hex}}", - - "editorGroupHeader.tabsBackground": "{{colors.background.dark.hex}}", - "editorGroupHeader.noTabsBackground": "{{colors.background.dark.hex}}", - - "titleBar.activeBackground": "{{colors.background.dark.hex}}", - "titleBar.activeForeground": "{{colors.on_surface.dark.hex}}", - "titleBar.inactiveBackground": "{{colors.background.dark.hex}}", - "titleBar.inactiveForeground": "{{colors.outline.dark.hex}}", - "titleBar.border": "{{colors.background.dark.hex}}", - - "input.background": "{{colors.background.dark.hex}}", + "tab.activeBorderTop": "{{colors.primary.dark.hex}}", + // + // Lists (files, search results, etc.) + // + "list.activeSelectionBackground": "{{colors.primary_container.dark.hex}}", + "list.activeSelectionForeground": "{{colors.on_primary_container.dark.hex}}", + "list.inactiveSelectionBackground": "{{colors.surface_container.dark.hex}}", + "list.hoverBackground": "{{colors.surface_container.dark.hex}}", + "list.hoverForeground": "{{colors.on_surface.dark.hex}}", + "list.focusForeground": "{{colors.on_surface.dark.hex}}", + "list.focusOutline": "{{colors.primary.dark.hex}}", + "list.focusBackground": "{{colors.surface_container_high.dark.hex}}", + "list.highlightForeground": "{{colors.primary.dark.hex}}", + "list.errorForeground": "{{colors.error.dark.hex}}", + "list.warningForeground": "{{colors.secondary.dark.hex}}", + // + // Inputs + dropdowns + // + "input.background": "{{colors.surface_container_low.dark.hex}}", "input.foreground": "{{colors.on_surface.dark.hex}}", - "input.border": "{{colors.outline.dark.hex}}", + "input.border": "{{colors.outline_variant.dark.hex}}", "input.placeholderForeground": "{{colors.outline.dark.hex}}", - "inputOption.activeBorder": "{{colors.primary.dark.hex}}", - "inputValidation.errorBackground": "{{colors.error.dark.hex}}", - "inputValidation.errorBorder": "{{colors.error.dark.hex}}", - - "dropdown.background": "{{colors.background.dark.hex}}", + "dropdown.background": "{{colors.surface_container_low.dark.hex}}", "dropdown.foreground": "{{colors.on_surface.dark.hex}}", - "dropdown.border": "{{colors.outline.dark.hex}}", - - "quickInput.background": "{{colors.background.dark.hex}}", + "dropdown.border": "{{colors.outline_variant.dark.hex}}", + "quickInput.background": "{{colors.surface_container_low.dark.hex}}", "quickInput.foreground": "{{colors.on_surface.dark.hex}}", - "quickInputList.focusBackground": "{{colors.surface_container_high.dark.hex}}", - "quickInputList.focusForeground": "{{colors.on_surface.dark.hex}}", - + "widget.shadow": "{{colors.background.dark.hex}}80", + // + // Buttons + // "button.background": "{{colors.primary.dark.hex}}", "button.foreground": "{{colors.on_primary.dark.hex}}", "button.hoverBackground": "{{colors.primary_container.dark.hex}}", - - "focusBorder": "{{colors.primary.dark.hex}}", - "badge.background": "{{colors.secondary.dark.hex}}", - "badge.foreground": "{{colors.on_secondary.dark.hex}}", - - "panel.background": "{{colors.background.dark.hex}}", - "panel.border": "{{colors.primary.dark.hex}}", - "panelTitle.activeBorder": "{{colors.primary.dark.hex}}", - "panelTitle.activeForeground": "{{colors.on_surface.dark.hex}}", - "panelTitle.inactiveForeground": "{{colors.outline.dark.hex}}", - - "terminal.background": "{{colors.background.dark.hex}}", - "terminal.foreground": "{{colors.on_surface.dark.hex}}", - "terminal.ansiBlack": "{{dank16.color0.hex}}", - "terminal.ansiRed": "{{dank16.color1.hex}}", - "terminal.ansiGreen": "{{dank16.color2.hex}}", - "terminal.ansiYellow": "{{dank16.color3.hex}}", - "terminal.ansiBlue": "{{dank16.color4.hex}}", - "terminal.ansiMagenta": "{{dank16.color5.hex}}", - "terminal.ansiCyan": "{{dank16.color6.hex}}", - "terminal.ansiWhite": "{{dank16.color7.hex}}", - "terminal.ansiBrightBlack": "{{dank16.color8.hex}}", - "terminal.ansiBrightRed": "{{dank16.color9.hex}}", - "terminal.ansiBrightGreen": "{{dank16.color10.hex}}", - "terminal.ansiBrightYellow": "{{dank16.color11.hex}}", - "terminal.ansiBrightBlue": "{{dank16.color12.hex}}", - "terminal.ansiBrightMagenta": "{{dank16.color13.hex}}", - "terminal.ansiBrightCyan": "{{dank16.color14.hex}}", - "terminal.ansiBrightWhite": "{{dank16.color15.hex}}", - - "gitDecoration.modifiedResourceForeground": "{{colors.primary.dark.hex}}", - "gitDecoration.addedResourceForeground": "{{colors.primary.dark.hex}}", - "gitDecoration.stageModifiedResourceForeground": "{{colors.primary.dark.hex}}", - "gitDecoration.stageDeletedResourceForeground": "{{colors.error.dark.hex}}", - "gitDecoration.deletedResourceForeground": "{{colors.error.dark.hex}}", - "gitDecoration.untrackedResourceForeground": "{{colors.secondary.dark.hex}}", - "gitDecoration.ignoredResourceForeground": "{{colors.outline.dark.hex}}", - "gitDecoration.conflictingResourceForeground": "{{colors.error_container.dark.hex}}", - "gitDecoration.submoduleResourceForeground": "{{colors.primary.dark.hex}}", - - "editorWidget.background": "{{colors.background.dark.hex}}", - "editorWidget.border": "{{colors.outline.dark.hex}}", - "editorSuggestWidget.background": "{{colors.background.dark.hex}}", - "editorSuggestWidget.border": "{{colors.outline.dark.hex}}", - "editorSuggestWidget.selectedBackground": "{{colors.surface_container_high.dark.hex}}", - "editorSuggestWidget.highlightForeground": "{{colors.primary.dark.hex}}", - - "peekView.border": "{{colors.primary.dark.hex}}", - "peekViewEditor.background": "{{colors.background.dark.hex}}", - "peekViewResult.background": "{{colors.background.dark.hex}}", - "peekViewTitle.background": "{{colors.background.dark.hex}}", - - "notificationCenter.border": "{{colors.outline.dark.hex}}", - "notifications.background": "{{colors.background.dark.hex}}", - "notifications.border": "{{colors.outline.dark.hex}}", - + // + // Status bar + // + "statusBar.background": "{{colors.background.dark.hex}}", + "statusBar.foreground": "{{colors.on_surface.dark.hex}}", + "statusBar.border": "{{colors.outline_variant.dark.hex}}", + "statusBar.noFolderBackground": "{{colors.background.dark.hex}}", + "statusBar.noFolderForeground": "{{colors.on_surface.dark.hex}}", + "statusBar.debuggingBackground": "{{colors.error.dark.hex}}", + "statusBar.debuggingForeground": "{{colors.on_error.dark.hex}}", + // + // Notifications + // + "notificationCenterHeader.background": "{{colors.surface_container_low.dark.hex}}", + "notificationCenterHeader.foreground": "{{colors.on_surface.dark.hex}}", + "notificationCenter.border": "{{colors.outline_variant.dark.hex}}", + "notifications.background": "{{colors.surface_container_low.dark.hex}}", + "notifications.foreground": "{{colors.on_surface.dark.hex}}", + "notifications.border": "{{colors.outline_variant.dark.hex}}", + "notificationsErrorIcon.foreground": "{{colors.error.dark.hex}}", + "notificationsWarningIcon.foreground": "{{colors.secondary.dark.hex}}", + "notificationsInfoIcon.foreground": "{{colors.primary.dark.hex}}", + // + // Breadcrumbs + // + "breadcrumb.background": "{{colors.surface_container.dark.hex}}", "breadcrumb.foreground": "{{colors.outline.dark.hex}}", "breadcrumb.focusForeground": "{{colors.on_surface.dark.hex}}", "breadcrumb.activeSelectionForeground": "{{colors.primary.dark.hex}}", - + // + // Editor highlights + guides + // + "editorLineNumber.foreground": "{{colors.outline.dark.hex}}", + "editorLineNumber.activeForeground": "{{colors.primary.dark.hex}}", + "editorCursor.foreground": "{{colors.primary.dark.hex}}", + "editor.lineHighlightBackground": "{{colors.surface_container.dark.hex}}66", + "editor.wordHighlightBackground": "{{colors.secondary.dark.hex}}22", + "editor.wordHighlightStrongBackground": "{{colors.tertiary.dark.hex}}22", + "editor.selectionBackground": "{{colors.primary_container.dark.hex}}66", + "editor.inactiveSelectionBackground": "{{colors.primary_container.dark.hex}}33", + "editorWhitespace.foreground": "{{colors.outline.dark.hex}}66", + "editorIndentGuide.background1": "{{colors.outline.dark.hex}}33", + "editorIndentGuide.activeBackground1": "{{colors.primary.dark.hex}}99", + "editorOverviewRuler.border": "{{colors.outline_variant.dark.hex}}", + "editorOverviewRuler.errorForeground": "{{colors.error.dark.hex}}88", + "editorOverviewRuler.warningForeground": "{{colors.tertiary.dark.hex}}88", + "editorOverviewRuler.infoForeground": "{{colors.primary.dark.hex}}88", + "editorStickyScroll.background": "{{colors.background.dark.hex}}", + "editorStickyScrollHover.background": "{{colors.surface_container_low.dark.hex}}", + "editorBracketHighlight.unexpectedBracket.foreground": "{{colors.outline.dark.hex}}", + // + // Diff editor + // + "diffEditor.insertedTextBackground": "{{colors.secondary.dark.hex}}20", + "diffEditor.removedTextBackground": "{{colors.error.dark.hex}}20", + // + // Git + // + "gitDecoration.modifiedResourceForeground": "{{colors.primary.dark.hex}}", + "gitDecoration.addedResourceForeground": "{{colors.secondary.dark.hex}}", + "gitDecoration.deletedResourceForeground": "{{colors.error.dark.hex}}", + "gitDecoration.ignoredResourceForeground": "{{colors.outline.dark.hex}}", + // + // Peek, Hover, Widgets + // + "editorHoverWidget.background": "{{colors.surface_container_high.dark.hex}}", + "editorHoverWidget.border": "{{colors.outline.dark.hex}}", + "editorSuggestWidget.background": "{{colors.surface_container.dark.hex}}", + "editorSuggestWidget.foreground": "{{colors.on_surface.dark.hex}}", + "editorSuggestWidget.selectedBackground": "{{colors.surface_container_high.dark.hex}}", + "editorSuggestWidget.highlightForeground": "{{colors.primary.dark.hex}}", + // + // Scrollbar + // "scrollbarSlider.background": "{{colors.outline.dark.hex}}40", "scrollbarSlider.hoverBackground": "{{colors.outline.dark.hex}}60", "scrollbarSlider.activeBackground": "{{colors.outline.dark.hex}}80", - - "editorError.foreground": "{{colors.error.dark.hex}}", - "editorWarning.foreground": "{{colors.tertiary.dark.hex}}", - "editorInfo.foreground": "{{colors.primary.dark.hex}}", - - "editorGutter.addedBackground": "{{colors.secondary.dark.hex}}", - "editorGutter.modifiedBackground": "{{colors.tertiary.dark.hex}}", - "editorGutter.deletedBackground": "{{colors.error.dark.hex}}", - - "diffEditor.insertedTextBackground": "{{colors.secondary.dark.hex}}20", - "diffEditor.removedTextBackground": "{{colors.error.dark.hex}}20", - - "merge.currentHeaderBackground": "{{colors.primary.dark.hex}}40", - "merge.incomingHeaderBackground": "{{colors.secondary.dark.hex}}40", - - "menubar.selectionBackground": "{{colors.surface_container.dark.hex}}", - "menu.background": "{{colors.background.dark.hex}}", - "menu.foreground": "{{colors.on_surface.dark.hex}}", - "menu.selectionBackground": "{{colors.surface_container_high.dark.hex}}", - "menu.selectionForeground": "{{colors.on_surface.dark.hex}}", - - "debugToolBar.background": "{{colors.background.dark.hex}}", - "debugExceptionWidget.background": "{{colors.background.dark.hex}}", - "debugExceptionWidget.border": "{{colors.error.dark.hex}}" + // + // Terminal (Dank16) + // + "terminal.background": "{{colors.background.dark.hex}}", + "terminal.foreground": "{{colors.on_surface.dark.hex}}", + "terminal.ansiBlack": "{{dank16.color0.dark.hex}}", + "terminal.ansiRed": "{{dank16.color1.dark.hex}}", + "terminal.ansiGreen": "{{dank16.color2.dark.hex}}", + "terminal.ansiYellow": "{{dank16.color3.dark.hex}}", + "terminal.ansiBlue": "{{dank16.color4.dark.hex}}", + "terminal.ansiMagenta": "{{dank16.color5.dark.hex}}", + "terminal.ansiCyan": "{{dank16.color6.dark.hex}}", + "terminal.ansiWhite": "{{dank16.color7.dark.hex}}", + "terminal.ansiBrightBlack": "{{dank16.color8.dark.hex}}", + "terminal.ansiBrightRed": "{{dank16.color9.dark.hex}}", + "terminal.ansiBrightGreen": "{{dank16.color10.dark.hex}}", + "terminal.ansiBrightYellow": "{{dank16.color11.dark.hex}}", + "terminal.ansiBrightBlue": "{{dank16.color12.dark.hex}}", + "terminal.ansiBrightMagenta": "{{dank16.color13.dark.hex}}", + "terminal.ansiBrightCyan": "{{dank16.color14.dark.hex}}", + "terminal.ansiBrightWhite": "{{dank16.color15.dark.hex}}" }, - + // + // Token colors + // "tokenColors": [ { - "scope": ["variable", "meta.object-literal.key"], + "scope": [ + "comment" + ], "settings": { - "foreground": "{{colors.on_surface.dark.hex}}" + "foreground": "{{dank16.color8.dark.hex}}" } }, { - "scope": ["string", "constant.other.symbol"], + "scope": [ + "keyword" + ], "settings": { - "foreground": "{{colors.secondary.dark.hex}}" + "foreground": "{{dank16.color5.dark.hex}}" } }, { - "scope": ["constant.numeric", "constant.language", "constant.character"], + "scope": [ + "string" + ], "settings": { - "foreground": "{{colors.tertiary.dark.hex}}" + "foreground": "{{dank16.color3.dark.hex}}" } }, { - "scope": ["entity.name.type", "support.type", "entity.name.class"], + "scope": [ + "constant", + "number" + ], "settings": { - "foreground": "{{colors.tertiary.dark.hex}}" + "foreground": "{{dank16.color12.dark.hex}}" } }, { - "scope": ["entity.name.function", "support.function"], + "scope": [ + "variable" + ], "settings": { - "foreground": "{{colors.primary.dark.hex}}" + "foreground": "{{dank16.color15.dark.hex}}" } }, { - "scope": ["support.class", "support.variable", "variable.language"], + "scope": [ + "entity.name.function" + ], "settings": { - "foreground": "{{colors.secondary.dark.hex}}" + "foreground": "{{dank16.color2.dark.hex}}" } }, { - "scope": ["invalid"], + "scope": [ + "entity.name.class", + "support.type" + ], + "settings": { + "foreground": "{{dank16.color12.dark.hex}}" + } + }, + { + "scope": [ + "invalid" + ], "settings": { "foreground": "{{colors.error.dark.hex}}" } }, { - "scope": ["invalid.deprecated"], - "settings": { - "foreground": "{{colors.outline.dark.hex}}" - } - }, - { - "scope": ["markup.heading"], + "scope": [ + "markup.heading" + ], "settings": { "foreground": "{{colors.primary.dark.hex}}", "fontStyle": "bold" } - }, - { - "scope": ["markup.bold"], - "settings": { - "foreground": "{{colors.tertiary.dark.hex}}", - "fontStyle": "bold" - } - }, - { - "scope": ["markup.italic"], - "settings": { - "foreground": "{{colors.primary.dark.hex}}", - "fontStyle": "italic" - } - }, - { - "scope": ["markup.underline"], - "settings": { - "fontStyle": "underline" - } - }, - { - "scope": ["markup.quote"], - "settings": { - "foreground": "{{colors.secondary.dark.hex}}" - } - }, - { - "scope": ["markup.list"], - "settings": { - "foreground": "{{colors.on_surface.dark.hex}}" - } - }, - { - "scope": ["markup.raw", "markup.inline.raw"], - "settings": { - "foreground": "{{colors.secondary.dark.hex}}" - } - }, - { - "scope": ["comment", "punctuation.definition.comment"], - "settings": { - "foreground": "{{dank16.color8.hex}}" - } - }, - { - "scope": "keyword", - "settings": { - "foreground": "{{dank16.color5.hex}}" - } - }, - { - "scope": "storage.type", - "settings": { - "foreground": "{{dank16.color13.hex}}" - } - }, - { - "scope": "storage.modifier", - "settings": { - "foreground": "{{dank16.color5.hex}}" - } - }, - { - "scope": "variable", - "settings": { - "foreground": "{{dank16.color15.hex}}" - } - }, - { - "scope": "variable.parameter", - "settings": { - "foreground": "{{dank16.color7.hex}}" - } - }, - { - "scope": ["meta.object-literal.key", "meta.property.object", "variable.other.property"], - "settings": { - "foreground": "{{dank16.color4.hex}}" - } - }, - { - "scope": "constant.other.symbol", - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": ["constant.numeric", "constant.language"], - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": "constant.character", - "settings": { - "foreground": "{{dank16.color3.hex}}" - } - }, - { - "scope": ["entity.name.type", "entity.name.class"], - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": "support.type", - "settings": { - "foreground": "{{dank16.color13.hex}}" - } - }, - { - "scope": ["entity.name.function", "support.function"], - "settings": { - "foreground": "{{dank16.color2.hex}}" - } - }, - { - "scope": ["support.class", "support.variable"], - "settings": { - "foreground": "{{dank16.color15.hex}}" - } - }, - { - "scope": "variable.language", - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": "entity.name.tag.yaml", - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": ["string.unquoted.plain.out.yaml", "string.unquoted.yaml"], - "settings": { - "foreground": "{{dank16.color15.hex}}" - } - }, - { - "scope": "string", - "settings": { - "foreground": "{{dank16.color3.hex}}" - } } ], - - "semanticHighlighting": true, + // + // Semantic tokens + // "semanticTokenColors": { "variable": { - "foreground": "{{dank16.color15.hex}}" - }, - "variable.readonly": { - "foreground": "{{dank16.color12.hex}}" - }, - "property": { - "foreground": "{{dank16.color4.hex}}" - }, - "function": { - "foreground": "{{dank16.color2.hex}}" - }, - "method": { - "foreground": "{{dank16.color2.hex}}" - }, - "type": { - "foreground": "{{dank16.color12.hex}}" - }, - "class": { - "foreground": "{{dank16.color12.hex}}" - }, - "typeParameter": { - "foreground": "{{dank16.color13.hex}}" - }, - "enumMember": { - "foreground": "{{dank16.color12.hex}}" - }, - "string": { - "foreground": "{{dank16.color3.hex}}" - }, - "number": { - "foreground": "{{dank16.color12.hex}}" - }, - "comment": { - "foreground": "{{dank16.color8.hex}}" - }, - "keyword": { - "foreground": "{{dank16.color5.hex}}" - }, - "operator": { - "foreground": "{{dank16.color15.hex}}" + "foreground": "{{dank16.color15.dark.hex}}" }, "parameter": { - "foreground": "{{dank16.color7.hex}}" + "foreground": "{{dank16.color7.dark.hex}}" }, - "namespace": { - "foreground": "{{dank16.color15.hex}}" + "property": { + "foreground": "{{dank16.color4.dark.hex}}" + }, + "function": { + "foreground": "{{dank16.color2.dark.hex}}" + }, + "string": { + "foreground": "{{dank16.color3.dark.hex}}" + }, + "number": { + "foreground": "{{dank16.color12.dark.hex}}" + }, + "keyword": { + "foreground": "{{dank16.color5.dark.hex}}" + }, + "comment": { + "foreground": "{{dank16.color8.dark.hex}}" } } -} +} \ No newline at end of file diff --git a/quickshell/matugen/templates/vscode-color-theme-default.json b/quickshell/matugen/templates/vscode-color-theme-default.json index 267768af..11105559 100644 --- a/quickshell/matugen/templates/vscode-color-theme-default.json +++ b/quickshell/matugen/templates/vscode-color-theme-default.json @@ -1,431 +1,251 @@ { "$schema": "vscode://schemas/color-theme", "name": "Dynamic Base16 DankShell", + "semanticHighlighting": true, "colors": { + "foreground": "{{colors.on_surface.default.hex}}", "editor.background": "{{colors.background.default.hex}}", "editor.foreground": "{{colors.on_surface.default.hex}}", - "editorLineNumber.foreground": "{{colors.outline.default.hex}}", - "editorLineNumber.activeForeground": "{{colors.on_surface.default.hex}}", - "editorCursor.foreground": "{{colors.primary.default.hex}}", - "editor.selectionBackground": "{{colors.primary_container.default.hex}}", - "editor.inactiveSelectionBackground": "{{colors.background.default.hex}}", - "editor.lineHighlightBackground": "{{colors.background.default.hex}}", - "editorIndentGuide.background": "{{colors.background.default.hex}}", - "editorIndentGuide.activeBackground": "{{colors.outline.default.hex}}", - "editorWhitespace.foreground": "{{colors.outline_variant.default.hex}}", - "editorBracketMatch.background": "{{colors.background.default.hex}}", - "editorBracketMatch.border": "{{colors.primary.default.hex}}", - + "errorForeground": "{{colors.error.default.hex}}", + "panel.border": "{{colors.outline_variant.default.hex}}", + "panelTitle.activeBorder": "{{colors.primary.default.hex}}", + "sideBar.border": "{{colors.outline_variant.default.hex}}", + "editorGroup.border": "{{colors.outline_variant.default.hex}}", + "tab.border": "{{colors.outline_variant.default.hex}}", + "titleBar.border": "{{colors.outline_variant.default.hex}}", + "focusBorder": "{{colors.primary.default.hex}}", + "selection.background": "{{colors.primary_container.default.hex}}66", + "titleBar.activeBackground": "{{colors.background.default.hex}}", + "titleBar.activeForeground": "{{colors.on_surface.default.hex}}", + "titleBar.inactiveForeground": "{{colors.outline.default.hex}}", "activityBar.background": "{{colors.background.default.hex}}", "activityBar.foreground": "{{colors.on_surface.default.hex}}", + "activityBar.inactiveForeground": "{{colors.outline.default.hex}}", "activityBar.activeBorder": "{{colors.primary.default.hex}}", - "activityBar.activeBackground": "{{colors.background.default.hex}}", "activityBarBadge.background": "{{colors.primary.default.hex}}", "activityBarBadge.foreground": "{{colors.on_primary.default.hex}}", - - "sideBar.background": "{{colors.background.default.hex}}", + "sideBar.background": "{{colors.surface_container_low.default.hex}}", "sideBar.foreground": "{{colors.on_surface.default.hex}}", - "sideBar.border": "{{colors.background.default.hex}}", + "statusBarItem.hoverBackground": "{{colors.surface_container_low.default.hex}}", + "statusBarItem.activeBackground": "{{colors.surface_container.default.hex}}", "sideBarTitle.foreground": "{{colors.on_surface.default.hex}}", - "sideBarSectionHeader.background": "{{colors.background.default.hex}}", + "panel.background": "{{colors.surface_container_low.default.hex}}", + "panelTitle.activeForeground": "{{colors.on_surface.default.hex}}", + "panelTitle.inactiveForeground": "{{colors.outline.default.hex}}", + "sideBarSectionHeader.background": "{{colors.surface_container.default.hex}}", "sideBarSectionHeader.foreground": "{{colors.on_surface.default.hex}}", - - "list.activeSelectionBackground": "{{colors.primary_container.default.hex}}", - "list.activeSelectionForeground": "{{colors.on_primary_container.default.hex}}", - "list.inactiveSelectionBackground": "{{colors.surface_container.default.hex}}", - "list.inactiveSelectionForeground": "{{colors.on_surface.default.hex}}", - "list.hoverBackground": "{{colors.surface_container.default.hex}}", - "list.hoverForeground": "{{colors.on_surface.default.hex}}", - "list.focusBackground": "{{colors.surface_container_high.default.hex}}", - "list.focusForeground": "{{colors.on_surface.default.hex}}", - "list.highlightForeground": "{{colors.primary.default.hex}}", - - "statusBar.background": "{{colors.background.default.hex}}", - "statusBar.foreground": "{{colors.on_surface.default.hex}}", - "statusBar.border": "{{colors.background.default.hex}}", - "statusBar.noFolderBackground": "{{colors.background.default.hex}}", - "statusBar.debuggingBackground": "{{colors.error.default.hex}}", - "statusBar.debuggingForeground": "{{colors.on_error.default.hex}}", - - "tab.activeBackground": "{{colors.background.default.hex}}", + "editorGroupHeader.tabsBackground": "{{colors.background.default.hex}}", + "tab.activeBackground": "{{colors.surface_container_low.default.hex}}", "tab.inactiveBackground": "{{colors.background.default.hex}}", "tab.activeForeground": "{{colors.on_surface.default.hex}}", "tab.inactiveForeground": "{{colors.outline.default.hex}}", - "tab.border": "{{colors.background.default.hex}}", - "tab.activeBorder": "{{colors.primary.default.hex}}", - "tab.unfocusedActiveBorder": "{{colors.outline.default.hex}}", - - "editorGroupHeader.tabsBackground": "{{colors.background.default.hex}}", - "editorGroupHeader.noTabsBackground": "{{colors.background.default.hex}}", - - "titleBar.activeBackground": "{{colors.background.default.hex}}", - "titleBar.activeForeground": "{{colors.on_surface.default.hex}}", - "titleBar.inactiveBackground": "{{colors.background.default.hex}}", - "titleBar.inactiveForeground": "{{colors.outline.default.hex}}", - "titleBar.border": "{{colors.background.default.hex}}", - - "input.background": "{{colors.background.default.hex}}", + "tab.activeBorderTop": "{{colors.primary.default.hex}}", + "list.activeSelectionBackground": "{{colors.primary_container.default.hex}}", + "list.activeSelectionForeground": "{{colors.on_primary_container.default.hex}}", + "list.inactiveSelectionBackground": "{{colors.surface_container.default.hex}}", + "list.hoverBackground": "{{colors.surface_container.default.hex}}", + "list.hoverForeground": "{{colors.on_surface.default.hex}}", + "list.focusForeground": "{{colors.on_surface.default.hex}}", + "list.focusOutline": "{{colors.primary.default.hex}}", + "list.focusBackground": "{{colors.surface_container_high.default.hex}}", + "list.highlightForeground": "{{colors.primary.default.hex}}", + "list.errorForeground": "{{colors.error.default.hex}}", + "list.warningForeground": "{{colors.secondary.default.hex}}", + "input.background": "{{colors.surface_container_low.default.hex}}", "input.foreground": "{{colors.on_surface.default.hex}}", - "input.border": "{{colors.outline.default.hex}}", + "input.border": "{{colors.outline_variant.default.hex}}", "input.placeholderForeground": "{{colors.outline.default.hex}}", - "inputOption.activeBorder": "{{colors.primary.default.hex}}", - "inputValidation.errorBackground": "{{colors.error.default.hex}}", - "inputValidation.errorBorder": "{{colors.error.default.hex}}", - - "dropdown.background": "{{colors.background.default.hex}}", + "dropdown.background": "{{colors.surface_container_low.default.hex}}", "dropdown.foreground": "{{colors.on_surface.default.hex}}", - "dropdown.border": "{{colors.outline.default.hex}}", - - "quickInput.background": "{{colors.background.default.hex}}", + "dropdown.border": "{{colors.outline_variant.default.hex}}", + "quickInput.background": "{{colors.surface_container_low.default.hex}}", "quickInput.foreground": "{{colors.on_surface.default.hex}}", - "quickInputList.focusBackground": "{{colors.surface_container_high.default.hex}}", - "quickInputList.focusForeground": "{{colors.on_surface.default.hex}}", - + "widget.shadow": "{{colors.background.default.hex}}80", "button.background": "{{colors.primary.default.hex}}", "button.foreground": "{{colors.on_primary.default.hex}}", "button.hoverBackground": "{{colors.primary_container.default.hex}}", - - "focusBorder": "{{colors.primary.default.hex}}", - "badge.background": "{{colors.secondary.default.hex}}", - "badge.foreground": "{{colors.on_secondary.default.hex}}", - - "panel.background": "{{colors.background.default.hex}}", - "panel.border": "{{colors.primary.default.hex}}", - "panelTitle.activeBorder": "{{colors.primary.default.hex}}", - "panelTitle.activeForeground": "{{colors.on_surface.default.hex}}", - "panelTitle.inactiveForeground": "{{colors.outline.default.hex}}", - - "terminal.background": "{{colors.background.default.hex}}", - "terminal.foreground": "{{colors.on_surface.default.hex}}", - "terminal.ansiBlack": "{{dank16.color0.hex}}", - "terminal.ansiRed": "{{dank16.color1.hex}}", - "terminal.ansiGreen": "{{dank16.color2.hex}}", - "terminal.ansiYellow": "{{dank16.color3.hex}}", - "terminal.ansiBlue": "{{dank16.color4.hex}}", - "terminal.ansiMagenta": "{{dank16.color5.hex}}", - "terminal.ansiCyan": "{{dank16.color6.hex}}", - "terminal.ansiWhite": "{{dank16.color7.hex}}", - "terminal.ansiBrightBlack": "{{dank16.color8.hex}}", - "terminal.ansiBrightRed": "{{dank16.color9.hex}}", - "terminal.ansiBrightGreen": "{{dank16.color10.hex}}", - "terminal.ansiBrightYellow": "{{dank16.color11.hex}}", - "terminal.ansiBrightBlue": "{{dank16.color12.hex}}", - "terminal.ansiBrightMagenta": "{{dank16.color13.hex}}", - "terminal.ansiBrightCyan": "{{dank16.color14.hex}}", - "terminal.ansiBrightWhite": "{{dank16.color15.hex}}", - - "gitDecoration.modifiedResourceForeground": "{{colors.primary.default.hex}}", - "gitDecoration.addedResourceForeground": "{{colors.primary.default.hex}}", - "gitDecoration.stageModifiedResourceForeground": "{{colors.primary.default.hex}}", - "gitDecoration.stageDeletedResourceForeground": "{{colors.error.default.hex}}", - "gitDecoration.deletedResourceForeground": "{{colors.error.default.hex}}", - "gitDecoration.untrackedResourceForeground": "{{colors.secondary.default.hex}}", - "gitDecoration.ignoredResourceForeground": "{{colors.outline.default.hex}}", - "gitDecoration.conflictingResourceForeground": "{{colors.error_container.default.hex}}", - "gitDecoration.submoduleResourceForeground": "{{colors.primary.default.hex}}", - - "editorWidget.background": "{{colors.background.default.hex}}", - "editorWidget.border": "{{colors.outline.default.hex}}", - "editorSuggestWidget.background": "{{colors.background.default.hex}}", - "editorSuggestWidget.border": "{{colors.outline.default.hex}}", - "editorSuggestWidget.selectedBackground": "{{colors.surface_container_high.default.hex}}", - "editorSuggestWidget.highlightForeground": "{{colors.primary.default.hex}}", - - "peekView.border": "{{colors.primary.default.hex}}", - "peekViewEditor.background": "{{colors.background.default.hex}}", - "peekViewResult.background": "{{colors.background.default.hex}}", - "peekViewTitle.background": "{{colors.background.default.hex}}", - - "notificationCenter.border": "{{colors.outline.default.hex}}", - "notifications.background": "{{colors.background.default.hex}}", - "notifications.border": "{{colors.outline.default.hex}}", - + "statusBar.background": "{{colors.background.default.hex}}", + "statusBar.foreground": "{{colors.on_surface.default.hex}}", + "statusBar.border": "{{colors.outline_variant.default.hex}}", + "statusBar.noFolderBackground": "{{colors.background.default.hex}}", + "statusBar.noFolderForeground": "{{colors.on_surface.default.hex}}", + "statusBar.debuggingBackground": "{{colors.error.default.hex}}", + "statusBar.debuggingForeground": "{{colors.on_error.default.hex}}", + "notificationCenterHeader.background": "{{colors.surface_container_low.default.hex}}", + "notificationCenterHeader.foreground": "{{colors.on_surface.default.hex}}", + "notificationCenter.border": "{{colors.outline_variant.default.hex}}", + "notifications.background": "{{colors.surface_container_low.default.hex}}", + "notifications.foreground": "{{colors.on_surface.default.hex}}", + "notifications.border": "{{colors.outline_variant.default.hex}}", + "notificationsErrorIcon.foreground": "{{colors.error.default.hex}}", + "notificationsWarningIcon.foreground": "{{colors.secondary.default.hex}}", + "notificationsInfoIcon.foreground": "{{colors.primary.default.hex}}", + "breadcrumb.background": "{{colors.surface_container.default.hex}}", "breadcrumb.foreground": "{{colors.outline.default.hex}}", "breadcrumb.focusForeground": "{{colors.on_surface.default.hex}}", "breadcrumb.activeSelectionForeground": "{{colors.primary.default.hex}}", - + "editorLineNumber.foreground": "{{colors.outline.default.hex}}", + "editorLineNumber.activeForeground": "{{colors.primary.default.hex}}", + "editorCursor.foreground": "{{colors.primary.default.hex}}", + "editor.lineHighlightBackground": "{{colors.surface_container.default.hex}}66", + "editor.wordHighlightBackground": "{{colors.secondary.default.hex}}22", + "editor.wordHighlightStrongBackground": "{{colors.tertiary.default.hex}}22", + "editor.selectionBackground": "{{colors.primary_container.default.hex}}66", + "editor.inactiveSelectionBackground": "{{colors.primary_container.default.hex}}33", + "editorWhitespace.foreground": "{{colors.outline.default.hex}}66", + "editorIndentGuide.background1": "{{colors.outline.default.hex}}33", + "editorIndentGuide.activeBackground1": "{{colors.primary.default.hex}}99", + "editorOverviewRuler.border": "{{colors.outline_variant.default.hex}}", + "editorOverviewRuler.errorForeground": "{{colors.error.default.hex}}88", + "editorOverviewRuler.warningForeground": "{{colors.tertiary.default.hex}}88", + "editorOverviewRuler.infoForeground": "{{colors.primary.default.hex}}88", + "editorStickyScroll.background": "{{colors.background.default.hex}}", + "editorStickyScrollHover.background": "{{colors.surface_container_low.default.hex}}", + "editorBracketHighlight.unexpectedBracket.foreground": "{{colors.outline.default.hex}}", + "diffEditor.insertedTextBackground": "{{colors.secondary.default.hex}}20", + "diffEditor.removedTextBackground": "{{colors.error.default.hex}}20", + "gitDecoration.modifiedResourceForeground": "{{colors.primary.default.hex}}", + "gitDecoration.addedResourceForeground": "{{colors.secondary.default.hex}}", + "gitDecoration.deletedResourceForeground": "{{colors.error.default.hex}}", + "gitDecoration.ignoredResourceForeground": "{{colors.outline.default.hex}}", + "editorHoverWidget.background": "{{colors.surface_container_high.default.hex}}", + "editorHoverWidget.border": "{{colors.outline.default.hex}}", + "editorSuggestWidget.background": "{{colors.surface_container.default.hex}}", + "editorSuggestWidget.foreground": "{{colors.on_surface.default.hex}}", + "editorSuggestWidget.selectedBackground": "{{colors.surface_container_high.default.hex}}", + "editorSuggestWidget.highlightForeground": "{{colors.primary.default.hex}}", "scrollbarSlider.background": "{{colors.outline.default.hex}}40", "scrollbarSlider.hoverBackground": "{{colors.outline.default.hex}}60", "scrollbarSlider.activeBackground": "{{colors.outline.default.hex}}80", - - "editorError.foreground": "{{colors.error.default.hex}}", - "editorWarning.foreground": "{{colors.tertiary.default.hex}}", - "editorInfo.foreground": "{{colors.primary.default.hex}}", - - "editorGutter.addedBackground": "{{colors.secondary.default.hex}}", - "editorGutter.modifiedBackground": "{{colors.tertiary.default.hex}}", - "editorGutter.deletedBackground": "{{colors.error.default.hex}}", - - "diffEditor.insertedTextBackground": "{{colors.secondary.default.hex}}20", - "diffEditor.removedTextBackground": "{{colors.error.default.hex}}20", - - "merge.currentHeaderBackground": "{{colors.primary.default.hex}}40", - "merge.incomingHeaderBackground": "{{colors.secondary.default.hex}}40", - - "menubar.selectionBackground": "{{colors.surface_container.default.hex}}", - "menu.background": "{{colors.background.default.hex}}", - "menu.foreground": "{{colors.on_surface.default.hex}}", - "menu.selectionBackground": "{{colors.surface_container_high.default.hex}}", - "menu.selectionForeground": "{{colors.on_surface.default.hex}}", - - "debugToolBar.background": "{{colors.background.default.hex}}", - "debugExceptionWidget.background": "{{colors.background.default.hex}}", - "debugExceptionWidget.border": "{{colors.error.default.hex}}" + "terminal.background": "{{colors.background.default.hex}}", + "terminal.foreground": "{{colors.on_surface.default.hex}}", + "terminal.ansiBlack": "{{dank16.color0.default.hex}}", + "terminal.ansiRed": "{{dank16.color1.default.hex}}", + "terminal.ansiGreen": "{{dank16.color2.default.hex}}", + "terminal.ansiYellow": "{{dank16.color3.default.hex}}", + "terminal.ansiBlue": "{{dank16.color4.default.hex}}", + "terminal.ansiMagenta": "{{dank16.color5.default.hex}}", + "terminal.ansiCyan": "{{dank16.color6.default.hex}}", + "terminal.ansiWhite": "{{dank16.color7.default.hex}}", + "terminal.ansiBrightBlack": "{{dank16.color8.default.hex}}", + "terminal.ansiBrightRed": "{{dank16.color9.default.hex}}", + "terminal.ansiBrightGreen": "{{dank16.color10.default.hex}}", + "terminal.ansiBrightYellow": "{{dank16.color11.default.hex}}", + "terminal.ansiBrightBlue": "{{dank16.color12.default.hex}}", + "terminal.ansiBrightMagenta": "{{dank16.color13.default.hex}}", + "terminal.ansiBrightCyan": "{{dank16.color14.default.hex}}", + "terminal.ansiBrightWhite": "{{dank16.color15.default.hex}}" }, - "tokenColors": [ { - "scope": ["variable", "meta.object-literal.key"], - "settings": { - "foreground": "{{colors.on_surface.default.hex}}" - } - }, - { - "scope": ["string", "constant.other.symbol"], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "scope": ["constant.numeric", "constant.language", "constant.character"], - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "scope": ["entity.name.type", "support.type", "entity.name.class"], - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "scope": ["entity.name.function", "support.function"], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "scope": ["support.class", "support.variable", "variable.language"], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "scope": ["invalid"], - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "scope": ["invalid.deprecated"], + "scope": [ + "comment" + ], "settings": { "foreground": "{{colors.outline.default.hex}}" } }, { - "scope": ["markup.heading"], + "scope": [ + "keyword" + ], "settings": { - "foreground": "{{colors.primary.default.hex}}", - "fontStyle": "bold" + "foreground": "{{dank16.color5.default.hex}}" } }, { - "scope": ["markup.bold"], + "scope": [ + "string" + ], "settings": { - "foreground": "{{colors.tertiary.default.hex}}", - "fontStyle": "bold" + "foreground": "{{dank16.color2.default.hex}}" } }, { - "scope": ["markup.italic"], + "scope": [ + "constant", + "number" + ], "settings": { - "foreground": "{{colors.primary.default.hex}}", - "fontStyle": "italic" + "foreground": "{{dank16.color12.default.hex}}" } }, { - "scope": ["markup.underline"], - "settings": { - "fontStyle": "underline" - } - }, - { - "scope": ["markup.quote"], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "scope": ["markup.list"], + "scope": [ + "variable" + ], "settings": { "foreground": "{{colors.on_surface.default.hex}}" } }, { - "scope": ["markup.raw", "markup.inline.raw"], + "scope": [ + "entity.name.function" + ], + "settings": { + "foreground": "{{dank16.color4.default.hex}}" + } + }, + { + "scope": [ + "entity.name.class", + "support.type" + ], "settings": { "foreground": "{{colors.secondary.default.hex}}" } }, { - "scope": ["comment", "punctuation.definition.comment"], + "scope": [ + "invalid" + ], "settings": { - "foreground": "{{dank16.color8.hex}}" + "foreground": "{{colors.error.default.hex}}" } }, { - "scope": "keyword", + "scope": [ + "markup.heading" + ], "settings": { - "foreground": "{{dank16.color5.hex}}" - } - }, - { - "scope": "storage.type", - "settings": { - "foreground": "{{dank16.color13.hex}}" - } - }, - { - "scope": "storage.modifier", - "settings": { - "foreground": "{{dank16.color5.hex}}" - } - }, - { - "scope": "variable", - "settings": { - "foreground": "{{dank16.color15.hex}}" - } - }, - { - "scope": "variable.parameter", - "settings": { - "foreground": "{{dank16.color7.hex}}" - } - }, - { - "scope": ["meta.object-literal.key", "meta.property.object", "variable.other.property"], - "settings": { - "foreground": "{{dank16.color4.hex}}" - } - }, - { - "scope": "constant.other.symbol", - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": ["constant.numeric", "constant.language"], - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": "constant.character", - "settings": { - "foreground": "{{dank16.color3.hex}}" - } - }, - { - "scope": ["entity.name.type", "entity.name.class"], - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": "support.type", - "settings": { - "foreground": "{{dank16.color13.hex}}" - } - }, - { - "scope": ["entity.name.function", "support.function"], - "settings": { - "foreground": "{{dank16.color2.hex}}" - } - }, - { - "scope": ["support.class", "support.variable"], - "settings": { - "foreground": "{{dank16.color15.hex}}" - } - }, - { - "scope": "variable.language", - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": "entity.name.tag.yaml", - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": ["string.unquoted.plain.out.yaml", "string.unquoted.yaml"], - "settings": { - "foreground": "{{dank16.color15.hex}}" - } - }, - { - "scope": "string", - "settings": { - "foreground": "{{dank16.color3.hex}}" + "foreground": "{{colors.primary.default.hex}}", + "fontStyle": "bold" } } ], - - "semanticHighlighting": true, "semanticTokenColors": { "variable": { - "foreground": "{{dank16.color15.hex}}" - }, - "variable.readonly": { - "foreground": "{{dank16.color12.hex}}" - }, - "property": { - "foreground": "{{dank16.color4.hex}}" - }, - "function": { - "foreground": "{{dank16.color2.hex}}" - }, - "method": { - "foreground": "{{dank16.color2.hex}}" - }, - "type": { - "foreground": "{{dank16.color12.hex}}" - }, - "class": { - "foreground": "{{dank16.color12.hex}}" - }, - "typeParameter": { - "foreground": "{{dank16.color13.hex}}" - }, - "enumMember": { - "foreground": "{{dank16.color12.hex}}" - }, - "string": { - "foreground": "{{dank16.color3.hex}}" - }, - "number": { - "foreground": "{{dank16.color12.hex}}" - }, - "comment": { - "foreground": "{{dank16.color8.hex}}" - }, - "keyword": { - "foreground": "{{dank16.color5.hex}}" - }, - "operator": { - "foreground": "{{dank16.color15.hex}}" + "foreground": "{{colors.on_surface.default.hex}}" }, "parameter": { - "foreground": "{{dank16.color7.hex}}" + "foreground": "{{colors.on_surface.default.hex}}" }, - "namespace": { - "foreground": "{{dank16.color15.hex}}" + "property": { + "foreground": "{{dank16.color4.default.hex}}" + }, + "function": { + "foreground": "{{dank16.color4.default.hex}}" + }, + "method": { + "foreground": "{{dank16.color4.default.hex}}" + }, + "type": { + "foreground": "{{colors.secondary.default.hex}}" + }, + "class": { + "foreground": "{{colors.secondary.default.hex}}" + }, + "string": { + "foreground": "{{dank16.color2.default.hex}}" + }, + "number": { + "foreground": "{{dank16.color12.default.hex}}" + }, + "keyword": { + "foreground": "{{dank16.color5.default.hex}}" + }, + "comment": { + "foreground": "{{colors.outline.default.hex}}" } } } diff --git a/quickshell/matugen/templates/vscode-color-theme-light.json b/quickshell/matugen/templates/vscode-color-theme-light.json index d1c6c3e5..dc7ee9b9 100644 --- a/quickshell/matugen/templates/vscode-color-theme-light.json +++ b/quickshell/matugen/templates/vscode-color-theme-light.json @@ -1,35 +1,74 @@ { "$schema": "vscode://schemas/color-theme", - "name": "Dynamic Base16 DankShell", + "name": "Dynamic Base16 DankShell Light", + "semanticHighlighting": true, "colors": { + "foreground": "{{colors.on_surface.light.hex}}", + "selection.background": "{{colors.primary_container.light.hex}}66", + "errorForeground": "{{colors.error.light.hex}}", + "focusBorder": "{{colors.primary.light.hex}}", "editor.background": "{{colors.background.light.hex}}", "editor.foreground": "{{colors.on_surface.light.hex}}", "editorLineNumber.foreground": "{{colors.outline.light.hex}}", - "editorLineNumber.activeForeground": "{{colors.on_surface.light.hex}}", + "editorLineNumber.activeForeground": "{{colors.primary.light.hex}}", "editorCursor.foreground": "{{colors.primary.light.hex}}", - "editor.selectionBackground": "{{colors.primary_container.light.hex}}", - "editor.inactiveSelectionBackground": "{{colors.background.light.hex}}", - "editor.lineHighlightBackground": "{{colors.background.light.hex}}", - "editorIndentGuide.background": "{{colors.background.light.hex}}", - "editorIndentGuide.activeBackground": "{{colors.outline.light.hex}}", - "editorWhitespace.foreground": "{{colors.outline_variant.light.hex}}", - "editorBracketMatch.background": "{{colors.background.light.hex}}", + "editor.selectionBackground": "{{colors.primary_container.light.hex}}B3", + "editor.inactiveSelectionBackground": "{{colors.primary_container.light.hex}}33", + "editor.lineHighlightBackground": "{{colors.surface_container.light.hex}}66", + "editor.lineHighlightBorder": "{{colors.outline_variant.light.hex}}18", + "editor.wordHighlightBackground": "{{colors.secondary.light.hex}}22", + "editor.wordHighlightStrongBackground": "{{colors.tertiary.light.hex}}22", + "editor.findMatchBackground": "{{colors.secondary.light.hex}}33", + "editor.findMatchHighlightBackground": "{{colors.secondary.light.hex}}22", + "editor.findRangeHighlightBackground": "{{colors.surface_container.light.hex}}33", + "editorWhitespace.foreground": "{{colors.outline.light.hex}}66", + "editorIndentGuide.background1": "{{colors.outline.light.hex}}99", + "editorIndentGuide.activeBackground1": "{{colors.primary.light.hex}}CC", + "editorBracketMatch.background": "{{colors.primary_container.light.hex}}33", "editorBracketMatch.border": "{{colors.primary.light.hex}}", - + "editorGutter.addedBackground": "{{colors.secondary.light.hex}}AA", + "editorGutter.modifiedBackground": "{{colors.tertiary.light.hex}}AA", + "editorGutter.deletedBackground": "{{colors.error.light.hex}}AA", + "editorError.foreground": "{{colors.error.light.hex}}", + "editorWarning.foreground": "{{colors.tertiary.light.hex}}", + "editorInfo.foreground": "{{colors.primary.light.hex}}", + "editorOverviewRuler.border": "{{colors.outline_variant.light.hex}}", + "editorOverviewRuler.errorForeground": "{{colors.error.light.hex}}88", + "editorOverviewRuler.warningForeground": "{{colors.tertiary.light.hex}}88", + "editorOverviewRuler.infoForeground": "{{colors.primary.light.hex}}88", + "editorWidget.background": "{{colors.surface_container.light.hex}}", + "editorWidget.border": "{{colors.outline_variant.light.hex}}", + "editorHoverWidget.background": "{{colors.surface_container_high.light.hex}}", + "editorHoverWidget.border": "{{colors.outline.light.hex}}", + "editorSuggestWidget.background": "{{colors.surface_container.light.hex}}", + "editorSuggestWidget.foreground": "{{colors.on_surface.light.hex}}", + "editorSuggestWidget.border": "{{colors.outline_variant.light.hex}}", + "editorSuggestWidget.selectedBackground": "{{colors.surface_container_high.light.hex}}", + "editorSuggestWidget.highlightForeground": "{{colors.primary.light.hex}}", + "editorGroup.border": "{{colors.outline_variant.light.hex}}", + "editorGroup.dropBackground": "{{colors.primary_container.light.hex}}33", + "editorGroupHeader.tabsBackground": "{{colors.background.light.hex}}", + "editorGroupHeader.noTabsBackground": "{{colors.background.light.hex}}", + "tab.border": "{{colors.outline_variant.light.hex}}", + "tab.activeBackground": "{{colors.surface_container_high.light.hex}}", + "tab.inactiveBackground": "{{colors.surface_container.light.hex}}", + "tab.activeForeground": "{{colors.on_surface.light.hex}}", + "tab.inactiveForeground": "{{colors.outline.light.hex}}", + "tab.activeBorder": "{{colors.primary.light.hex}}", + "tab.unfocusedActiveBorder": "{{colors.outline.light.hex}}", "activityBar.background": "{{colors.background.light.hex}}", "activityBar.foreground": "{{colors.on_surface.light.hex}}", + "activityBar.inactiveForeground": "{{colors.outline.light.hex}}", "activityBar.activeBorder": "{{colors.primary.light.hex}}", "activityBar.activeBackground": "{{colors.background.light.hex}}", "activityBarBadge.background": "{{colors.primary.light.hex}}", "activityBarBadge.foreground": "{{colors.on_primary.light.hex}}", - - "sideBar.background": "{{colors.background.light.hex}}", + "sideBar.background": "{{colors.surface_container.light.hex}}", "sideBar.foreground": "{{colors.on_surface.light.hex}}", - "sideBar.border": "{{colors.background.light.hex}}", + "sideBar.border": "{{colors.outline_variant.light.hex}}", "sideBarTitle.foreground": "{{colors.on_surface.light.hex}}", - "sideBarSectionHeader.background": "{{colors.background.light.hex}}", + "sideBarSectionHeader.background": "{{colors.surface_container_low.light.hex}}", "sideBarSectionHeader.foreground": "{{colors.on_surface.light.hex}}", - "list.activeSelectionBackground": "{{colors.primary_container.light.hex}}", "list.activeSelectionForeground": "{{colors.on_primary_container.light.hex}}", "list.inactiveSelectionBackground": "{{colors.surface_container.light.hex}}", @@ -39,83 +78,64 @@ "list.focusBackground": "{{colors.surface_container_high.light.hex}}", "list.focusForeground": "{{colors.on_surface.light.hex}}", "list.highlightForeground": "{{colors.primary.light.hex}}", - - "statusBar.background": "{{colors.background.light.hex}}", + "list.errorForeground": "{{colors.error.light.hex}}", + "list.warningForeground": "{{colors.tertiary.light.hex}}", + "statusBar.background": "{{colors.surface_container.light.hex}}", "statusBar.foreground": "{{colors.on_surface.light.hex}}", - "statusBar.border": "{{colors.background.light.hex}}", - "statusBar.noFolderBackground": "{{colors.background.light.hex}}", + "statusBar.border": "{{colors.outline_variant.light.hex}}", + "statusBar.noFolderBackground": "{{colors.surface_container.light.hex}}", + "statusBar.noFolderForeground": "{{colors.on_surface.light.hex}}", "statusBar.debuggingBackground": "{{colors.error.light.hex}}", "statusBar.debuggingForeground": "{{colors.on_error.light.hex}}", - - "tab.activeBackground": "{{colors.background.light.hex}}", - "tab.inactiveBackground": "{{colors.background.light.hex}}", - "tab.activeForeground": "{{colors.on_surface.light.hex}}", - "tab.inactiveForeground": "{{colors.outline.light.hex}}", - "tab.border": "{{colors.background.light.hex}}", - "tab.activeBorder": "{{colors.primary.light.hex}}", - "tab.unfocusedActiveBorder": "{{colors.outline.light.hex}}", - - "editorGroupHeader.tabsBackground": "{{colors.background.light.hex}}", - "editorGroupHeader.noTabsBackground": "{{colors.background.light.hex}}", - "titleBar.activeBackground": "{{colors.background.light.hex}}", "titleBar.activeForeground": "{{colors.on_surface.light.hex}}", "titleBar.inactiveBackground": "{{colors.background.light.hex}}", "titleBar.inactiveForeground": "{{colors.outline.light.hex}}", - "titleBar.border": "{{colors.background.light.hex}}", - - "input.background": "{{colors.background.light.hex}}", + "titleBar.border": "{{colors.outline_variant.light.hex}}", + "input.background": "{{colors.surface_container_low.light.hex}}", "input.foreground": "{{colors.on_surface.light.hex}}", - "input.border": "{{colors.outline.light.hex}}", + "input.border": "{{colors.outline_variant.light.hex}}", "input.placeholderForeground": "{{colors.outline.light.hex}}", "inputOption.activeBorder": "{{colors.primary.light.hex}}", - "inputValidation.errorBackground": "{{colors.error.light.hex}}", + "inputValidation.errorBackground": "{{colors.error_container.light.hex}}", "inputValidation.errorBorder": "{{colors.error.light.hex}}", - - "dropdown.background": "{{colors.background.light.hex}}", + "dropdown.background": "{{colors.surface_container_low.light.hex}}", "dropdown.foreground": "{{colors.on_surface.light.hex}}", - "dropdown.border": "{{colors.outline.light.hex}}", - - "quickInput.background": "{{colors.background.light.hex}}", + "dropdown.border": "{{colors.outline_variant.light.hex}}", + "quickInput.background": "{{colors.surface_container.light.hex}}", "quickInput.foreground": "{{colors.on_surface.light.hex}}", "quickInputList.focusBackground": "{{colors.surface_container_high.light.hex}}", "quickInputList.focusForeground": "{{colors.on_surface.light.hex}}", - "button.background": "{{colors.primary.light.hex}}", "button.foreground": "{{colors.on_primary.light.hex}}", "button.hoverBackground": "{{colors.primary_container.light.hex}}", - - "focusBorder": "{{colors.primary.light.hex}}", "badge.background": "{{colors.secondary.light.hex}}", "badge.foreground": "{{colors.on_secondary.light.hex}}", - - "panel.background": "{{colors.background.light.hex}}", - "panel.border": "{{colors.primary.light.hex}}", + "panel.background": "{{colors.surface_container.light.hex}}", + "panel.border": "{{colors.outline_variant.light.hex}}", "panelTitle.activeBorder": "{{colors.primary.light.hex}}", "panelTitle.activeForeground": "{{colors.on_surface.light.hex}}", "panelTitle.inactiveForeground": "{{colors.outline.light.hex}}", - "terminal.background": "{{colors.background.light.hex}}", "terminal.foreground": "{{colors.on_surface.light.hex}}", - "terminal.ansiBlack": "{{dank16.color0.hex}}", - "terminal.ansiRed": "{{dank16.color1.hex}}", - "terminal.ansiGreen": "{{dank16.color2.hex}}", - "terminal.ansiYellow": "{{dank16.color3.hex}}", - "terminal.ansiBlue": "{{dank16.color4.hex}}", - "terminal.ansiMagenta": "{{dank16.color5.hex}}", - "terminal.ansiCyan": "{{dank16.color6.hex}}", - "terminal.ansiWhite": "{{dank16.color7.hex}}", - "terminal.ansiBrightBlack": "{{dank16.color8.hex}}", - "terminal.ansiBrightRed": "{{dank16.color9.hex}}", - "terminal.ansiBrightGreen": "{{dank16.color10.hex}}", - "terminal.ansiBrightYellow": "{{dank16.color11.hex}}", - "terminal.ansiBrightBlue": "{{dank16.color12.hex}}", - "terminal.ansiBrightMagenta": "{{dank16.color13.hex}}", - "terminal.ansiBrightCyan": "{{dank16.color14.hex}}", - "terminal.ansiBrightWhite": "{{dank16.color15.hex}}", - + "terminal.ansiBlack": "{{dank16.color0.light.hex}}", + "terminal.ansiRed": "{{dank16.color1.light.hex}}", + "terminal.ansiGreen": "{{dank16.color2.light.hex}}", + "terminal.ansiYellow": "{{dank16.color3.light.hex}}", + "terminal.ansiBlue": "{{dank16.color4.light.hex}}", + "terminal.ansiMagenta": "{{dank16.color5.light.hex}}", + "terminal.ansiCyan": "{{dank16.color6.light.hex}}", + "terminal.ansiWhite": "{{dank16.color7.light.hex}}", + "terminal.ansiBrightBlack": "{{dank16.color8.light.hex}}", + "terminal.ansiBrightRed": "{{dank16.color9.light.hex}}", + "terminal.ansiBrightGreen": "{{dank16.color10.light.hex}}", + "terminal.ansiBrightYellow": "{{dank16.color11.light.hex}}", + "terminal.ansiBrightBlue": "{{dank16.color12.light.hex}}", + "terminal.ansiBrightMagenta": "{{dank16.color13.light.hex}}", + "terminal.ansiBrightCyan": "{{dank16.color14.light.hex}}", + "terminal.ansiBrightWhite": "{{dank16.color15.light.hex}}", "gitDecoration.modifiedResourceForeground": "{{colors.primary.light.hex}}", - "gitDecoration.addedResourceForeground": "{{colors.primary.light.hex}}", + "gitDecoration.addedResourceForeground": "{{colors.secondary.light.hex}}", "gitDecoration.stageModifiedResourceForeground": "{{colors.primary.light.hex}}", "gitDecoration.stageDeletedResourceForeground": "{{colors.error.light.hex}}", "gitDecoration.deletedResourceForeground": "{{colors.error.light.hex}}", @@ -123,309 +143,276 @@ "gitDecoration.ignoredResourceForeground": "{{colors.outline.light.hex}}", "gitDecoration.conflictingResourceForeground": "{{colors.error_container.light.hex}}", "gitDecoration.submoduleResourceForeground": "{{colors.primary.light.hex}}", - - "editorWidget.background": "{{colors.background.light.hex}}", - "editorWidget.border": "{{colors.outline.light.hex}}", - "editorSuggestWidget.background": "{{colors.background.light.hex}}", - "editorSuggestWidget.border": "{{colors.outline.light.hex}}", - "editorSuggestWidget.selectedBackground": "{{colors.surface_container_high.light.hex}}", - "editorSuggestWidget.highlightForeground": "{{colors.primary.light.hex}}", - "peekView.border": "{{colors.primary.light.hex}}", - "peekViewEditor.background": "{{colors.background.light.hex}}", - "peekViewResult.background": "{{colors.background.light.hex}}", - "peekViewTitle.background": "{{colors.background.light.hex}}", - - "notificationCenter.border": "{{colors.outline.light.hex}}", - "notifications.background": "{{colors.background.light.hex}}", - "notifications.border": "{{colors.outline.light.hex}}", - + "peekViewEditor.background": "{{colors.surface_container_high.light.hex}}", + "peekViewResult.background": "{{colors.surface_container.light.hex}}", + "peekViewTitle.background": "{{colors.surface_container_low.light.hex}}", + "notificationCenter.border": "{{colors.outline_variant.light.hex}}", + "notifications.background": "{{colors.surface_container.light.hex}}", + "notifications.border": "{{colors.outline_variant.light.hex}}", + "breadcrumb.background": "{{colors.surface_container_high.light.hex}}", "breadcrumb.foreground": "{{colors.outline.light.hex}}", "breadcrumb.focusForeground": "{{colors.on_surface.light.hex}}", "breadcrumb.activeSelectionForeground": "{{colors.primary.light.hex}}", - "scrollbarSlider.background": "{{colors.outline.light.hex}}40", "scrollbarSlider.hoverBackground": "{{colors.outline.light.hex}}60", "scrollbarSlider.activeBackground": "{{colors.outline.light.hex}}80", - - "editorError.foreground": "{{colors.error.light.hex}}", - "editorWarning.foreground": "{{colors.tertiary.light.hex}}", - "editorInfo.foreground": "{{colors.primary.light.hex}}", - - "editorGutter.addedBackground": "{{colors.secondary.light.hex}}", - "editorGutter.modifiedBackground": "{{colors.tertiary.light.hex}}", - "editorGutter.deletedBackground": "{{colors.error.light.hex}}", - - "diffEditor.insertedTextBackground": "{{colors.secondary.light.hex}}20", - "diffEditor.removedTextBackground": "{{colors.error.light.hex}}20", - - "merge.currentHeaderBackground": "{{colors.primary.light.hex}}40", - "merge.incomingHeaderBackground": "{{colors.secondary.light.hex}}40", - - "menubar.selectionBackground": "{{colors.surface_container.light.hex}}", - "menu.background": "{{colors.background.light.hex}}", + "menubar.selectionBackground": "{{colors.primary_container.light.hex}}", + "menubar.selectionForeground": "{{colors.on_primary_container.light.hex}}", + "menu.background": "{{colors.surface_container.light.hex}}", "menu.foreground": "{{colors.on_surface.light.hex}}", - "menu.selectionBackground": "{{colors.surface_container_high.light.hex}}", - "menu.selectionForeground": "{{colors.on_surface.light.hex}}", - - "debugToolBar.background": "{{colors.background.light.hex}}", - "debugExceptionWidget.background": "{{colors.background.light.hex}}", + "menu.selectionBackground": "{{colors.primary_container.light.hex}}", + "menu.selectionForeground": "{{colors.on_primary_container.light.hex}}", + "debugToolBar.background": "{{colors.surface_container.light.hex}}", + "debugExceptionWidget.background": "{{colors.surface_container.light.hex}}", "debugExceptionWidget.border": "{{colors.error.light.hex}}" }, - "tokenColors": [ { - "scope": ["variable", "meta.object-literal.key"], - "settings": { - "foreground": "{{colors.on_surface.light.hex}}" - } - }, - { - "scope": ["string", "constant.other.symbol"], - "settings": { - "foreground": "{{colors.secondary.light.hex}}" - } - }, - { - "scope": ["constant.numeric", "constant.language", "constant.character"], - "settings": { - "foreground": "{{colors.tertiary.light.hex}}" - } - }, - { - "scope": ["entity.name.type", "support.type", "entity.name.class"], - "settings": { - "foreground": "{{colors.tertiary.light.hex}}" - } - }, - { - "scope": ["entity.name.function", "support.function"], - "settings": { - "foreground": "{{colors.primary.light.hex}}" - } - }, - { - "scope": ["support.class", "support.variable", "variable.language"], - "settings": { - "foreground": "{{colors.secondary.light.hex}}" - } - }, - { - "scope": ["invalid"], - "settings": { - "foreground": "{{colors.error.light.hex}}" - } - }, - { - "scope": ["invalid.deprecated"], + "name": "Comments", + "scope": [ + "comment", + "punctuation.definition.comment", + "string.comment" + ], "settings": { "foreground": "{{colors.outline.light.hex}}" } }, { - "scope": ["markup.heading"], + "name": "Keywords and storage", + "scope": [ + "keyword", + "punctuation.definition.keyword", + "storage", + "storage.type" + ], + "settings": { + "foreground": "{{dank16.color5.light.hex}}" + } + }, + { + "name": "Strings", + "scope": [ + "string", + "string punctuation.section.embedded source" + ], + "settings": { + "foreground": "{{dank16.color2.light.hex}}" + } + }, + { + "name": "Constants and numbers", + "scope": [ + "constant.numeric", + "constant.language", + "constant.other", + "constant.character" + ], + "settings": { + "foreground": "{{dank16.color0.light.hex}}" + } + }, + { + "name": "Variables (plain)", + "scope": [ + "variable", + "variable.other" + ], + "settings": { + "foreground": "{{colors.on_surface.light.hex}}" + } + }, + { + "name": "Parameters", + "scope": [ + "variable.parameter", + "variable.parameter.function" + ], + "settings": { + "foreground": "{{colors.on_surface.light.hex}}" + } + }, + { + "name": "Object properties and keys", + "scope": [ + "meta.object-literal.key", + "meta.property.object", + "variable.other.property", + "entity.name.tag.yaml" + ], + "settings": { + "foreground": "{{dank16.color4.light.hex}}" + } + }, + { + "name": "Functions", + "scope": [ + "entity.name.function", + "support.function" + ], + "settings": { + "foreground": "{{dank16.color4.light.hex}}" + } + }, + { + "name": "Types and classes", + "scope": [ + "entity.name.type", + "entity.name.class", + "support.type" + ], + "settings": { + "foreground": "{{colors.secondary.light.hex}}" + } + }, + { + "name": "Language builtins and special variables", + "scope": [ + "support.class", + "support.variable", + "variable.language", + "support.constant" + ], + "settings": { + "foreground": "{{dank16.color4.light.hex}}" + } + }, + { + "name": "Invalid", + "scope": [ + "invalid" + ], + "settings": { + "foreground": "{{colors.error.light.hex}}" + } + }, + { + "name": "Invalid deprecated", + "scope": [ + "invalid.deprecated" + ], + "settings": { + "foreground": "{{colors.outline.light.hex}}" + } + }, + { + "name": "Headings", + "scope": [ + "markup.heading", + "markup.heading entity.name" + ], "settings": { "foreground": "{{colors.primary.light.hex}}", "fontStyle": "bold" } }, { - "scope": ["markup.bold"], + "name": "Bold", + "scope": [ + "markup.bold" + ], "settings": { "foreground": "{{colors.tertiary.light.hex}}", "fontStyle": "bold" } }, { - "scope": ["markup.italic"], + "name": "Italic", + "scope": [ + "markup.italic" + ], "settings": { "foreground": "{{colors.primary.light.hex}}", "fontStyle": "italic" } }, { - "scope": ["markup.underline"], + "name": "Underline", + "scope": [ + "markup.underline" + ], "settings": { "fontStyle": "underline" } }, { - "scope": ["markup.quote"], + "name": "Quotes", + "scope": [ + "markup.quote" + ], "settings": { - "foreground": "{{colors.secondary.light.hex}}" + "foreground": "{{colors.outline.light.hex}}" } }, { - "scope": ["markup.list"], + "name": "Lists", + "scope": [ + "markup.list" + ], "settings": { "foreground": "{{colors.on_surface.light.hex}}" } }, { - "scope": ["markup.raw", "markup.inline.raw"], + "name": "Inline code in prose", + "scope": [ + "markup.raw", + "markup.inline.raw" + ], "settings": { - "foreground": "{{colors.secondary.light.hex}}" - } - }, - { - "scope": ["comment", "punctuation.definition.comment"], - "settings": { - "foreground": "{{dank16.color8.hex}}" - } - }, - { - "scope": "keyword", - "settings": { - "foreground": "{{dank16.color5.hex}}" - } - }, - { - "scope": "storage.type", - "settings": { - "foreground": "{{dank16.color13.hex}}" - } - }, - { - "scope": "storage.modifier", - "settings": { - "foreground": "{{dank16.color5.hex}}" - } - }, - { - "scope": "variable", - "settings": { - "foreground": "{{dank16.color15.hex}}" - } - }, - { - "scope": "variable.parameter", - "settings": { - "foreground": "{{dank16.color7.hex}}" - } - }, - { - "scope": ["meta.object-literal.key", "meta.property.object", "variable.other.property"], - "settings": { - "foreground": "{{dank16.color4.hex}}" - } - }, - { - "scope": "constant.other.symbol", - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": ["constant.numeric", "constant.language"], - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": "constant.character", - "settings": { - "foreground": "{{dank16.color3.hex}}" - } - }, - { - "scope": ["entity.name.type", "entity.name.class"], - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": "support.type", - "settings": { - "foreground": "{{dank16.color13.hex}}" - } - }, - { - "scope": ["entity.name.function", "support.function"], - "settings": { - "foreground": "{{dank16.color2.hex}}" - } - }, - { - "scope": ["support.class", "support.variable"], - "settings": { - "foreground": "{{dank16.color15.hex}}" - } - }, - { - "scope": "variable.language", - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": "entity.name.tag.yaml", - "settings": { - "foreground": "{{dank16.color12.hex}}" - } - }, - { - "scope": ["string.unquoted.plain.out.yaml", "string.unquoted.yaml"], - "settings": { - "foreground": "{{dank16.color15.hex}}" - } - }, - { - "scope": "string", - "settings": { - "foreground": "{{dank16.color3.hex}}" + "foreground": "{{dank16.color4.light.hex}}" } } ], - - "semanticHighlighting": true, "semanticTokenColors": { "variable": { - "foreground": "{{dank16.color15.hex}}" + "foreground": "{{colors.on_surface.light.hex}}" }, "variable.readonly": { - "foreground": "{{dank16.color12.hex}}" - }, - "property": { - "foreground": "{{dank16.color4.hex}}" - }, - "function": { - "foreground": "{{dank16.color2.hex}}" - }, - "method": { - "foreground": "{{dank16.color2.hex}}" - }, - "type": { - "foreground": "{{dank16.color12.hex}}" - }, - "class": { - "foreground": "{{dank16.color12.hex}}" - }, - "typeParameter": { - "foreground": "{{dank16.color13.hex}}" - }, - "enumMember": { - "foreground": "{{dank16.color12.hex}}" - }, - "string": { - "foreground": "{{dank16.color3.hex}}" - }, - "number": { - "foreground": "{{dank16.color12.hex}}" - }, - "comment": { - "foreground": "{{dank16.color8.hex}}" - }, - "keyword": { - "foreground": "{{dank16.color5.hex}}" - }, - "operator": { - "foreground": "{{dank16.color15.hex}}" + "foreground": "{{dank16.color1.light.hex}}" }, "parameter": { - "foreground": "{{dank16.color7.hex}}" + "foreground": "{{colors.on_surface.light.hex}}" + }, + "property": { + "foreground": "{{dank16.color4.light.hex}}" + }, + "function": { + "foreground": "{{dank16.color4.light.hex}}" + }, + "method": { + "foreground": "{{dank16.color4.light.hex}}" + }, + "type": { + "foreground": "{{colors.secondary.light.hex}}" + }, + "class": { + "foreground": "{{colors.secondary.light.hex}}" + }, + "typeParameter": { + "foreground": "{{colors.tertiary.light.hex}}" + }, + "enumMember": { + "foreground": "{{dank16.color1.light.hex}}" + }, + "string": { + "foreground": "{{dank16.color2.light.hex}}" + }, + "number": { + "foreground": "{{dank16.color1.light.hex}}" + }, + "comment": { + "foreground": "{{colors.outline.light.hex}}" + }, + "keyword": { + "foreground": "{{dank16.color5.light.hex}}" + }, + "operator": { + "foreground": "{{colors.on_surface.light.hex}}" }, "namespace": { - "foreground": "{{dank16.color15.hex}}" + "foreground": "{{colors.on_surface.light.hex}}" } } -} +} \ No newline at end of file diff --git a/quickshell/matugen/templates/vscode-color-theme.json b/quickshell/matugen/templates/vscode-color-theme.json deleted file mode 100644 index bc023753..00000000 --- a/quickshell/matugen/templates/vscode-color-theme.json +++ /dev/null @@ -1,315 +0,0 @@ -{ - "$schema": "vscode://schemas/color-theme", - "name": "Dynamic Base16 DankShell", - "colors": { - "editor.background": "{{colors.background.default.hex}}", - "editor.foreground": "{{colors.on_surface.default.hex}}", - "editorLineNumber.foreground": "{{colors.outline.default.hex}}", - "editorLineNumber.activeForeground": "{{colors.on_surface.default.hex}}", - "editorCursor.foreground": "{{colors.primary.default.hex}}", - "editor.selectionBackground": "{{colors.primary_container.default.hex}}", - "editor.inactiveSelectionBackground": "{{colors.background.default.hex}}", - "editor.lineHighlightBackground": "{{colors.background.default.hex}}", - "editorIndentGuide.background": "{{colors.background.default.hex}}", - "editorIndentGuide.activeBackground": "{{colors.outline.default.hex}}", - "editorWhitespace.foreground": "{{colors.outline_variant.default.hex}}", - "editorBracketMatch.background": "{{colors.background.default.hex}}", - "editorBracketMatch.border": "{{colors.primary.default.hex}}", - - "activityBar.background": "{{colors.background.default.hex}}", - "activityBar.foreground": "{{colors.on_surface.default.hex}}", - "activityBar.activeBorder": "{{colors.primary.default.hex}}", - "activityBar.activeBackground": "{{colors.background.default.hex}}", - "activityBarBadge.background": "{{colors.primary.default.hex}}", - "activityBarBadge.foreground": "{{colors.on_primary.default.hex}}", - - "sideBar.background": "{{colors.background.default.hex}}", - "sideBar.foreground": "{{colors.on_surface.default.hex}}", - "sideBar.border": "{{colors.background.default.hex}}", - "sideBarTitle.foreground": "{{colors.on_surface.default.hex}}", - "sideBarSectionHeader.background": "{{colors.background.default.hex}}", - "sideBarSectionHeader.foreground": "{{colors.on_surface.default.hex}}", - - "list.activeSelectionBackground": "{{colors.primary_container.default.hex}}", - "list.activeSelectionForeground": "{{colors.on_primary_container.default.hex}}", - "list.inactiveSelectionBackground": "{{colors.surface_container.default.hex}}", - "list.inactiveSelectionForeground": "{{colors.on_surface.default.hex}}", - "list.hoverBackground": "{{colors.surface_container.default.hex}}", - "list.hoverForeground": "{{colors.on_surface.default.hex}}", - "list.focusBackground": "{{colors.surface_container_high.default.hex}}", - "list.focusForeground": "{{colors.on_surface.default.hex}}", - "list.highlightForeground": "{{colors.primary.default.hex}}", - - "statusBar.background": "{{colors.background.default.hex}}", - "statusBar.foreground": "{{colors.on_surface.default.hex}}", - "statusBar.border": "{{colors.background.default.hex}}", - "statusBar.noFolderBackground": "{{colors.background.default.hex}}", - "statusBar.debuggingBackground": "{{colors.error.default.hex}}", - "statusBar.debuggingForeground": "{{colors.on_error.default.hex}}", - - "tab.activeBackground": "{{colors.background.default.hex}}", - "tab.inactiveBackground": "{{colors.background.default.hex}}", - "tab.activeForeground": "{{colors.on_surface.default.hex}}", - "tab.inactiveForeground": "{{colors.outline.default.hex}}", - "tab.border": "{{colors.background.default.hex}}", - "tab.activeBorder": "{{colors.primary.default.hex}}", - "tab.unfocusedActiveBorder": "{{colors.outline.default.hex}}", - - "editorGroupHeader.tabsBackground": "{{colors.background.default.hex}}", - "editorGroupHeader.noTabsBackground": "{{colors.background.default.hex}}", - - "titleBar.activeBackground": "{{colors.background.default.hex}}", - "titleBar.activeForeground": "{{colors.on_surface.default.hex}}", - "titleBar.inactiveBackground": "{{colors.background.default.hex}}", - "titleBar.inactiveForeground": "{{colors.outline.default.hex}}", - "titleBar.border": "{{colors.background.default.hex}}", - - "input.background": "{{colors.background.default.hex}}", - "input.foreground": "{{colors.on_surface.default.hex}}", - "input.border": "{{colors.outline.default.hex}}", - "input.placeholderForeground": "{{colors.outline.default.hex}}", - "inputOption.activeBorder": "{{colors.primary.default.hex}}", - "inputValidation.errorBackground": "{{colors.error.default.hex}}", - "inputValidation.errorBorder": "{{colors.error.default.hex}}", - - "dropdown.background": "{{colors.background.default.hex}}", - "dropdown.foreground": "{{colors.on_surface.default.hex}}", - "dropdown.border": "{{colors.outline.default.hex}}", - - "quickInput.background": "{{colors.background.default.hex}}", - "quickInput.foreground": "{{colors.on_surface.default.hex}}", - "quickInputList.focusBackground": "{{colors.surface_container_high.default.hex}}", - "quickInputList.focusForeground": "{{colors.on_surface.default.hex}}", - - "button.background": "{{colors.primary.default.hex}}", - "button.foreground": "{{colors.on_primary.default.hex}}", - "button.hoverBackground": "{{colors.primary_container.default.hex}}", - - "focusBorder": "{{colors.primary.default.hex}}", - "badge.background": "{{colors.secondary.default.hex}}", - "badge.foreground": "{{colors.on_secondary.default.hex}}", - - "panel.background": "{{colors.background.default.hex}}", - "panel.border": "{{colors.primary.default.hex}}", - "panelTitle.activeBorder": "{{colors.primary.default.hex}}", - "panelTitle.activeForeground": "{{colors.on_surface.default.hex}}", - "panelTitle.inactiveForeground": "{{colors.outline.default.hex}}", - - "terminal.background": "{{colors.background.default.hex}}", - "terminal.foreground": "{{colors.on_surface.default.hex}}", - - "gitDecoration.modifiedResourceForeground": "{{colors.primary.default.hex}}", - "gitDecoration.addedResourceForeground": "{{colors.primary.default.hex}}", - "gitDecoration.stageModifiedResourceForeground": "{{colors.primary.default.hex}}", - "gitDecoration.stageDeletedResourceForeground": "{{colors.error.default.hex}}", - "gitDecoration.deletedResourceForeground": "{{colors.error.default.hex}}", - "gitDecoration.untrackedResourceForeground": "{{colors.secondary.default.hex}}", - "gitDecoration.ignoredResourceForeground": "{{colors.outline.default.hex}}", - "gitDecoration.conflictingResourceForeground": "{{colors.error_container.default.hex}}", - "gitDecoration.submoduleResourceForeground": "{{colors.primary.default.hex}}", - - "editorWidget.background": "{{colors.background.default.hex}}", - "editorWidget.border": "{{colors.outline.default.hex}}", - "editorSuggestWidget.background": "{{colors.background.default.hex}}", - "editorSuggestWidget.border": "{{colors.outline.default.hex}}", - "editorSuggestWidget.selectedBackground": "{{colors.surface_container_high.default.hex}}", - "editorSuggestWidget.highlightForeground": "{{colors.primary.default.hex}}", - - "peekView.border": "{{colors.primary.default.hex}}", - "peekViewEditor.background": "{{colors.background.default.hex}}", - "peekViewResult.background": "{{colors.background.default.hex}}", - "peekViewTitle.background": "{{colors.background.default.hex}}", - - "notificationCenter.border": "{{colors.outline.default.hex}}", - "notifications.background": "{{colors.background.default.hex}}", - "notifications.border": "{{colors.outline.default.hex}}", - - "breadcrumb.foreground": "{{colors.outline.default.hex}}", - "breadcrumb.focusForeground": "{{colors.on_surface.default.hex}}", - "breadcrumb.activeSelectionForeground": "{{colors.primary.default.hex}}", - - "scrollbarSlider.background": "{{colors.outline.default.hex}}40", - "scrollbarSlider.hoverBackground": "{{colors.outline.default.hex}}60", - "scrollbarSlider.activeBackground": "{{colors.outline.default.hex}}80", - - "editorError.foreground": "{{colors.error.default.hex}}", - "editorWarning.foreground": "{{colors.tertiary.default.hex}}", - "editorInfo.foreground": "{{colors.primary.default.hex}}", - - "editorGutter.addedBackground": "{{colors.secondary.default.hex}}", - "editorGutter.modifiedBackground": "{{colors.tertiary.default.hex}}", - "editorGutter.deletedBackground": "{{colors.error.default.hex}}", - - "diffEditor.insertedTextBackground": "{{colors.secondary.default.hex}}20", - "diffEditor.removedTextBackground": "{{colors.error.default.hex}}20", - - "merge.currentHeaderBackground": "{{colors.primary.default.hex}}40", - "merge.incomingHeaderBackground": "{{colors.secondary.default.hex}}40", - - "menubar.selectionBackground": "{{colors.surface_container.default.hex}}", - "menu.background": "{{colors.background.default.hex}}", - "menu.foreground": "{{colors.on_surface.default.hex}}", - "menu.selectionBackground": "{{colors.surface_container_high.default.hex}}", - "menu.selectionForeground": "{{colors.on_surface.default.hex}}", - - "debugToolBar.background": "{{colors.background.default.hex}}", - "debugExceptionWidget.background": "{{colors.background.default.hex}}", - "debugExceptionWidget.border": "{{colors.error.default.hex}}" - }, - - "tokenColors": [ - { - "scope": ["comment", "punctuation.definition.comment"], - "settings": { - "foreground": "{{colors.outline.default.hex}}", - "fontStyle": "italic" - } - }, - { - "scope": ["keyword", "storage.type", "storage.modifier"], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "scope": ["variable", "meta.object-literal.key"], - "settings": { - "foreground": "{{colors.on_surface.default.hex}}" - } - }, - { - "scope": ["string", "constant.other.symbol"], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "scope": ["constant.numeric", "constant.language", "constant.character"], - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "scope": ["entity.name.type", "support.type", "entity.name.class"], - "settings": { - "foreground": "{{colors.tertiary.default.hex}}" - } - }, - { - "scope": ["entity.name.function", "support.function"], - "settings": { - "foreground": "{{colors.primary.default.hex}}" - } - }, - { - "scope": ["support.class", "support.variable", "variable.language"], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "scope": ["invalid"], - "settings": { - "foreground": "{{colors.error.default.hex}}" - } - }, - { - "scope": ["invalid.deprecated"], - "settings": { - "foreground": "{{colors.outline.default.hex}}" - } - }, - { - "scope": ["markup.heading"], - "settings": { - "foreground": "{{colors.primary.default.hex}}", - "fontStyle": "bold" - } - }, - { - "scope": ["markup.bold"], - "settings": { - "foreground": "{{colors.tertiary.default.hex}}", - "fontStyle": "bold" - } - }, - { - "scope": ["markup.italic"], - "settings": { - "foreground": "{{colors.primary.default.hex}}", - "fontStyle": "italic" - } - }, - { - "scope": ["markup.underline"], - "settings": { - "fontStyle": "underline" - } - }, - { - "scope": ["markup.quote"], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - }, - { - "scope": ["markup.list"], - "settings": { - "foreground": "{{colors.on_surface.default.hex}}" - } - }, - { - "scope": ["markup.raw", "markup.inline.raw"], - "settings": { - "foreground": "{{colors.secondary.default.hex}}" - } - } - ], - - "semanticHighlighting": true, - "semanticTokenColors": { - "variable.readonly": { - "foreground": "{{colors.tertiary.default.hex}}" - }, - "property": { - "foreground": "{{colors.on_surface.default.hex}}" - }, - "function": { - "foreground": "{{colors.primary.default.hex}}" - }, - "method": { - "foreground": "{{colors.primary.default.hex}}" - }, - "type": { - "foreground": "{{colors.tertiary.default.hex}}" - }, - "class": { - "foreground": "{{colors.tertiary.default.hex}}" - }, - "enumMember": { - "foreground": "{{colors.tertiary.default.hex}}" - }, - "string": { - "foreground": "{{colors.secondary.default.hex}}" - }, - "number": { - "foreground": "{{colors.tertiary.default.hex}}" - }, - "comment": { - "foreground": "{{colors.outline.default.hex}}", - "fontStyle": "italic" - }, - "keyword": { - "foreground": "{{colors.primary.default.hex}}" - }, - "operator": { - "foreground": "{{colors.on_surface.default.hex}}" - }, - "parameter": { - "foreground": "{{colors.on_surface.default.hex}}" - }, - "namespace": { - "foreground": "{{colors.secondary.default.hex}}" - } - } -} diff --git a/quickshell/matugen/templates/wezterm.toml b/quickshell/matugen/templates/wezterm.toml index 88f47af6..1b7d8b35 100644 --- a/quickshell/matugen/templates/wezterm.toml +++ b/quickshell/matugen/templates/wezterm.toml @@ -9,5 +9,5 @@ cursor_border = '{{colors.primary.default.hex}}' selection_bg = '{{colors.primary_container.default.hex}}' selection_fg = '{{colors.on_surface.default.hex}}' -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.hex}}', '{{dank16.color9.hex}}', '{{dank16.color10.hex}}', '{{dank16.color11.hex}}', '{{dank16.color12.hex}}', '{{dank16.color13.hex}}', '{{dank16.color14.hex}}', '{{dank16.color15.hex}}'] +ansi = ['{{dank16.color0.default.hex}}', '{{dank16.color1.default.hex}}', '{{dank16.color2.default.hex}}', '{{dank16.color3.default.hex}}', '{{dank16.color4.default.hex}}', '{{dank16.color5.default.hex}}', '{{dank16.color6.default.hex}}', '{{dank16.color7.default.hex}}'] +brights = ['{{dank16.color8.default.hex}}', '{{dank16.color9.default.hex}}', '{{dank16.color10.default.hex}}', '{{dank16.color11.default.hex}}', '{{dank16.color12.default.hex}}', '{{dank16.color13.default.hex}}', '{{dank16.color14.default.hex}}', '{{dank16.color15.default.hex}}'] diff --git a/quickshell/scripts/matugen-worker.sh b/quickshell/scripts/matugen-worker.sh index 78b434a7..0bba9731 100755 --- a/quickshell/scripts/matugen-worker.sh +++ b/quickshell/scripts/matugen-worker.sh @@ -61,7 +61,7 @@ compute_key() { local mtype=$(read_json_field "$json" "matugenType") local run_user=$(read_json_bool "$json" "runUserTemplates") local stock_colors=$(read_json_escaped_field "$json" "stockColors") - echo "${kind}|${value}|${mode}|${icon:-default}|${mtype:-scheme-tonal-spot}|${run_user:-true}|${stock_colors:-}" | sha256sum | cut -d' ' -f1 + echo "${kind}|${value}|${mode}|${icon:-default}|${mtype:-scheme-tonal-spot}|${run_user:-true}|${stock_colors:-}|${TERMINALS_ALWAYS_DARK:-false}" | sha256sum | cut -d' ' -f1 } append_config() { @@ -73,6 +73,33 @@ append_config() { echo "" >> "$cfg_file" } +append_terminal_config() { + local check_cmd="$1" file_name="$2" cfg_file="$3" tmp_dir="$4" + local config_file="$SHELL_DIR/matugen/configs/$file_name" + [[ ! -f "$config_file" ]] && return + [[ "$check_cmd" != "skip" ]] && ! command -v "$check_cmd" >/dev/null 2>&1 && return + + if [[ "$TERMINALS_ALWAYS_DARK" == "true" ]]; then + local config_content + config_content=$(cat "$config_file") + local templates + templates=$(echo "$config_content" | grep "input_path.*SHELL_DIR/matugen/templates/" | sed "s/.*'SHELL_DIR\/matugen\/templates\/\([^']*\)'.*/\1/") + for tpl in $templates; do + local orig="$SHELL_DIR/matugen/templates/$tpl" + [[ ! -f "$orig" ]] && continue + local tmp_template="$tmp_dir/$tpl" + sed 's/\.default\./\.dark\./g' "$orig" > "$tmp_template" + config_content=$(echo "$config_content" | sed "s|'SHELL_DIR/matugen/templates/$tpl'|'$tmp_template'|g") + done + echo "$config_content" | sed "s|'SHELL_DIR/|'$SHELL_DIR/|g" >> "$cfg_file" + echo "" >> "$cfg_file" + return + fi + + sed "s|'SHELL_DIR/|'$SHELL_DIR/|g" "$config_file" >> "$cfg_file" + echo "" >> "$cfg_file" +} + append_vscode_config() { local name="$1" ext_dir="$2" cfg_file="$3" [[ ! -d "$ext_dir" ]] && return @@ -95,7 +122,7 @@ EOF } build_merged_config() { - local mode="$1" run_user="$2" cfg_file="$3" + local mode="$1" run_user="$2" cfg_file="$3" tmp_dir="$4" if [[ "$run_user" == "true" && -f "$CONFIG_DIR/matugen/config.toml" ]]; then awk '/^\[config\]/{p=1} /^\[templates\]/{p=0} p' "$CONFIG_DIR/matugen/config.toml" >> "$cfg_file" @@ -122,11 +149,11 @@ EOF append_config "firefox" "firefox.toml" "$cfg_file" append_config "pywalfox" "pywalfox.toml" "$cfg_file" append_config "vesktop" "vesktop.toml" "$cfg_file" - append_config "ghostty" "ghostty.toml" "$cfg_file" - append_config "kitty" "kitty.toml" "$cfg_file" - append_config "foot" "foot.toml" "$cfg_file" - append_config "alacritty" "alacritty.toml" "$cfg_file" - append_config "wezterm" "wezterm.toml" "$cfg_file" + append_terminal_config "ghostty" "ghostty.toml" "$cfg_file" "$tmp_dir" + append_terminal_config "kitty" "kitty.toml" "$cfg_file" "$tmp_dir" + append_terminal_config "foot" "foot.toml" "$cfg_file" "$tmp_dir" + append_terminal_config "alacritty" "alacritty.toml" "$cfg_file" "$tmp_dir" + append_terminal_config "wezterm" "wezterm.toml" "$cfg_file" "$tmp_dir" append_config "dgop" "dgop.toml" "$cfg_file" append_vscode_config "vscode" "$HOME/.vscode/extensions/local.dynamic-base16-dankshell-0.0.1" "$cfg_file" @@ -149,10 +176,10 @@ EOF fi } -generate_dank16() { - local primary="$1" surface="$2" light_flag="$3" - local args=("$primary" --json) - [[ -n "$light_flag" ]] && args+=("$light_flag") +generate_dank16_variants() { + local primary_dark="$1" primary_light="$2" surface="$3" mode="$4" + local args=(--variants --primary-dark "$primary_dark" --primary-light "$primary_light") + [[ "$mode" == "light" ]] && args+=(--light) [[ -n "$surface" ]] && args+=(--background "$surface") dms dank16 "${args[@]}" 2>/dev/null || echo '{}' } @@ -212,33 +239,28 @@ build_once() { [[ -z "$run_user" ]] && run_user="true" local TMP_CFG=$(mktemp) - trap "rm -f '$TMP_CFG'" RETURN + local TMP_DIR=$(mktemp -d) + trap "rm -f '$TMP_CFG'; rm -rf '$TMP_DIR'" RETURN - build_merged_config "$mode" "$run_user" "$TMP_CFG" + build_merged_config "$mode" "$run_user" "$TMP_CFG" "$TMP_DIR" - local light_flag="" - [[ "$mode" == "light" ]] && light_flag="--light" - - local primary surface dank16_dark dank16_light import_args=() + local primary_dark primary_light surface dank16 import_args=() if [[ -n "$stock_colors" ]]; then log "Using stock/custom theme colors with matugen base" - primary=$(echo "$stock_colors" | sed -n 's/.*"primary"[^{]*{[^}]*"dark"[^{]*{[^}]*"color"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' | head -1) + primary_dark=$(echo "$stock_colors" | sed -n 's/.*"primary"[^{]*{[^}]*"dark"[^{]*{[^}]*"color"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' | head -1) + primary_light=$(echo "$stock_colors" | sed -n 's/.*"primary"[^{]*{[^}]*"light"[^{]*{[^}]*"color"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' | head -1) surface=$(echo "$stock_colors" | sed -n 's/.*"surface"[^{]*{[^}]*"dark"[^{]*{[^}]*"color"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' | head -1) - [[ -z "$primary" ]] && { err "Failed to extract primary from stock colors"; return 1; } + [[ -z "$primary_dark" ]] && { err "Failed to extract primary dark from stock colors"; return 1; } + [[ -z "$primary_light" ]] && primary_light="$primary_dark" - dank16_dark=$(generate_dank16 "$primary" "$surface" "") - dank16_light=$(generate_dank16 "$primary" "$surface" "--light") + dank16=$(generate_dank16_variants "$primary_dark" "$primary_light" "$surface" "$mode") - local dank16_current - [[ "$mode" == "light" ]] && dank16_current="$dank16_light" || dank16_current="$dank16_dark" - [[ "$TERMINALS_ALWAYS_DARK" == "true" && "$mode" == "light" ]] && dank16_current="$dank16_dark" - - import_args+=(--import-json-string "{\"colors\": $stock_colors, \"dank16\": $dank16_current}") + import_args+=(--import-json-string "{\"colors\": $stock_colors, \"dank16\": $dank16}") log "Running matugen color hex with stock color overrides" - if ! matugen color hex "$primary" -m "$mode" -t "${mtype:-scheme-tonal-spot}" -c "$TMP_CFG" "${import_args[@]}"; then + if ! matugen color hex "$primary_dark" -m "$mode" -t "${mtype:-scheme-tonal-spot}" -c "$TMP_CFG" "${import_args[@]}"; then err "matugen failed" return 1 fi @@ -253,19 +275,16 @@ build_once() { mat_json=$("${matugen_cmd[@]}" -m dark -t "$mtype" --json hex --dry-run 2>/dev/null | tr -d '\n') [[ -z "$mat_json" ]] && { err "matugen dry-run failed"; return 1; } - primary=$(echo "$mat_json" | sed -n 's/.*"primary"[[:space:]]*:[[:space:]]*{[^}]*"dark"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p') + primary_dark=$(echo "$mat_json" | sed -n 's/.*"primary"[[:space:]]*:[[:space:]]*{[^}]*"dark"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p') + primary_light=$(echo "$mat_json" | sed -n 's/.*"primary"[[:space:]]*:[[:space:]]*{[^}]*"light"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p') surface=$(echo "$mat_json" | sed -n 's/.*"surface"[[:space:]]*:[[:space:]]*{[^}]*"dark"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p') - [[ -z "$primary" ]] && { err "Failed to extract primary color"; return 1; } + [[ -z "$primary_dark" ]] && { err "Failed to extract primary color"; return 1; } + [[ -z "$primary_light" ]] && primary_light="$primary_dark" - dank16_dark=$(generate_dank16 "$primary" "$surface" "") - dank16_light=$(generate_dank16 "$primary" "$surface" "--light") + dank16=$(generate_dank16_variants "$primary_dark" "$primary_light" "$surface" "$mode") - local dank16_current - [[ "$mode" == "light" ]] && dank16_current="$dank16_light" || dank16_current="$dank16_dark" - [[ "$TERMINALS_ALWAYS_DARK" == "true" && "$mode" == "light" ]] && dank16_current="$dank16_dark" - - import_args+=(--import-json-string "{\"dank16\": $dank16_current}") + import_args+=(--import-json-string "{\"dank16\": $dank16}") log "Running matugen $kind with dank16 injection" if ! "${matugen_cmd[@]}" -m "$mode" -t "$mtype" -c "$TMP_CFG" "${import_args[@]}"; then