Compare commits

...

18 Commits

Author SHA1 Message Date
nullishamy
8b54c05ff5 fix: titlebars should be mantle not crust (#238) 2024-05-27 15:09:24 +01:00
nullishamy
03fd2c9b7e fix: xfwm4 assets (#240) 2024-05-27 15:09:02 +01:00
nullishamy
8b459944c4 fix: add build suffix (#241) 2024-05-27 15:04:27 +01:00
nullishamy
124944fc5b docs: architecture docs (#242) 2024-05-27 14:16:28 +01:00
nullishamy
641f692dd8 chore: update install script to rc5 (#233) 2024-05-24 21:30:16 +01:00
nullishamy
a36e8a3b91 fix: allow all accents to be used (#232) 2024-05-24 21:19:52 +01:00
nullishamy
327d02c0ec ci: exit with non zero exit code when a build fails (#231) 2024-05-24 20:04:15 +01:00
Isabel
495589d9f8 fix: patches (#229) 2024-05-24 19:54:48 +01:00
nullishamy
455dd7b403 chore: update install script to rc4 (#227) 2024-05-24 16:20:29 +01:00
Isabel
b40c355ba3 fix(patches): allow to work on windows (#226) 2024-05-24 16:14:30 +01:00
nullishamy
001ba5bf12 feat: reintroduce black tweak as OLED-esque variant (#213) 2024-05-24 16:10:06 +01:00
nullishamy
1c336f20ad chore: issue template (#222) 2024-05-24 15:36:01 +01:00
Omar
14cee4c1f5 docs: flatpak guide (#221)
Co-authored-by: Isabel <isabel@isabelroses.com>
2024-05-24 13:28:08 +01:00
nullishamy
febd32f208 docs: upstreaming procedure (#219)
* docs: upstreaming procedure

* docs: math

Co-authored-by: Isabel <isabel@isabelroses.com>

---------

Co-authored-by: Isabel <isabel@isabelroses.com>
2024-05-22 01:31:17 +01:00
nullishamy
663f6c61f8 fix: installation (#210) 2024-05-21 14:22:56 +01:00
nullishamy
b2f3d267e4 docs: add new build reqs in (#208) 2024-05-21 14:22:33 +01:00
nullishamy
e72416ae5e docs: add resources to contributing guide (#211) 2024-05-21 14:22:05 +01:00
nullishamy
87a5f92f4b chore: update install script to rc3 (#207) 2024-05-20 23:14:54 +01:00
13 changed files with 419 additions and 164 deletions

View File

@@ -25,18 +25,24 @@ body:
attributes:
label: How did you install the theme?
options:
- GitHub Release
- AUR Package
- catppuccin/nix
- Nixpkgs
- Flatpak
- From source (Python script)
- From release (install.py)
- From release (manual installation)
- From source (build.py)
- Nix (nixpkgs / catppuccin/nix)
- AUR package
validations:
required: true
- type: checkboxes
attributes:
label: Are you running the latest release, and if not does the issue persist there?
description: "Our latest release can be found under the [GitHub releases](https://github.com/catppuccin/gtk/releases/latest)"
options:
- label: I am running on the latest release & the issue persists there
required: true
- type: checkboxes
attributes:
label: If using GTK4, have you symlinked the "gtk-4.0" folder?
description: "The instructions for symlinking are described in the [README](https://github.com/catppuccin/gtk/tree/877e75568c9bb0d57c7ddda85b246fa17af45e57?tab=readme-ov-file#for-gtk-4-users)."
description: "The instructions for symlinking are described at the bottom of the [Manual Installation guide](https://github.com/catppuccin/gtk/tree/663f6c61f8cf1fcbbeb72110bf6b0a0214755245?tab=readme-ov-file#manual-installation)."
options:
- label: I have symlinked the `gtk-4.0` folder.
required: false

74
ARCHITECTURE.md Normal file
View File

@@ -0,0 +1,74 @@
## Build pipeline
The GTK port has a fairly complicated build pipeline / system, chiefly stemming from our use of Colloid as a base theme.
We use Colloid as a base to reduce development overhead of creating our own theme from scratch, we look to replace this in the future
to give us more flexibility and control over the theme (see https://github.com/catppuccin/gtk/issues/164).
We have reimplemented Colloid's build system (previously implemented in Shell) in Python to make it easier to maintain, extend, and iterate on.
With this re-implementation, we have several distinct components in the system, described below:
1) Patching
2) SCSS
2) Assets
## Patching
We patch our colloid submodule to add additional functionality and (temporarily) fix bugs found in Colloid.
We do this through `.patch` files, applied with `git apply` when the build script boots up.
The build script will store some state in the submodule to ensure it does not get needlessly patched.
The patches are stored in `patches/colloid`, and currently have our palette, the Plank theme, and a modification to Colloid
to allow all of our accents to load. When we find issues in Colloid, they will be patched through this system before being submitted upstream.
## SCSS
[This section assumes the directory root is at `colliod/src/sass`]
The bulk of the theme is implemented here, in SCSS. This is by far the most modular part of Colloid out of the box, requiring minimal patching from our end to function.
To start, we move the Colloid submodule into its own temporary copy. This is to allow us to run multiple builds in parallel, which would be otherwise impossible due to the
file changes necessitated by each build, described below.
With our temporary copy established, we generate the 'tweaks' for the build. This sets up a file (`_tweaks-temp.scss`) which describes the various knobs and dials for the build:
```scss
@import 'color-palette-catppuccin-mocha';
$colorscheme: 'catppuccin';
$colortype: 'system';
$opacity: 'default';
$theme: 'mauve';
$compact: 'false';
$translucent: 'false';
$panel_opacity: 1.0;
$blackness: 'false';
$rimless: 'false';
$window_button: 'mac';
$float: 'false';
```
We edit in the correct palette import for the flavour we're building, and set the other variables based on user / build state input.
With the tweaks setup, we can now invoke `sassc` (the SCSS compiler) to build all of our CSS files. We run all of the SCSS builds in parallel, for performance.
With the SCSS complete, we have now finished most of the work required for the build.
## Assets
We build our own assets to ship with the theme, based on the processes used in Colloid.
We build assets for GTK, to include UI elements such as buttons, checkboxes,
etc. This is done through standard find-and-replace, as these assets are just SVGs. We do not support GTK2, so do not have to support the older PNG assets used there.
We also build assets for Xfce's Xfwm4, which are first patched from a source SVG, and then rendered through the `inkscape` CLI.
This operation is done once, at the start of a build process (e.g CI, to be reused for every subsequent build), or once until they change in the future for local development.
The script to generate these assets can be found at [`patches/xfwm4/generate_assets.py`](./patches/xfwm4/generate_assets.py)
## CI integration
The CI system utilizes the build system, as described above, but with some unique parallelization elements to improve performance.
We have chosen to only build a limited subset of possible tweaks in CI, to constrain the time it takes to run.
Currently, we build a matrix of:
- Flavor
- Accent
The CI will run all 4 flavours in parallel (see above for precautions taken to ensure this functions correctly), and build each accent serially.
We collate the logs for these runs into files so that they can be shown neatly at the end of the run.

View File

@@ -1,5 +1,7 @@
## Development
Information regarding the architecture of the project can be found [in the ARCHITECTURE.md](./ARCHITECTURE.md) document.
### Requirements
- All the [requirements for building](#building)
- `whiskers`, optionally, from [catppuccin/toolbox](https://github.com/catppuccin/toolbox/tree/main/whiskers#installation)
@@ -19,6 +21,30 @@ so if you're changing them, they will need regenerated. Simply run `whiskers pal
The process for building the theme is [documented in the README](./README.md#building).
### Upstreaming procedure
Now and again, Colloid will have bugs upstream that impacts our theme. With our patching system we can easily fix these problems,
but we still want to contribute the fixes upstream to benefit all users & forks of Colloid.
To avoid stalling unnecessarily, our procedure for the above is as follows:
1) Open a PR to fix the issue, by adding a patch file to our theme, add `upstream:intended`
to signal these changes are to be sent to Colloid eventually.
2) Merge the PR & close the issue in our theme pertaining to the issue, once reviewed and approved
3) Open a PR in Colloid with the patch
4) Open a new issue in our theme, with these details:
- The initial issue in our theme
- The PR in Colloid that fixes the issue there
- The PR that fixed the issue in our theme
Add the `upstream:open` label
5) Once the PR is merged in Colloid:
1) Test that the issue no longer persists, without our patch
2) Open a PR to remove the patch file in our theme, with these details:
- The tracking issue
- The commit that fixed the issue in Colloid
3) Close the tracking issue & merge the PR to remove the patch file
### Running test builds
We support building and publishing test builds from PRs. When you open PRs, the CI will automatically build with your changes and push an artifact
which bundles all of the produced themes.
@@ -38,3 +64,7 @@ extracted folders to `~/.local/share/themes` yourself, adding a suffix as approp
> [!WARNING]
> If you pass `--link` to the install script when working from a PR, it will forcibly overwrite your `~/.config/gtk-4.0/` symlinks.
> You will have to reinstall / relink to revert this.
### Useful resources
- GNOME-shell sources: https://gitlab.gnome.org/GNOME/gnome-shell/-/tree/gnome-46/data/theme
- GTK inspector guide: https://developer.gnome.org/documentation/tools/inspector.html

View File

@@ -83,6 +83,22 @@ You can set up our Nix module for GTK with the following config:
Alternatively, if you are not using our Nix module, you can grab the theme from [nixpkgs/catppuccin-gtk](https://github.com/NixOS/nixpkgs/blob/master/pkgs/data/themes/catppuccin-gtk/default.nix)
## Flatpak
Flatpak by default restricts access to themes, to allow access, use the following:
```bash
sudo flatpak override --filesystem=$HOME/.local/share/themes
```
After you've allowed access, set the theme, using the following:
```bash
# Change to suite your flavor / accent combination
export FLAVOR="mocha"
export ACCENT="mauve"
# Set the theme
sudo flatpak override --env=GTK_THEME="catppuccin-${FLAVOR}-${ACCENT}-standard+default"
```
### Manual installation
If your distro does not package our theme, and the installation script will not work for your use case, you can pull down releases and extract them yourself. You can find the [latest release on GitHub](https://github.com/catppuccin/gtk/releases/latest).
@@ -105,7 +121,7 @@ curl -LsS "${ROOT_URL}/${RELEASE}/catppuccin-${FLAVOR}-${ACCENT}-standard+defaul
unzip catppuccin-${FLAVOR}-${ACCENT}-standard+default.zip
# Set the catppuccin theme directory
export THEME_DIR="~/.local/share/themes/catppuccin-${FLAVOR}-${ACCENT}-standard+default"
export THEME_DIR="$HOME/.local/share/themes/catppuccin-${FLAVOR}-${ACCENT}-standard+default"
# Optionally, add support for libadwaita
mkdir -p "${HOME}/.config/gtk-4.0" &&
@@ -122,6 +138,7 @@ If our prebuilt offerings do not match your requirements, you will have to build
- Python 3+
- `sassc`, the Sass compiler
- `inkscape`, `optipng`, for rendering PNGs
> [!WARNING]
> We use a submodule to bring in colloid, the theme this theme is based on. You will need to clone

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env python3
import os, re, shutil, subprocess, argparse, glob, logging, zipfile
import os, re, shutil, subprocess, argparse, glob, logging, zipfile, sys
from dataclasses import dataclass
from typing import Any, Literal, List
@@ -55,7 +55,10 @@ class BuildContext:
tweaks: Tweaks
def output_dir(self) -> str:
return f"{self.build_root}/{self.build_id()}"
suffix = "light"
if self.flavor.dark:
suffix = "dark"
return f"{self.build_root}/{self.build_id()}-{suffix}"
def build_id(self) -> str:
return f"{self.theme_name}-{self.flavor.identifier}-{self.accent.identifier}-{self.size}+{self.tweaks.id() or 'default'}"
@@ -190,11 +193,11 @@ def build(ctx: BuildContext):
if not ctx.flavor.dark:
shutil.copytree(
f"{SRC_DIR}/main/plank/theme-Light-Catppuccin/", f"{output_dir}/plank"
f"{SRC_DIR}/main/plank/theme-Light-Catppuccin/", f"{output_dir}/plank", dirs_exist_ok=True
)
else:
shutil.copytree(
f"{SRC_DIR}/main/plank/theme-Dark-Catppuccin/", f"{output_dir}/plank"
f"{SRC_DIR}/main/plank/theme-Dark-Catppuccin/", f"{output_dir}/plank", dirs_exist_ok=True
)
@@ -231,38 +234,13 @@ def gnome_shell_version():
f"@import 'extensions-{GS_VERSION}';",
)
# Accent translation
ctp_to_colloid = {
"rosewater": "pink",
"flamingo": "pink",
"pink": "pink",
"mauve": "purple",
"red": "red",
"maroon": "red",
"peach": "orange",
"yellow": "yellow",
"green": "green",
"teal": "teal",
"sky": "teal",
"sapphire": "default",
"blue": "default",
"lavender": "default",
}
def translate_accent(ctp_accent: Color):
return ctp_to_colloid[ctp_accent.identifier]
def write_tweak(key, default, value):
subst_text(
f"{SRC_DIR}/sass/_tweaks-temp.scss", f"\\${key}: {default}", f"${key}: {value}"
)
def apply_tweaks(ctx: BuildContext):
write_tweak("theme", "'default'", f"'{translate_accent(ctx.accent)}'")
write_tweak("theme", "'default'", f"'{ctx.accent.identifier}'")
if ctx.size == "compact":
write_tweak("compact", "'false'", "'true'")
@@ -393,15 +371,15 @@ def make_assets(ctx: BuildContext):
f"{output_dir}/metacity-1/thumbnail.png",
)
xfwm4_assets = f"{THIS_DIR}/patches/xfwm4/generated/assets-catppuccin-{ctx.flavor.identifier}"
for file in glob.glob(xfwm4_assets + '/*'):
xfwm4_assets_root = f"{THIS_DIR}/patches/xfwm4/generated/assets-catppuccin-{ctx.flavor.identifier}"
for file in glob.glob(xfwm4_assets_root + '/*'):
shutil.copy(file, f"{output_dir}/xfwm4")
xfwm4_assets = xfwm4_assets + "-hdpi/*"
xfwm4_assets = xfwm4_assets_root + "-hdpi/*"
for file in glob.glob(xfwm4_assets):
shutil.copy(file, f"{output_dir}-hdpi/xfwm4")
xfwm4_assets = xfwm4_assets + "-xhdpi/*"
xfwm4_assets = xfwm4_assets_root + "-xhdpi/*"
for file in glob.glob(xfwm4_assets):
shutil.copy(file, f"{output_dir}-xhdpi/xfwm4")
@@ -476,6 +454,7 @@ def apply_colloid_patches():
for patch in [
"plank-dark.patch",
"plank-light.patch",
"theme-func.patch",
"sass-palette-frappe.patch",
"sass-palette-mocha.patch",
"sass-palette-latte.patch",
@@ -654,3 +633,4 @@ try:
main()
except Exception as e:
logger.error("Something went wrong when building the theme:", exc_info=e)
sys.exit(1)

View File

@@ -94,7 +94,7 @@ def parse_args():
def build_release_url(ctx: InstallContext) -> str:
repo_root = "https://github.com/catppuccin/gtk/releases/download"
release = "v1.0.0-rc2"
release = "v1.0.0-rc5"
zip_name = f"catppuccin-{ctx.flavor}-{ctx.accent}-standard+default.zip"
return f"{repo_root}/{release}/{zip_name}"
@@ -119,9 +119,12 @@ def fetch_zip(url: str) -> Optional[zipfile.ZipFile]:
return zip_file
def add_libadwaita_links(ctx: InstallContext, rewrite: True):
def add_libadwaita_links(ctx: InstallContext, rewrite: bool = False):
suffix = "light"
if ctx.flavor != "latte":
suffix = "dark"
dir_name = (
ctx.dest / f"catppuccin-{ctx.flavor}-{ctx.accent}-standard+default" / "gtk-4.0"
ctx.dest / f"catppuccin-{ctx.flavor}-{ctx.accent}-standard+default-{suffix}" / "gtk-4.0"
).absolute()
gtk4_dir = (Path(os.path.expanduser("~")) / ".config" / "gtk-4.0").absolute()
os.makedirs(gtk4_dir, exist_ok=True)
@@ -131,9 +134,9 @@ def add_libadwaita_links(ctx: InstallContext, rewrite: True):
logger.info(f"Target: {gtk4_dir}")
try:
if rewrite:
os.remove(dir_name / "assets", gtk4_dir / "assets")
os.remove(dir_name / "gtk.css", gtk4_dir / "gtk.css")
os.remove(dir_name / "gtk-dark.css", gtk4_dir / "gtk-dark.css")
os.remove(gtk4_dir / "assets")
os.remove(gtk4_dir / "gtk.css")
os.remove(gtk4_dir / "gtk-dark.css")
except FileNotFoundError:
logger.debug("Ignoring FileNotFound in symlink rewrite")

View File

@@ -8,10 +8,25 @@ whiskers:
{%- set palette = flavor.colors -%}
diff --git a/src/sass/_color-palette-catppuccin-{{ flavor.identifier }}.scss b/src/sass/_color-palette-catppuccin-{{ flavor.identifier }}.scss
new file mode 100644
index 00000000..8a905942
index 00000000..4ff0da0d
--- /dev/null
+++ b/src/sass/_color-palette-catppuccin-{{ flavor.identifier }}.scss
@@ -0,0 +1,72 @@
@@ -0,0 +1,87 @@
+ // Our accents
+ $rosewater: #{{ palette.rosewater.hex }};
+ $flamingo: #{{ palette.flamingo.hex }};
+ $pink: #{{ palette.pink.hex }};
+ $mauve: #{{ palette.mauve.hex }};
+ $red: #{{ palette.red.hex }};
+ $maroon: #{{ palette.maroon.hex }};
+ $peach: #{{ palette.peach.hex }};
+ $yellow: #{{ palette.yellow.hex }};
+ $green: #{{ palette.green.hex }};
+ $teal: #{{ palette.teal.hex }};
+ $sky: #{{ palette.sky.hex }};
+ $sapphire: #{{ palette.sapphire.hex }};
+ $blue: #{{ palette.blue.hex }};
+ $lavender: #{{ palette.lavender.hex }};
+// Default Theme Color Palette
+
+// Red
@@ -47,31 +62,53 @@ index 00000000..8a905942
+$orange-dark: #{{ palette.peach.hex }};
+
+// Grey
+$grey-050: #{{ palette.text.hex }};
+$grey-100: #{{ palette.subtext1.hex }};
+$grey-150: #{{ palette.subtext1.hex }};
+$grey-200: #{{ palette.subtext0.hex }};
+$grey-250: #{{ palette.subtext0.hex }};
+$grey-300: #{{ palette.overlay1.hex }};
+$grey-350: #{{ palette.overlay1.hex }};
+$grey-400: #{{ palette.overlay0.hex }};
+$grey-450: #{{ palette.overlay0.hex }};
+$grey-500: #{{ palette.surface2.hex }};
+$grey-550: #{{ palette.surface2.hex }};
+$grey-600: #{{ palette.surface1.hex }};
+$grey-650: #{{ palette.surface1.hex }};
+$grey-700: #{{ palette.surface0.hex }};
+$grey-750: #{{ palette.surface0.hex }};
+$grey-800: #{{ palette.base.hex }};
+$grey-850: #{{ palette.base.hex }};
+$grey-900: #{{ palette.crust.hex }};
+$grey-950: #{{ palette.crust.hex }};
{% if flavor.dark -%} {#- https://github.com/catppuccin/gtk/blob/0c3e8817da94769887c690b2211e006b287b27b1/scripts/recolor.py#L153-L176 -#}
+$grey-050: #{{ palette.overlay2.hex }};
+$grey-100: #{{ palette.overlay1.hex }};
+$grey-150: #{{ palette.overlay0.hex }};
+$grey-200: #{{ palette.surface2.hex }};
+$grey-250: #{{ palette.surface1.hex }};
+$grey-300: red;
+$grey-350: red;
+$grey-400: red;
+$grey-450: red;
+$grey-500: red;
+$grey-550: red;
+$grey-600: red;
+$grey-650: #{{ palette.surface0.hex }};
+$grey-700: #{{ palette.base.hex }};
+$grey-750: #{{ palette.mantle.hex }};
+$grey-800: #{{ palette.crust.hex }};
+$grey-850: #020202;
+$grey-900: #010101;
+$grey-950: #000000;
{%- else -%} {#- Light mode https://github.com/catppuccin/gtk/blob/0c3e8817da94769887c690b2211e006b287b27b1/scripts/recolor.py#L128-L151 -#}
+$grey-050: #{{ palette.crust.hex }};
+$grey-100: #{{ palette.mantle.hex }};
+$grey-150: #{{ palette.base.hex }};
+$grey-200: #{{ palette.surface0.hex }};
+$grey-250: #{{ palette.surface1.hex }};
+$grey-300: red;
+$grey-350: red;
+$grey-400: red;
+$grey-450: red;
+$grey-500: red;
+$grey-550: red;
+$grey-600: red;
+$grey-650: #{{ palette.base.hex }};
+$grey-700: #{{ palette.base.hex }};
+$grey-750: #{{ palette.mantle.hex }};
+$grey-800: #{{ palette.text.hex }};
+$grey-850: #020202;
+$grey-900: #010101;
+$grey-950: #000000;
{%- endif %}
+
+// White
+$white: #FFFFFF;
+$white: #eff1f5;
+
+// Black
+$black: #000000;
+$black: #11111b;
+
+// Button
+$button-close: #{{ palette.red.hex }};
@@ -84,4 +121,3 @@ index 00000000..8a905942
+// Theme
+$default-light: $purple-light;
+$default-dark: $purple-dark;
{{ '' }}

View File

@@ -1,9 +1,24 @@
diff --git a/src/sass/_color-palette-catppuccin-frappe.scss b/src/sass/_color-palette-catppuccin-frappe.scss
new file mode 100644
index 00000000..8a905942
index 00000000..4ff0da0d
--- /dev/null
+++ b/src/sass/_color-palette-catppuccin-frappe.scss
@@ -0,0 +1,72 @@
@@ -0,0 +1,87 @@
+ // Our accents
+ $rosewater: #f2d5cf;
+ $flamingo: #eebebe;
+ $pink: #f4b8e4;
+ $mauve: #ca9ee6;
+ $red: #e78284;
+ $maroon: #ea999c;
+ $peach: #ef9f76;
+ $yellow: #e5c890;
+ $green: #a6d189;
+ $teal: #81c8be;
+ $sky: #99d1db;
+ $sapphire: #85c1dc;
+ $blue: #8caaee;
+ $lavender: #babbf1;
+// Default Theme Color Palette
+
+// Red
@@ -39,31 +54,31 @@ index 00000000..8a905942
+$orange-dark: #ef9f76;
+
+// Grey
+$grey-050: #c6d0f5;
+$grey-100: #b5bfe2;
+$grey-150: #b5bfe2;
+$grey-200: #a5adce;
+$grey-250: #a5adce;
+$grey-300: #838ba7;
+$grey-350: #838ba7;
+$grey-400: #737994;
+$grey-450: #737994;
+$grey-500: #626880;
+$grey-550: #626880;
+$grey-600: #51576d;
+$grey-650: #51576d;
+$grey-700: #414559;
+$grey-750: #414559;
+$grey-800: #303446;
+$grey-850: #303446;
+$grey-900: #232634;
+$grey-950: #232634;
+$grey-050: #949cbb;
+$grey-100: #838ba7;
+$grey-150: #737994;
+$grey-200: #626880;
+$grey-250: #51576d;
+$grey-300: red;
+$grey-350: red;
+$grey-400: red;
+$grey-450: red;
+$grey-500: red;
+$grey-550: red;
+$grey-600: red;
+$grey-650: #414559;
+$grey-700: #303446;
+$grey-750: #292c3c;
+$grey-800: #232634;
+$grey-850: #020202;
+$grey-900: #010101;
+$grey-950: #000000;
+
+// White
+$white: #FFFFFF;
+$white: #eff1f5;
+
+// Black
+$black: #000000;
+$black: #11111b;
+
+// Button
+$button-close: #e78284;

View File

@@ -1,9 +1,24 @@
diff --git a/src/sass/_color-palette-catppuccin-latte.scss b/src/sass/_color-palette-catppuccin-latte.scss
new file mode 100644
index 00000000..8a905942
index 00000000..4ff0da0d
--- /dev/null
+++ b/src/sass/_color-palette-catppuccin-latte.scss
@@ -0,0 +1,72 @@
@@ -0,0 +1,87 @@
+ // Our accents
+ $rosewater: #dc8a78;
+ $flamingo: #dd7878;
+ $pink: #ea76cb;
+ $mauve: #8839ef;
+ $red: #d20f39;
+ $maroon: #e64553;
+ $peach: #fe640b;
+ $yellow: #df8e1d;
+ $green: #40a02b;
+ $teal: #179299;
+ $sky: #04a5e5;
+ $sapphire: #209fb5;
+ $blue: #1e66f5;
+ $lavender: #7287fd;
+// Default Theme Color Palette
+
+// Red
@@ -39,31 +54,31 @@ index 00000000..8a905942
+$orange-dark: #fe640b;
+
+// Grey
+$grey-050: #4c4f69;
+$grey-100: #5c5f77;
+$grey-150: #5c5f77;
+$grey-200: #6c6f85;
+$grey-250: #6c6f85;
+$grey-300: #8c8fa1;
+$grey-350: #8c8fa1;
+$grey-400: #9ca0b0;
+$grey-450: #9ca0b0;
+$grey-500: #acb0be;
+$grey-550: #acb0be;
+$grey-600: #bcc0cc;
+$grey-650: #bcc0cc;
+$grey-700: #ccd0da;
+$grey-750: #ccd0da;
+$grey-800: #eff1f5;
+$grey-850: #eff1f5;
+$grey-900: #dce0e8;
+$grey-950: #dce0e8;
+$grey-050: #dce0e8;
+$grey-100: #e6e9ef;
+$grey-150: #eff1f5;
+$grey-200: #ccd0da;
+$grey-250: #bcc0cc;
+$grey-300: red;
+$grey-350: red;
+$grey-400: red;
+$grey-450: red;
+$grey-500: red;
+$grey-550: red;
+$grey-600: red;
+$grey-650: #eff1f5;
+$grey-700: #eff1f5;
+$grey-750: #e6e9ef;
+$grey-800: #4c4f69;
+$grey-850: #020202;
+$grey-900: #010101;
+$grey-950: #000000;
+
+// White
+$white: #FFFFFF;
+$white: #eff1f5;
+
+// Black
+$black: #000000;
+$black: #11111b;
+
+// Button
+$button-close: #d20f39;

View File

@@ -1,9 +1,24 @@
diff --git a/src/sass/_color-palette-catppuccin-macchiato.scss b/src/sass/_color-palette-catppuccin-macchiato.scss
new file mode 100644
index 00000000..8a905942
index 00000000..4ff0da0d
--- /dev/null
+++ b/src/sass/_color-palette-catppuccin-macchiato.scss
@@ -0,0 +1,72 @@
@@ -0,0 +1,87 @@
+ // Our accents
+ $rosewater: #f4dbd6;
+ $flamingo: #f0c6c6;
+ $pink: #f5bde6;
+ $mauve: #c6a0f6;
+ $red: #ed8796;
+ $maroon: #ee99a0;
+ $peach: #f5a97f;
+ $yellow: #eed49f;
+ $green: #a6da95;
+ $teal: #8bd5ca;
+ $sky: #91d7e3;
+ $sapphire: #7dc4e4;
+ $blue: #8aadf4;
+ $lavender: #b7bdf8;
+// Default Theme Color Palette
+
+// Red
@@ -39,31 +54,31 @@ index 00000000..8a905942
+$orange-dark: #f5a97f;
+
+// Grey
+$grey-050: #cad3f5;
+$grey-100: #b8c0e0;
+$grey-150: #b8c0e0;
+$grey-200: #a5adcb;
+$grey-250: #a5adcb;
+$grey-300: #8087a2;
+$grey-350: #8087a2;
+$grey-400: #6e738d;
+$grey-450: #6e738d;
+$grey-500: #5b6078;
+$grey-550: #5b6078;
+$grey-600: #494d64;
+$grey-650: #494d64;
+$grey-700: #363a4f;
+$grey-750: #363a4f;
+$grey-800: #24273a;
+$grey-850: #24273a;
+$grey-900: #181926;
+$grey-950: #181926;
+$grey-050: #939ab7;
+$grey-100: #8087a2;
+$grey-150: #6e738d;
+$grey-200: #5b6078;
+$grey-250: #494d64;
+$grey-300: red;
+$grey-350: red;
+$grey-400: red;
+$grey-450: red;
+$grey-500: red;
+$grey-550: red;
+$grey-600: red;
+$grey-650: #363a4f;
+$grey-700: #24273a;
+$grey-750: #1e2030;
+$grey-800: #181926;
+$grey-850: #020202;
+$grey-900: #010101;
+$grey-950: #000000;
+
+// White
+$white: #FFFFFF;
+$white: #eff1f5;
+
+// Black
+$black: #000000;
+$black: #11111b;
+
+// Button
+$button-close: #ed8796;

View File

@@ -1,9 +1,24 @@
diff --git a/src/sass/_color-palette-catppuccin-mocha.scss b/src/sass/_color-palette-catppuccin-mocha.scss
new file mode 100644
index 00000000..8a905942
index 00000000..4ff0da0d
--- /dev/null
+++ b/src/sass/_color-palette-catppuccin-mocha.scss
@@ -0,0 +1,72 @@
@@ -0,0 +1,87 @@
+ // Our accents
+ $rosewater: #f5e0dc;
+ $flamingo: #f2cdcd;
+ $pink: #f5c2e7;
+ $mauve: #cba6f7;
+ $red: #f38ba8;
+ $maroon: #eba0ac;
+ $peach: #fab387;
+ $yellow: #f9e2af;
+ $green: #a6e3a1;
+ $teal: #94e2d5;
+ $sky: #89dceb;
+ $sapphire: #74c7ec;
+ $blue: #89b4fa;
+ $lavender: #b4befe;
+// Default Theme Color Palette
+
+// Red
@@ -39,31 +54,31 @@ index 00000000..8a905942
+$orange-dark: #fab387;
+
+// Grey
+$grey-050: #cdd6f4;
+$grey-100: #bac2de;
+$grey-150: #bac2de;
+$grey-200: #a6adc8;
+$grey-250: #a6adc8;
+$grey-300: #7f849c;
+$grey-350: #7f849c;
+$grey-400: #6c7086;
+$grey-450: #6c7086;
+$grey-500: #585b70;
+$grey-550: #585b70;
+$grey-600: #45475a;
+$grey-650: #45475a;
+$grey-700: #313244;
+$grey-750: #313244;
+$grey-800: #1e1e2e;
+$grey-850: #1e1e2e;
+$grey-900: #11111b;
+$grey-950: #11111b;
+$grey-050: #9399b2;
+$grey-100: #7f849c;
+$grey-150: #6c7086;
+$grey-200: #585b70;
+$grey-250: #45475a;
+$grey-300: red;
+$grey-350: red;
+$grey-400: red;
+$grey-450: red;
+$grey-500: red;
+$grey-550: red;
+$grey-600: red;
+$grey-650: #313244;
+$grey-700: #1e1e2e;
+$grey-750: #181825;
+$grey-800: #11111b;
+$grey-850: #020202;
+$grey-900: #010101;
+$grey-950: #000000;
+
+// White
+$white: #FFFFFF;
+$white: #eff1f5;
+
+// Black
+$black: #000000;
+$black: #11111b;
+
+// Button
+$button-close: #f38ba8;

View File

@@ -0,0 +1,46 @@
diff --git a/src/sass/_colors.scss b/src/sass/_colors.scss
index 8738bf37..71797c6d 100644
--- a/src/sass/_colors.scss
+++ b/src/sass/_colors.scss
@@ -58,27 +58,20 @@
}
@function theme($color) {
- @if ($variant == 'light') {
- @if ($theme == 'default') { @return $default-dark; }
- @if ($theme == 'purple') { @return $purple-dark; }
- @if ($theme == 'pink') { @return $pink-dark; }
- @if ($theme == 'red') { @return $red-dark; }
- @if ($theme == 'orange') { @return $orange-dark; }
- @if ($theme == 'yellow') { @return $yellow-dark; }
- @if ($theme == 'green') { @return $green-dark; }
- @if ($theme == 'teal') { @return $teal-dark; }
- @if ($theme == 'grey') { @return $grey-600; }
- } @else {
- @if ($theme == 'default') { @return $default-light; }
- @if ($theme == 'purple') { @return $purple-light; }
- @if ($theme == 'pink') { @return $pink-light; }
- @if ($theme == 'red') { @return $red-light; }
- @if ($theme == 'orange') { @return $orange-light; }
- @if ($theme == 'yellow') { @return $yellow-light; }
- @if ($theme == 'green') { @return $green-light; }
- @if ($theme == 'teal') { @return $teal-light; }
- @if ($theme == 'grey') { @return $grey-200; }
- }
+ @if ($theme == 'rosewater') { @return $rosewater; }
+ @if ($theme == 'flamingo') { @return $flamingo; }
+ @if ($theme == 'pink') { @return $pink; }
+ @if ($theme == 'mauve') { @return $mauve; }
+ @if ($theme == 'red') { @return $red; }
+ @if ($theme == 'maroon') { @return $maroon; }
+ @if ($theme == 'peach') { @return $peach; }
+ @if ($theme == 'yellow') { @return $yellow; }
+ @if ($theme == 'green') { @return $green; }
+ @if ($theme == 'teal') { @return $teal; }
+ @if ($theme == 'sky') { @return $sky; }
+ @if ($theme == 'sapphire') { @return $sapphire; }
+ @if ($theme == 'blue') { @return $blue; }
+ @if ($theme == 'lavender') { @return $lavender; }
}
@function background($type) {

View File

@@ -151,6 +151,9 @@ def call_subprocesses(inp: WorkerInput):
return [
subprocess.Popen(
[
# FIXME: https://gitlab.com/inkscape/inkscape/-/issues/4716#note_1882967469Z
"unshare",
"--user",
inkscape,
"--export-id",
inp.ident,