{ lib, config, ... }: let theme = config.theme.colors; in { xdg.configFile."caelestia/scheme.json".text = lib.generators.toJSON {} { name = theme.name; flavour = ""; mode = "dark"; variant = ""; colours = { primary_paletteKeyColor = theme.primary; secondary_paletteKeyColor = theme.secondary; tertiary_paletteKeyColor = theme.tertiary; neutral_paletteKeyColor = theme.overlay; neutral_variant_paletteKeyColor = "777680"; background = theme.base; onBackground = theme.text; surface = theme.surface; surfaceDim = theme.base; surfaceBright = theme.overlay; surfaceContainerLowest = theme.base; surfaceContainerLow = theme.base; surfaceContainer = theme.base; surfaceContainerHigh = theme.surface; surfaceContainerHighest = theme.overlay; onSurface = theme.text; surfaceVariant = theme.text; onSurfaceVariant = theme.subtext; inverseSurface = theme.text; inverseOnSurface = theme.surface; outline = theme.primary; outlineVariant = theme.primary; shadow = "000000"; scrim = "000000"; surfaceTint = theme.primary; primary = theme.primary; onPrimary = theme.surface; primaryContainer = theme.primary; onPrimaryContainer = theme.surface; inversePrimary = theme.surface; secondary = theme.secondary; onSecondary = theme.surface; secondaryContainer = theme.secondary; onSecondaryContainer = theme.surface; tertiary = theme.tertiary; onTertiary = theme.surface; tertiaryContainer = theme.tertiary; onTertiaryContainer = theme.surface; error = theme.error; onError = theme.text; errorContainer = theme.error; onErrorContainer = theme.text; primaryFixed = theme.primary; primaryFixedDim = theme.primary; onPrimaryFixed = theme.primary; onPrimaryFixedVariant = theme.primary; secondaryFixed = theme.secondary; secondaryFixedDim = theme.primary; onSecondaryFixed = theme.secondary; onSecondaryFixedVariant = theme.secondary; tertiaryFixed = theme.tertiary; tertiaryFixedDim = theme.tertiary; onTertiaryFixed = theme.tertiary; onTertiaryFixedVariant = theme.tertiary; term0 = theme.normal.black; term1 = theme.normal.red; term2 = theme.normal.green; term3 = theme.normal.yellow; term4 = theme.normal.blue; term5 = theme.normal.magenta; term6 = theme.normal.cyan; term7 = theme.normal.white; term8 = theme.bright.black; term9 = theme.bright.red; term10 = theme.bright.green; term11 = theme.bright.yellow; term12 = theme.bright.blue; term13 = theme.bright.magenta; term14 = theme.bright.cyan; term15 = theme.bright.white; }; }; }