├── .devcontainer ├── Dockerfile └── devcontainer.json ├── .editorconfig ├── .github └── workflows │ └── main.yml ├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── assets ├── .gitkeep ├── frappe.png ├── frappe_flat.png ├── latte.png ├── latte_flat.png ├── macchiato.png ├── macchiato_flat.png ├── mocha.png ├── mocha_amoled.png ├── mocha_amoled_flat.png ├── mocha_flat.png ├── preview.webp └── preview_flat.webp ├── base_settings.json ├── build.ts ├── changelogs ├── 0.2.0-ctpv2-alpha.1.md ├── 0.2.0-ctpv2-alpha.2.md ├── 0.2.0-ctpv2-alpha.3.md ├── 0.2.0-ctpv2-alpha.4.md ├── 1.0.0-ctpv2-alpha.1.md ├── 1.0.0-ctpv2-alpha.2.md └── 1.0.0-ctpv2.md ├── generate_uuid.ts ├── gray0_ctp_on_line_background.svg └── uuid_map.json /.devcontainer/Dockerfile: -------------------------------------------------------------------------------- 1 | # [Choice] Debian OS version: bullseye, buster 2 | ARG VARIANT=bullseye 3 | FROM --platform=linux/amd64 mcr.microsoft.com/devcontainers/base:0-${VARIANT} 4 | 5 | ENV DENO_INSTALL=/deno 6 | RUN mkdir -p /deno \ 7 | && curl -fsSL https://deno.land/x/install/install.sh | sh \ 8 | && chown -R vscode /deno 9 | 10 | ENV PATH=${DENO_INSTALL}/bin:${PATH} \ 11 | DENO_DIR=${DENO_INSTALL}/.cache/deno 12 | 13 | # [Optional] Uncomment this section to install additional OS packages. 14 | RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ 15 | && apt-get -y install --no-install-recommends imagemagick librsvg2-bin 16 | -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Deno", 3 | "build": { 4 | "dockerfile": "Dockerfile" 5 | }, 6 | 7 | // Configure tool-specific properties. 8 | "customizations": { 9 | // Configure properties specific to VS Code. 10 | "vscode": { 11 | // Set *default* container specific settings.json values on container create. 12 | "settings": { 13 | // Enables the project as a Deno project 14 | "deno.enable": true, 15 | // Enables Deno linting for the project 16 | "deno.lint": true, 17 | // Sets Deno as the default formatter for the project 18 | "editor.defaultFormatter": "denoland.vscode-deno" 19 | }, 20 | 21 | // Add the IDs of extensions you want installed when the container is created. 22 | "extensions": [ 23 | "denoland.vscode-deno", 24 | "EditorConfig.EditorConfig" 25 | ] 26 | } 27 | }, 28 | 29 | "remoteUser": "vscode" 30 | } -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # EditorConfig is awesome: https://EditorConfig.org 4 | 5 | root = true 6 | 7 | [*] 8 | charset = utf-8 9 | indent_size = 2 10 | indent_style = space 11 | end_of_line = lf 12 | insert_final_newline = true 13 | trim_trailing_whitespace = true 14 | 15 | # go 16 | [*.go] 17 | indent_style = tab 18 | indent_size = 4 19 | 20 | # python 21 | [*.{ini,py,py.tpl,rst}] 22 | indent_size = 4 23 | 24 | # rust 25 | [*.rs] 26 | indent_size = 4 27 | 28 | # documentation, utils 29 | [*.{md,mdx,diff}] 30 | trim_trailing_whitespace = false 31 | 32 | # windows shell scripts 33 | [*.{cmd,bat,ps1}] 34 | end_of_line = crlf 35 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Main 2 | on: push 3 | jobs: 4 | build: 5 | runs-on: ubuntu-latest 6 | steps: 7 | - name: Checkout 8 | uses: actions/checkout@v3 9 | - uses: denoland/setup-deno@v1 10 | with: 11 | deno-version: vx.x.x 12 | - name: Setup 13 | run: | 14 | sudo apt-get update && export DEBIAN_FRONTEND=noninteractive \ 15 | && sudo apt-get -y install --no-install-recommends imagemagick 16 | - name: Build 17 | run: make 18 | - name: Release 19 | uses: softprops/action-gh-release@v1 20 | if: startsWith(github.ref, 'refs/tags/') 21 | with: 22 | draft: true 23 | files: dist/*.zip 24 | body_path: changelogs/${{ github.ref_name }}.md 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /dist 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Catppuccin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all build clean 2 | 3 | all: build 4 | 5 | build: clean 6 | deno run --allow-env --allow-net --allow-read --allow-run --allow-write ./build.ts 7 | 8 | clean: 9 | rm -rf ./dist 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
15 |
16 |
168 |
169 |
172 | Copyright © 2021-present Catppuccin Org 173 |
174 | 175 | 178 | -------------------------------------------------------------------------------- /assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/.gitkeep -------------------------------------------------------------------------------- /assets/frappe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/frappe.png -------------------------------------------------------------------------------- /assets/frappe_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/frappe_flat.png -------------------------------------------------------------------------------- /assets/latte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/latte.png -------------------------------------------------------------------------------- /assets/latte_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/latte_flat.png -------------------------------------------------------------------------------- /assets/macchiato.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/macchiato.png -------------------------------------------------------------------------------- /assets/macchiato_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/macchiato_flat.png -------------------------------------------------------------------------------- /assets/mocha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/mocha.png -------------------------------------------------------------------------------- /assets/mocha_amoled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/mocha_amoled.png -------------------------------------------------------------------------------- /assets/mocha_amoled_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/mocha_amoled_flat.png -------------------------------------------------------------------------------- /assets/mocha_flat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/mocha_flat.png -------------------------------------------------------------------------------- /assets/preview.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/preview.webp -------------------------------------------------------------------------------- /assets/preview_flat.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catppuccin/vivaldi/9cd03d3d64dacec0d64df0e72cc6b45103f99ff2/assets/preview_flat.webp -------------------------------------------------------------------------------- /base_settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "accentFromPage": false, 3 | "accentOnWindow": true, 4 | "accentSaturationLimit": 1, 5 | "alpha": 0.92, 6 | "backgroundImage": "background.jpg", 7 | "backgroundPosition": "stretch", 8 | "blur": 5, 9 | "colorAccentBg": "#ef3939", 10 | "colorBg": "#f6f6f6", 11 | "colorFg": "#222222", 12 | "colorHighlightBg": "#4c70f0", 13 | "colorWindowBg": "#EDEEF2", 14 | "contrast": 0, 15 | "dimBlurred": false, 16 | "engineVersion": 1, 17 | "id": "2d6f7ece-823c-4796-987a-692458e99088", 18 | "name": "Vivaldi", 19 | "preferSystemAccent": false, 20 | "radius": 4, 21 | "simpleScrollbar": false, 22 | "transparencyTabBar": false, 23 | "transparencyTabs": false, 24 | "url": "", 25 | "version": 1 26 | } 27 | -------------------------------------------------------------------------------- /build.ts: -------------------------------------------------------------------------------- 1 | // @ts-ignore-next-line: import-a-as-b check doesn't work 2 | import { variants as flavors } from 'npm:@catppuccin/palette' 3 | import $ from 'https://deno.land/x/dax@0.19.0/mod.ts' 4 | import base from './base_settings.json' assert { type: 'json' } 5 | import uuidMap from './uuid_map.json' assert { type: 'json' } 6 | 7 | const FILENAME_BASE = 'Catppuccin' 8 | const BACKGROUND_BASE = 'gray0_ctp_on_line_background.svg' 9 | 10 | const OUT_DIR = './dist' 11 | const WORK_DIR = `${OUT_DIR}/work` 12 | 13 | const AMOLED_FLAVOR = { 14 | base: { hex: '#000000' }, 15 | } 16 | 17 | function capitalizeFirstLetter(s: string) { 18 | return s[0].toUpperCase() + s.slice(1) 19 | } 20 | 21 | Deno.mkdir(OUT_DIR, { recursive: true }) 22 | Deno.mkdir(WORK_DIR, { recursive: true }) 23 | 24 | // Default variant build 25 | for (const [flavor, labels] of Object.entries(uuidMap.default)) { 26 | const flavorName = capitalizeFirstLetter(flavor) 27 | 28 | // @ts-ignore-next-line: Deno import-from-npm feature with types doesn't work 29 | const colors = flavors[flavor] 30 | 31 | for (const [label, uuid] of Object.entries(labels)) { 32 | const color = label 33 | const colorName = capitalizeFirstLetter(color) 34 | 35 | const colorAccentBg = colors[label].hex.toUpperCase() 36 | const colorBg = colors.base.hex.toUpperCase() 37 | const colorFg = colors.text.hex.toUpperCase() 38 | const colorHighlightBg = colors[label].hex.toUpperCase() 39 | const colorWindowBg = colors.mantle.hex.toUpperCase() 40 | 41 | const id = uuid 42 | const name = `${FILENAME_BASE} ${flavorName} ${colorName}` 43 | 44 | const out = { 45 | ...base, 46 | colorAccentBg, 47 | colorBg, 48 | colorFg, 49 | colorHighlightBg, 50 | colorWindowBg, 51 | id, 52 | name, 53 | } 54 | 55 | const encoder = new TextEncoder() 56 | const data = encoder.encode(`${JSON.stringify(out, null, 3)}\n`) 57 | 58 | const workdir = `${WORK_DIR}/${name}` 59 | await Deno.mkdir(workdir, { recursive: true }) 60 | 61 | const workfile = `${workdir}/settings.json` 62 | await Deno.writeFile(workfile, data) 63 | 64 | // Build background.jpg 65 | const svgName = `${flavor}_${label}_ctp_on_line_background.svg` 66 | const backgroundSvg = `${WORK_DIR}/${svgName}` 67 | await $`cp ${BACKGROUND_BASE} ${backgroundSvg}` 68 | await $`sed -i 's/sodipodi:docname="gray0_ctp_on_line_background.svg"/sodipodi:docname="${svgName}"/' ${backgroundSvg}` 69 | await $`sed -i 's/fill:#ffffff;/fill:${colorWindowBg};/' ${backgroundSvg}` 70 | await $`sed -i 's/stroke:#6e6c7e;/stroke:${colorAccentBg};/' ${backgroundSvg}` 71 | await $`sed -i 's/fill:#2f2c3e/fill:${colorAccentBg}/' ${backgroundSvg}` 72 | const backgroundJpg = `${workdir}/background.jpg` 73 | await $`convert ${backgroundSvg} ${backgroundJpg}` 74 | 75 | const outfile = `../../${name}.zip` 76 | await Deno.run({ cmd: ['zip', outfile, 'background.jpg', 'settings.json'], cwd: workdir }) 77 | 78 | console.log(`Saved to ${outfile}`) 79 | } 80 | } 81 | 82 | // Flat variant build 83 | for (const [flavor, labels] of Object.entries(uuidMap.flat)) { 84 | const flavorName = capitalizeFirstLetter(flavor) 85 | 86 | // @ts-ignore-next-line: Deno import-from-npm feature with types doesn't work 87 | const colors = flavors[flavor] 88 | 89 | for (const [label, uuid] of Object.entries(labels)) { 90 | const color = label 91 | const colorName = capitalizeFirstLetter(color) 92 | 93 | const colorAccentBg = colors[label].hex.toUpperCase() 94 | const colorBg = colors.base.hex.toUpperCase() 95 | const colorFg = colors.text.hex.toUpperCase() 96 | const colorHighlightBg = colors[label].hex.toUpperCase() 97 | const colorWindowBg = colors.base.hex.toUpperCase() 98 | 99 | const id = uuid 100 | const name = `${FILENAME_BASE} ${flavorName} ${colorName} Flat` 101 | 102 | const out = { 103 | ...base, 104 | colorAccentBg, 105 | colorBg, 106 | colorFg, 107 | colorHighlightBg, 108 | colorWindowBg, 109 | id, 110 | name, 111 | } 112 | 113 | const encoder = new TextEncoder() 114 | const data = encoder.encode(`${JSON.stringify(out, null, 3)}\n`) 115 | 116 | const workdir = `${WORK_DIR}/${name}` 117 | await Deno.mkdir(workdir, { recursive: true }) 118 | 119 | const workfile = `${workdir}/settings.json` 120 | await Deno.writeFile(workfile, data) 121 | 122 | // Build background.jpg 123 | const backgroundSvg = `${WORK_DIR}/${flavor}_${label}_flat_ctp_on_line_background.svg` 124 | await $`cp ${BACKGROUND_BASE} ${backgroundSvg}` 125 | await $`sed -i 's/fill:#ffffff;/fill:${colorWindowBg};/' ${backgroundSvg}` 126 | await $`sed -i 's/stroke:#6e6c7e;/stroke:${colorAccentBg};/' ${backgroundSvg}` 127 | await $`sed -i 's/fill:#2f2c3e/fill:${colorAccentBg}/' ${backgroundSvg}` 128 | const backgroundJpg = `${workdir}/background.jpg` 129 | await $`convert ${backgroundSvg} ${backgroundJpg}` 130 | 131 | const outfile = `../../${name}.zip` 132 | await Deno.run({ cmd: ['zip', outfile, 'background.jpg', 'settings.json'], cwd: workdir }) 133 | 134 | console.log(`Saved to ${outfile}`) 135 | } 136 | } 137 | 138 | // OLEDppuccin variant build 139 | for (const [flavor, labels] of Object.entries(uuidMap.amoled)) { 140 | const flavorName = capitalizeFirstLetter(flavor) 141 | 142 | // @ts-ignore-next-line: Deno import-from-npm feature with types doesn't work 143 | const colors = { ...flavors[flavor], ...AMOLED_FLAVOR } 144 | 145 | for (const [label, uuid] of Object.entries(labels)) { 146 | const color = label 147 | const colorName = capitalizeFirstLetter(color) 148 | 149 | const colorAccentBg = colors[label].hex.toUpperCase() 150 | const colorBg = colors.base.hex.toUpperCase() 151 | const colorFg = colors.text.hex.toUpperCase() 152 | const colorHighlightBg = colors[label].hex.toUpperCase() 153 | const colorWindowBg = colors.mantle.hex.toUpperCase() 154 | 155 | const id = uuid 156 | const name = `${FILENAME_BASE} ${flavorName} ${colorName} Amoled` 157 | 158 | const out = { 159 | ...base, 160 | colorAccentBg, 161 | colorBg, 162 | colorFg, 163 | colorHighlightBg, 164 | colorWindowBg, 165 | id, 166 | name, 167 | } 168 | 169 | const encoder = new TextEncoder() 170 | const data = encoder.encode(`${JSON.stringify(out, null, 3)}\n`) 171 | 172 | const workdir = `${WORK_DIR}/${name}` 173 | await Deno.mkdir(workdir, { recursive: true }) 174 | 175 | const workfile = `${workdir}/settings.json` 176 | await Deno.writeFile(workfile, data) 177 | 178 | // Build background.jpg 179 | const backgroundSvg = `${WORK_DIR}/${flavor}_${label}_amoled_ctp_on_line_background.svg` 180 | await $`cp ${BACKGROUND_BASE} ${backgroundSvg}` 181 | await $`sed -i 's/fill:#ffffff;/fill:${colorWindowBg};/' ${backgroundSvg}` 182 | await $`sed -i 's/stroke:#6e6c7e;/stroke:${colorAccentBg};/' ${backgroundSvg}` 183 | await $`sed -i 's/fill:#2f2c3e/fill:${colorAccentBg}/' ${backgroundSvg}` 184 | const backgroundJpg = `${workdir}/background.jpg` 185 | await $`convert ${backgroundSvg} ${backgroundJpg}` 186 | 187 | const outfile = `../../${name}.zip` 188 | await Deno.run({ cmd: ['zip', outfile, 'background.jpg', 'settings.json'], cwd: workdir }) 189 | 190 | console.log(`Saved to ${outfile}`) 191 | } 192 | } 193 | 194 | // OLEDppuccin flat variant build 195 | for (const [flavor, labels] of Object.entries(uuidMap.amoledFlat)) { 196 | const flavorName = capitalizeFirstLetter(flavor) 197 | 198 | // @ts-ignore-next-line: Deno import-from-npm feature with types doesn't work 199 | const colors = { ...flavors[flavor], ...AMOLED_FLAVOR } 200 | 201 | for (const [label, uuid] of Object.entries(labels)) { 202 | const color = label 203 | const colorName = capitalizeFirstLetter(color) 204 | 205 | const colorAccentBg = colors[label].hex.toUpperCase() 206 | const colorBg = colors.base.hex.toUpperCase() 207 | const colorFg = colors.text.hex.toUpperCase() 208 | const colorHighlightBg = colors[label].hex.toUpperCase() 209 | const colorWindowBg = colors.base.hex.toUpperCase() 210 | 211 | const id = uuid 212 | const name = `${FILENAME_BASE} ${flavorName} ${colorName} Amoled Flat` 213 | 214 | const out = { 215 | ...base, 216 | colorAccentBg, 217 | colorBg, 218 | colorFg, 219 | colorHighlightBg, 220 | colorWindowBg, 221 | id, 222 | name, 223 | } 224 | 225 | const encoder = new TextEncoder() 226 | const data = encoder.encode(`${JSON.stringify(out, null, 3)}\n`) 227 | 228 | const workdir = `${WORK_DIR}/${name}` 229 | await Deno.mkdir(workdir, { recursive: true }) 230 | 231 | const workfile = `${workdir}/settings.json` 232 | await Deno.writeFile(workfile, data) 233 | 234 | // Build background.jpg 235 | const backgroundSvg = `${WORK_DIR}/${flavor}_${label}_amoled_flat_ctp_on_line_background.svg` 236 | await $`cp ${BACKGROUND_BASE} ${backgroundSvg}` 237 | await $`sed -i 's/fill:#ffffff;/fill:${colorWindowBg};/' ${backgroundSvg}` 238 | await $`sed -i 's/stroke:#6e6c7e;/stroke:${colorAccentBg};/' ${backgroundSvg}` 239 | await $`sed -i 's/fill:#2f2c3e/fill:${colorAccentBg}/' ${backgroundSvg}` 240 | const backgroundJpg = `${workdir}/background.jpg` 241 | await $`convert ${backgroundSvg} ${backgroundJpg}` 242 | 243 | const outfile = `../../${name}.zip` 244 | await Deno.run({ cmd: ['zip', outfile, 'background.jpg', 'settings.json'], cwd: workdir }) 245 | 246 | console.log(`Saved to ${outfile}`) 247 | } 248 | } 249 | -------------------------------------------------------------------------------- /changelogs/0.2.0-ctpv2-alpha.1.md: -------------------------------------------------------------------------------- 1 | ## Overview 2 | This release is a test release via GitHub Actions. 3 | 4 | ## Notable Changes 5 | ### Added 6 | - Add a workflow file. 7 | -------------------------------------------------------------------------------- /changelogs/0.2.0-ctpv2-alpha.2.md: -------------------------------------------------------------------------------- 1 | ## Overview 2 | This release adds 2 variants: Flat, OLEDppuccin 3 | 4 | ## Notable Changes 5 | ### Added 6 | - Add flat and OLEDppuccin variants. 7 | 8 | ### Changed 9 | - Change location to include changelogs. 10 | - Refactor build script. 11 | - Update README.md. 12 | -------------------------------------------------------------------------------- /changelogs/0.2.0-ctpv2-alpha.3.md: -------------------------------------------------------------------------------- 1 | ## Overview 2 | This release renames a variant name from OLEDppuccin to amoled. 3 | 4 | ## Notable Changes 5 | ### Changed 6 | - Rename a variant name from OLEDppuccin to amoled. 7 | - Update amoled flavour colors. 8 | - Update flat flavour colors. 9 | -------------------------------------------------------------------------------- /changelogs/0.2.0-ctpv2-alpha.4.md: -------------------------------------------------------------------------------- 1 | ## Overview 2 | This release adds a new colour rosewater. 3 | 4 | ## Notable Changes 5 | ### Added 6 | - Add a new colour rosewater. 7 | -------------------------------------------------------------------------------- /changelogs/1.0.0-ctpv2-alpha.1.md: -------------------------------------------------------------------------------- 1 | ## Overview 2 | This release changes some colour assignments. 3 | 4 | ## Notable Changes 5 | ### Changed 6 | - Make accent colour same as window colour. 7 | - Change window background colour from crust to mantle. 8 | - Enable accent on window in all themes. 9 | -------------------------------------------------------------------------------- /changelogs/1.0.0-ctpv2-alpha.2.md: -------------------------------------------------------------------------------- 1 | ## Overview 2 | This release adds background image. 3 | 4 | ## Notable Changes 5 | ### Added 6 | - Add background image. 7 | -------------------------------------------------------------------------------- /changelogs/1.0.0-ctpv2.md: -------------------------------------------------------------------------------- 1 | ## Overview 2 | This is the first stable release. 3 | Enjoy! 😃🎉 4 |  5 | 6 | ## Notable Changes 7 | ### Fixed 8 | - Fix several bugs in `build.ts`. 9 | - Fix `.devcontainer/Dockerfile`. 10 | -------------------------------------------------------------------------------- /generate_uuid.ts: -------------------------------------------------------------------------------- 1 | const uuid = crypto.randomUUID() 2 | console.log(uuid) 3 | -------------------------------------------------------------------------------- /gray0_ctp_on_line_background.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 92 | -------------------------------------------------------------------------------- /uuid_map.json: -------------------------------------------------------------------------------- 1 | { 2 | "default": { 3 | "latte": { 4 | "rosewater": "2ba5d1cd-5f55-43a8-af87-2b76c4419f5b", 5 | "flamingo": "fdfc2acf-baed-423c-9169-cb13075bf878", 6 | "pink": "a2e62ed1-06a3-42b1-b6c3-38bfa00c9418", 7 | "mauve": "970583f6-5845-4c83-a731-4dc7ae33dc12", 8 | "red": "4d31d4d7-3cd4-455c-ad90-378f84ddcfe6", 9 | "maroon": "dee45cdf-cf3d-451d-a5b7-ffe43726f818", 10 | "peach": "93c555e2-3427-4b3c-a9ec-b2f93c46b955", 11 | "yellow": "c05f186c-a758-4f3b-80cd-f23c6f4c9455", 12 | "green": "8e63ab4b-9413-4da4-b30b-af5f257e9691", 13 | "teal": "1c91c4e5-fa6d-48c9-9cd8-155d16575a44", 14 | "sky": "3ab4ed47-06b4-4bd6-81cb-8f23301f22c0", 15 | "sapphire": "0fc2d787-4325-470d-b4bb-0f07b02dfd00", 16 | "blue": "cae63a3c-1f0a-4fc5-9a08-9e7bbb6f1c5d", 17 | "lavender": "9224a224-1f0f-4691-88da-9fc734de51ef" 18 | }, 19 | "frappe": { 20 | "rosewater": "20f2e6c8-8804-4066-8029-9cd6800708a9", 21 | "flamingo": "416d3c79-65ac-438f-8ebc-3aa4d5892812", 22 | "pink": "8c5015e8-b86a-4854-9881-719a4c426a16", 23 | "mauve": "94e7ae8a-b3f4-41f7-b661-d41cf90c2cde", 24 | "red": "7e50c3ce-9061-444d-9a75-8ebcfacd40e3", 25 | "maroon": "68ade9de-a97b-4f07-8b74-b34607ee92c4", 26 | "peach": "94839893-2a9f-469f-9cb3-47e2662f8ec2", 27 | "yellow": "44258b1a-6fad-473f-b10b-5b3e5cc7663e", 28 | "green": "abca0530-c8b2-4afc-9d1f-ef15ec024b1d", 29 | "teal": "2d47cdbb-1733-4b0c-b878-e022549648da", 30 | "sky": "42bf7f38-64d8-4d51-8e12-5531133b4082", 31 | "sapphire": "905d14e6-22f8-411b-9e1f-f238a2981284", 32 | "blue": "e832eb79-445c-4408-971e-967600c2d8e3", 33 | "lavender": "97b41429-787b-44c3-be79-e90093d4ccb4" 34 | }, 35 | "macchiato": { 36 | "rosewater": "c00b67e7-5e07-468b-b5d6-2eefd54f2be9", 37 | "flamingo": "1bd7191f-f04b-48ae-b38c-6d0fd2f415ee", 38 | "pink": "734349c1-4f4c-4390-9a85-e769a8123061", 39 | "mauve": "48f990e8-c328-4da8-8a84-b88907f8fdbc", 40 | "red": "496a1bc5-d0bf-41eb-8356-8868c3a9211c", 41 | "maroon": "0a34138d-9f2f-4cde-952c-9b5501c78f9e", 42 | "peach": "0cc5572c-9ff2-4e55-b6a9-b4376a52ddeb", 43 | "yellow": "bcb43159-a94a-46e0-bda4-81a212ecd17c", 44 | "green": "0907b759-54da-45d8-afae-55be191ce5e2", 45 | "teal": "1db9f74a-c577-417d-881c-9440f2a07b35", 46 | "sky": "87e15444-0d5b-4aed-a221-dce02f06b6f5", 47 | "sapphire": "4beddd59-4acf-4e9d-89f9-88935bed2534", 48 | "blue": "bc387109-3778-42a7-9ada-6cc7e71a775e", 49 | "lavender": "5688b2e3-aac3-411b-a6c3-37c788965ad9" 50 | }, 51 | "mocha": { 52 | "rosewater": "ca75b20c-6bfb-4c1c-9a30-f446f7c8d56c", 53 | "flamingo": "2f06f429-fb93-42f6-81d6-59b6ef95bca9", 54 | "pink": "fea476db-5dd2-4c41-a773-e53df08cf194", 55 | "mauve": "bc5eb187-13fd-493d-b1a2-372817b04a67", 56 | "red": "b4990849-09fc-42ae-9d3c-c6b7923ecab4", 57 | "maroon": "821665bb-7f51-47f0-af4b-664466905c8e", 58 | "peach": "bab8a05c-39af-43dd-9edc-01fd0dce3eb9", 59 | "yellow": "58c9325f-6afd-42cd-be15-3773ea994f08", 60 | "green": "2a556b9a-a570-4a1f-8bd4-9adb33a60a7b", 61 | "teal": "d57dc887-b3b5-4279-90c1-311c4c6e3d8b", 62 | "sky": "304d6b35-cee9-4362-927c-0d36b8f9d982", 63 | "sapphire": "6a762b78-98e8-4087-af23-c51c1c92a0e2", 64 | "blue": "994de9f0-2b5b-46c0-bf42-fbc39c7a0226", 65 | "lavender": "e109156c-896a-481e-88bd-08d951528faf" 66 | } 67 | }, 68 | "flat": { 69 | "latte": { 70 | "rosewater": "502898b6-d0ec-4afa-a62a-ee60b2776f54", 71 | "flamingo": "b3163633-2b46-412a-8a4f-73509481cd95", 72 | "pink": "b52f7a80-5184-4b03-8693-fe80e1a9f8a1", 73 | "mauve": "942750b8-370a-47f9-b567-73f2ad01e9ca", 74 | "red": "f0095eb1-8e04-483c-9a89-515ca68ae3f7", 75 | "maroon": "59254cc2-9fe0-4ffb-b264-9c141428a0cd", 76 | "peach": "995a9c24-0594-487c-8694-4f57e01c7ad5", 77 | "yellow": "df7a1901-bb8d-48b0-b663-88da21392930", 78 | "green": "31409aa3-8329-45de-8dd1-4a8bae65acfe", 79 | "teal": "2b762a05-6765-4d40-8142-52e2dd7889cd", 80 | "sky": "1b2e327f-3a5e-45b1-b945-d1f5ade636ba", 81 | "sapphire": "95ffa5e4-3170-4b03-ae61-d4da26b1c667", 82 | "blue": "5f4f432f-6b8b-4abe-b979-05bdba7890d0", 83 | "lavender": "0d80088c-98e4-4e07-8da0-39ec978dd315" 84 | }, 85 | "frappe": { 86 | "rosewater": "5fe90cfb-bd1a-45cd-b093-7e515496a24b", 87 | "flamingo": "dc469e78-b294-4de9-8169-2daf75b27535", 88 | "pink": "5c6d3b9c-adb7-4211-a07a-c22e05f07b71", 89 | "mauve": "83ad33c0-a7b2-41e9-8145-4985a50ae191", 90 | "red": "a897cbac-098d-4158-9745-43342b424f8f", 91 | "maroon": "c4853503-8112-4bdf-bce5-e26c886723d8", 92 | "peach": "29f88e73-49ca-434a-921b-27513d04336e", 93 | "yellow": "48c63263-9eed-40da-a6e3-c8bb75b219e2", 94 | "green": "cca3eb42-498e-40a2-8659-62d9a7903d28", 95 | "teal": "590bfdf4-80fe-47ec-8180-9db970ce98ad", 96 | "sky": "7d167da9-79de-4d6d-9516-cd2ea6e1cc22", 97 | "sapphire": "363ae222-8368-4787-830d-5b6fb230395a", 98 | "blue": "77c60192-2031-44a6-b325-f4c33ff3846f", 99 | "lavender": "1ca0f052-e1dd-406b-ae43-218ed425ab63" 100 | }, 101 | "macchiato": { 102 | "rosewater": "9ea7e8e3-5843-4909-bec2-1fc255286dac", 103 | "flamingo": "cee0788d-16ec-4a15-86cd-597b10d1e04e", 104 | "pink": "87246544-bf43-4ba2-869d-793696d5d131", 105 | "mauve": "5a9f7d34-9424-46ff-b158-9d80306dfff9", 106 | "red": "a65faeda-c7b2-45f7-a036-18e35a8a82d7", 107 | "maroon": "e115067e-6403-48fc-ab20-60da050a1847", 108 | "peach": "f6daf3d7-0861-4d98-a576-92021d21fb31", 109 | "yellow": "bb54c00c-7840-4665-b090-f08342330175", 110 | "green": "f26d10c6-00c1-49f4-be78-f8ee09978c6f", 111 | "teal": "08da432f-2f02-4cbc-99f8-8a6daf8e087e", 112 | "sky": "317f8206-619c-47b3-87e4-ce8ef73e3b52", 113 | "sapphire": "c3137c42-6d94-446f-8fb2-f3dbc5c27c7a", 114 | "blue": "f42bee33-5368-483b-8d75-22868d29058d", 115 | "lavender": "bb20a484-c2c7-4d14-b694-f9bbdc16af33" 116 | }, 117 | "mocha": { 118 | "rosewater": "d1d02908-43fe-4e0b-8191-deebf0c41ac0", 119 | "flamingo": "3c9f518d-be44-4ecb-ab22-73d7c407aca8", 120 | "pink": "9ea0cbb8-b860-487a-9335-cfa42397695f", 121 | "mauve": "30c45eb9-5e19-4329-b7dd-cd55a06a6f98", 122 | "red": "697b03fc-3e41-409e-9c7b-16935bd3fc57", 123 | "maroon": "07ff5b0b-396f-4de2-abf4-bd5638541156", 124 | "peach": "005ad8d7-f874-46ec-893d-948c2fbf5bcc", 125 | "yellow": "22c88577-af9d-41fe-a028-c0a7d2a24324", 126 | "green": "693dce5b-3058-4bf9-9cb5-2404ad64e384", 127 | "teal": "ca1760c9-86bb-461d-9e3b-03089739d9c1", 128 | "sky": "444471b5-ec27-4920-be17-d8cd90091c0c", 129 | "sapphire": "6b0e2cc0-9758-49b2-8673-f08f836edffa", 130 | "blue": "11f79846-313f-47dd-af62-1766ba15dd63", 131 | "lavender": "9d1fb3a6-e349-4062-ab68-be8e8b10c32c" 132 | } 133 | }, 134 | "amoled": { 135 | "mocha": { 136 | "rosewater": "14c8e7e7-4fcd-4030-8a1d-623f38dabdae", 137 | "flamingo": "1755382c-cfb6-4c4b-8c7b-6ce0621455ed", 138 | "pink": "8b944a9b-04aa-4bb1-8313-ef92c8f22735", 139 | "mauve": "80b451d5-8bea-4922-8cb6-cc697b87084c", 140 | "red": "52b6e764-7dfe-4d9c-a382-adb079798147", 141 | "maroon": "9b31ded3-1658-41f2-b5ad-fd96722c424f", 142 | "peach": "ff5f59ec-180f-48c8-92a1-6b21ab863adf", 143 | "yellow": "ad720fd5-9699-4888-b0e5-256a567a2ced", 144 | "green": "fb46a58d-d263-4a20-854e-5743c2d1495a", 145 | "teal": "3294ef9a-885e-4228-bed6-7ea5f0157a4b", 146 | "sky": "69e79e89-47a1-4cca-9e3c-6e48ad3415c6", 147 | "sapphire": "2bbee3ce-8a67-40fc-81be-a7f3f4a31c12", 148 | "blue": "dfe8fac8-9aba-4e76-baf5-ec5445c82be5", 149 | "lavender": "57a6e1a8-265c-467e-9994-7c115b2a3dbd" 150 | } 151 | }, 152 | "amoledFlat": { 153 | "mocha": { 154 | "rosewater": "6841851b-e670-4e1c-ad62-4528e48fb460", 155 | "flamingo": "0c8ef50e-6471-4774-9ccd-df57fd74e3f9", 156 | "pink": "2298f951-611c-43c4-a014-dc9bef70edd5", 157 | "mauve": "a01fbd44-12b4-4424-9632-d95c25d27bab", 158 | "red": "229e47d1-8905-4868-8229-7c8101b9b133", 159 | "maroon": "de78a670-21f9-4f6c-b505-b212efa3c301", 160 | "peach": "7f2a2e25-02bc-43f8-908f-6c663786aeae", 161 | "yellow": "6d152f2b-015d-47ad-8afb-617896c9f904", 162 | "green": "18ed3e81-07c2-4b29-8b19-583c61fa8c07", 163 | "teal": "5f7711b3-73e9-4ca2-9cd3-3f4e1837a229", 164 | "sky": "d4ffbf27-4d7c-421a-b1a3-003722faa664", 165 | "sapphire": "b2db8e04-e8f8-4e4a-afca-e19ec51d1eb2", 166 | "blue": "7915f95e-320c-4674-86b1-6d4d07c18e9f", 167 | "lavender": "972ec896-697d-4856-9ad0-30ec859dfc86" 168 | } 169 | } 170 | } 171 | --------------------------------------------------------------------------------