import Color from 'color'; import { source } from 'common-tags'; import { colorSetToVariants } from '../color-set/index.js'; import type { Template } from './index.js'; function formatColor(hex: string) { const [r, g, b] = Color(hex) .rgb() .array() .map((n) => n.toString(16)); return [g, b, r, '00'].join(''); } const template: Template = { name: 'ConEmu', render: async function* (colorSet) { const variants = colorSetToVariants(colorSet); for (const variant of variants) { const shade0 = formatColor(variant.colors.shade0); const shade1 = formatColor(variant.colors.shade1); const shade6 = formatColor(variant.colors.shade6); const shade7 = formatColor(variant.colors.shade7); const accent0 = formatColor(variant.colors.accent0); const accent1 = formatColor(variant.colors.accent1); const accent2 = formatColor(variant.colors.accent2); const accent3 = formatColor(variant.colors.accent3); const accent4 = formatColor(variant.colors.accent4); const accent5 = formatColor(variant.colors.accent5); const accent6 = formatColor(variant.colors.accent6); const accent7 = formatColor(variant.colors.accent7); yield { path: `${variant.title.kebab}.xml`, content: source` `, }; } }, renderInstructions: (paths) => source` 1. Open the ConEmu settings and navigate to Features > Colors. Take note of the location of \`ConEmu.xml\` for later. 2. Create a new color scheme by typing a name in the "Schemes" field and clicking Save. 3. Close ConEmu. 4. Open \`ConEmu.xml\` and locate the color scheme name you typed in step 2. 5. Replace the \`\` elements \`ColorTable00\` through \`ColorTable31\` with the contents of your themer-generated XML (${paths .map((p) => `\`${p}\``) .join( ' or ', )}). Be sure to leave the others, like \`ExtendColors\`, etc. intact. 6. Open ConEmu and select your theme again in settings. `, }; export default template;