Compare commits
14 Commits
v1.0.0-rc2
...
v1.0.0-alp
Author | SHA1 | Date | |
---|---|---|---|
|
7f05c31d3e | ||
|
bc140eefe4 | ||
|
043ff54ad0 | ||
|
e18e098571 | ||
|
ab13e83374 | ||
|
aa86808ac7 | ||
|
f31af15412 | ||
|
1585bdacf7 | ||
|
41858b3d68 | ||
|
c935fdec51 | ||
|
2eca1a605f | ||
|
3501174789 | ||
|
2becf63d9c | ||
|
6323311752 |
9
.github/workflows/release.yml
vendored
9
.github/workflows/release.yml
vendored
@@ -6,6 +6,9 @@ on:
|
|||||||
- "v*"
|
- "v*"
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
flavor: [mocha, macchiato, latte, frappe]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
@@ -21,11 +24,7 @@ jobs:
|
|||||||
- name: Install colloid specific dependencies
|
- name: Install colloid specific dependencies
|
||||||
run: sudo apt update && sudo apt install -y sassc inkscape optipng
|
run: sudo apt update && sudo apt install -y sassc inkscape optipng
|
||||||
- name: Generate themes
|
- name: Generate themes
|
||||||
run: |
|
run: python ./build.py ${{ matrix.flavor }} -a all --zip -d $PWD/releases
|
||||||
python ./build.py mocha --all-accents --zip -d $PWD/releases &&
|
|
||||||
python ./build.py macchiato --all-accents --zip -d $PWD/releases &&
|
|
||||||
python ./build.py frappe --all-accents --zip -d $PWD/releases &&
|
|
||||||
python ./build.py latte --all-accents --zip -d $PWD/releases
|
|
||||||
- name: Add zips to release
|
- name: Add zips to release
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
|
@@ -1,20 +0,0 @@
|
|||||||
## Development
|
|
||||||
|
|
||||||
### Requirements
|
|
||||||
- All the [requirements for building](#building)
|
|
||||||
- `whiskers`, optionally, from [catppuccin/toolbox](https://github.com/catppuccin/toolbox/tree/main/whiskers#installation)
|
|
||||||
|
|
||||||
### Patching colloid
|
|
||||||
> [!TIP]
|
|
||||||
> If you need to change the patches, reset the submodule and rerun the build script.
|
|
||||||
|
|
||||||
We patch upstream colloid through a series of `.patch` files, applied through `git apply` once when the build begins.
|
|
||||||
The patches are located in `./patches/colloid/`.
|
|
||||||
|
|
||||||
Once the build script patches the submodule, it will write a file into
|
|
||||||
`colloid/.patched`, to signal to future invocations that the patches have already been applied.
|
|
||||||
|
|
||||||
The palette patches are generated through `whiskers`,
|
|
||||||
so if you're changing them, they will need regenerated. Simply run `whiskers palette.tera` to rebuild them.
|
|
||||||
|
|
||||||
The process for building the theme is [documented in the README](./README.md#building).
|
|
250
README.md
250
README.md
@@ -15,56 +15,47 @@
|
|||||||
<img src="assets/res.webp"/>
|
<img src="assets/res.webp"/>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
This GTK theme is based on the [Colloid](https://github.com/vinceliuice/Colloid-gtk-theme) theme made by [vinceliuice](https://github.com/vinceliuice)
|
# About
|
||||||
|
|
||||||
## Installation
|
This GTK theme is based on the [Colloid](https://github.com/vinceliuice/Colloid-gtk-theme) theme made by [Vinceliuice](https://github.com/vinceliuice)
|
||||||
|
|
||||||
This GTK theme requires:
|
## Usage
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
- GTK `>=3.20`
|
- GTK `>=3.20`
|
||||||
- Python 3+
|
- `gnome-themes-extra` (or `gnome-themes-standard`)
|
||||||
|
|
||||||
### Automated script
|
### Installation
|
||||||
|
|
||||||
We provide a Python script to automate the process of installing the theme:
|
1. Download and extract the theme zip from [releases](https://github.com/catppuccin/gtk/releases/).
|
||||||
|
2. Move the theme folder to **".themes"** in your home directory. **(~/.themes)** (Skip this step if you are using the AUR package)
|
||||||
|
3. Select the downloaded theme via your desktop specific tweaks application (**gnome-tweaks** on Gnome 3+).
|
||||||
|
|
||||||
|
### For Arch Linux users
|
||||||
|
|
||||||
|
We have 4 AUR packages for all the 4 flavours of the theme:
|
||||||
|
|
||||||
|
- [Latte](https://aur.archlinux.org/packages/catppuccin-gtk-theme-latte)
|
||||||
|
- [Frappe](https://aur.archlinux.org/packages/catppuccin-gtk-theme-frappe)
|
||||||
|
- [Macchiato](https://aur.archlinux.org/packages/catppuccin-gtk-theme-macchiato)
|
||||||
|
- [Mocha](https://aur.archlinux.org/packages/catppuccin-gtk-theme-mocha)
|
||||||
|
|
||||||
|
With your favourite AUR helper, install them:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -LsS "https://raw.githubusercontent.com/catppuccin/gtk/main/install.py" -o install.py
|
yay -S catppuccin-gtk-theme-mocha catppuccin-gtk-theme-macchiato catppuccin-gtk-theme-frappe catppuccin-gtk-theme-latte
|
||||||
python3 install.py <flavor> <accent>
|
|
||||||
[catppuccin-gtk] [INFO] - Installation info:
|
|
||||||
flavor: mocha
|
|
||||||
accent: blue
|
|
||||||
dest: /home/<user>/.local/share/themes
|
|
||||||
link: False
|
|
||||||
|
|
||||||
remote_url: https://github.com/catppuccin/gtk/releases/download/v1.0.0-alpha/catppuccin-mocha-blue-standard+default.zip
|
|
||||||
[catppuccin-gtk] [INFO] - Starting download...
|
|
||||||
[catppuccin-gtk] [INFO] - Response status: 200
|
|
||||||
[catppuccin-gtk] [INFO] - Download finished, zip is valid
|
|
||||||
[catppuccin-gtk] [INFO] - Verifying download..
|
|
||||||
[catppuccin-gtk] [INFO] - Download verified
|
|
||||||
[catppuccin-gtk] [INFO] - Extracting...
|
|
||||||
[catppuccin-gtk] [INFO] - Extraction complete
|
|
||||||
[catppuccin-gtk] [INFO] - Theme installation complete!
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Arch Linux
|
### For Nix users
|
||||||
|
|
||||||
With your favourite AUR helper, you can install your flavor of choice:
|
We suggest you use [catppuccin/nix](https://github.com/catppuccin/nix).
|
||||||
|
Alternatively, you can use [catppuccin-gtk](https://github.com/NixOS/nixpkgs/blob/master/pkgs/data/themes/catppuccin-gtk/default.nix) from nixpkgs.
|
||||||
```bash
|
|
||||||
yay -S catppuccin-gtk-theme-<flavor>
|
|
||||||
paru -S catppuccin-gtk-theme-<flavor>
|
|
||||||
```
|
|
||||||
|
|
||||||
### Nix
|
|
||||||
|
|
||||||
We have created a Nix module ([catppuccin/nix](https://github.com/catppuccin/nix)) for theming apps under Nix, and recommend that you use it.
|
|
||||||
You can set up our Nix module for GTK with the following config:
|
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
{inputs, ...}: {
|
{inputs, ...}: {
|
||||||
imports = [inputs.catppuccin.homeManagerModules.catppuccin];
|
imports = [inputs.catppuccin.homeManagerModules.catppuccin];
|
||||||
|
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
catppuccin = {
|
catppuccin = {
|
||||||
@@ -79,83 +70,150 @@ You can set up our Nix module for GTK with the following config:
|
|||||||
```
|
```
|
||||||
|
|
||||||
> [!TIP]
|
> [!TIP]
|
||||||
> For further information on the options available with our module, see the [full documentation](https://github.com/catppuccin/nix/blob/main/docs/home-manager-options.md#gtkcatppuccinenable).
|
> For further information on the options available, see the [full documentation](https://github.com/catppuccin/nix/blob/main/docs/home-manager-options.md#gtkcatppuccinenable).
|
||||||
|
|
||||||
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)
|
### For GTK 4 users
|
||||||
|
|
||||||
### Manual installation
|
To theme GTK 4 applications you have to manually symlink the `~/.config/gtk-4.0/` to the themes folder. Use the following commands
|
||||||
|
|
||||||
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).
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/.local/share/themes
|
mkdir -p "${HOME}/.config/gtk-4.0"
|
||||||
|
ln -sf "${THEME_DIR}/gtk-4.0/assets" "${HOME}/.config/gtk-4.0/assets"
|
||||||
# Set the root URL
|
ln -sf "${THEME_DIR}/gtk-4.0/gtk.css" "${HOME}/.config/gtk-4.0/gtk.css"
|
||||||
export ROOT_URL="https://https://github.com/catppuccin/gtk/releases/download"
|
|
||||||
|
|
||||||
# Change to the tag you want to download
|
|
||||||
export RELEASE="v1.0.0"
|
|
||||||
|
|
||||||
# Change to suite your flavor / accent combination
|
|
||||||
export FLAVOR="mocha"
|
|
||||||
export ACCENT="mauve"
|
|
||||||
curl -LsS "${ROOT_URL}/${RELEASE}/catppuccin-${FLAVOR}-${ACCENT}-standard+default.zip"
|
|
||||||
|
|
||||||
# Extract the catppuccin zip file
|
|
||||||
unzip catppuccin-${FLAVOR}-${ACCENT}-standard+default.zip
|
|
||||||
|
|
||||||
# Set the catppuccin theme directory
|
|
||||||
export THEME_DIR="~/.local/share/themes/catppuccin-${FLAVOR}-${ACCENT}-standard+default"
|
|
||||||
|
|
||||||
# Optionally, add support for libadwaita
|
|
||||||
mkdir -p "${HOME}/.config/gtk-4.0" &&
|
|
||||||
ln -sf "${THEME_DIR}/gtk-4.0/assets" "${HOME}/.config/gtk-4.0/assets" &&
|
|
||||||
ln -sf "${THEME_DIR}/gtk-4.0/gtk.css" "${HOME}/.config/gtk-4.0/gtk.css" &&
|
|
||||||
ln -sf "${THEME_DIR}/gtk-4.0/gtk-dark.css" "${HOME}/.config/gtk-4.0/gtk-dark.css"
|
ln -sf "${THEME_DIR}/gtk-4.0/gtk-dark.css" "${HOME}/.config/gtk-4.0/gtk-dark.css"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Building
|
### For Flatpak users
|
||||||
|
|
||||||
If our prebuilt offerings do not match your requirements, you will have to build the theme from source.
|
1. To give your Flatpaks access to your themes folder run:
|
||||||
|
|
||||||
### Requirements
|
|
||||||
|
|
||||||
- Python 3+
|
|
||||||
- `sassc`, the Sass compiler
|
|
||||||
|
|
||||||
> [!WARNING]
|
|
||||||
> We use a submodule to bring in colloid, the theme this theme is based on. You will need to clone
|
|
||||||
> with `git clone <url> --recurse-submodules` to bring in the submodule.
|
|
||||||
|
|
||||||
To build the theme, simply invoke `build.py`:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
python3 build.py mocha --dest ./build -a rosewater --tweaks rimless
|
sudo flatpak override --filesystem=$HOME/.themes
|
||||||
[catppuccin-gtk] [INFO] - Patches seem to be applied, remove "colloid/.patched" to force application (this may fail)
|
|
||||||
[catppuccin-gtk] [INFO] - Building temp tweaks file
|
|
||||||
[catppuccin-gtk] [INFO] - Inserting gnome-shell imports
|
|
||||||
[catppuccin-gtk] [INFO] - Building main theme
|
|
||||||
[catppuccin-gtk] [INFO] - Build info:
|
|
||||||
build_root: ./build
|
|
||||||
theme_name: catppuccin
|
|
||||||
flavor: mocha
|
|
||||||
accent: rosewater
|
|
||||||
size: standard
|
|
||||||
tweaks: Tweaks(tweaks=['rimless'])
|
|
||||||
[catppuccin-gtk] [INFO] - Building into './build/catppuccin-mocha-rosewater-standard+rimless'...
|
|
||||||
[catppuccin-gtk] [INFO] - Main build complete
|
|
||||||
[catppuccin-gtk] [INFO] - Bundling assets...
|
|
||||||
[catppuccin-gtk] [INFO] - Asset bundling done
|
|
||||||
[catppuccin-gtk] [INFO] - Done!
|
|
||||||
```
|
```
|
||||||
|
|
||||||
You can now find the built theme under `./build`. If you want to package the theme up as a zip instead, pass `--zip` to the build script.
|
2. To set the theme for all Flatpaks, replace `##theme##` with the name of the theme you want to use and run this command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo flatpak override --env=GTK_THEME=##theme##
|
||||||
|
```
|
||||||
|
|
||||||
|
3. For a more in depth tutorial see Hamza Algohary's tutorial on [It's FOSS](https://itsfoss.com/flatpak-app-apply-theme/)
|
||||||
|
|
||||||
|
### Handling GTK theme installation from window manager
|
||||||
|
|
||||||
|
1. Install unzip and curl.
|
||||||
|
2. Go to your window manager config file.
|
||||||
|
3. Add an entrance to the config file to be executed when your window manager is loaded.
|
||||||
|
- i3/sway example:
|
||||||
|
```
|
||||||
|
# catppuccin
|
||||||
|
set $ctp-version v0.6.1
|
||||||
|
exec_always if [ ! -e ~/.themes/Catppuccin-Frappe-Standard-Lavender-dark ]; then \
|
||||||
|
mkdir -p ~/.themes \
|
||||||
|
&& curl -L https://github.com/catppuccin/gtk/releases/download/$ctp-version/Catppuccin-Frappe-Standard-Lavender-dark.zip -o ~/.themes/catppuccin.zip \
|
||||||
|
&& unzip ~/.themes/catppuccin.zip -d ~/.themes/ \
|
||||||
|
&& rm -rf ~/.themes/catppuccin.zip; fi
|
||||||
|
```
|
||||||
|
> Note: The previous example execute that script every time i3/sway is reloaded.
|
||||||
|
4. Set the GTK_THEME environment variable:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
export GTK_THEME='Catppuccin-Frappe-Standard-Lavender-dark:dark'
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> in order to update the theme's version, just change the variable `$ctp-version`.
|
||||||
|
|
||||||
|
### GDM Theme
|
||||||
|
|
||||||
|
> [!WARNING]
|
||||||
|
> Applying a custom theme to GDM is not recommended as it is not themeable, however you can do it through certain *hacks*.
|
||||||
|
|
||||||
|
To apply the theme to GDM, A new `gnome-shell-theme.gresource.xml` needs to be complied.
|
||||||
|
To achieve this, you can run the following:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Backup the current gresource file.
|
||||||
|
sudo cp -av /usr/share/gnome-shell/gnome-shell-theme.gresource{,~}
|
||||||
|
sudo glib-compile-resources --target="/usr/share/gnome-shell/gnome-shell-theme.gresource" --sourcedir="$THEME_DIR" "$THEME_DIR/gnome-shell-theme.gresource.xml"
|
||||||
|
```
|
||||||
|
|
||||||
|
Make sure to replace `$THEME_DIR` to where the theme was extracted accordingly.
|
||||||
|
|
||||||
|
- For nix users, it'll be the nix store path of the package.
|
||||||
|
- For AUR users, it'll be in `~/.themes`
|
||||||
|
- Otherwise, it'll be wherever you extracted the theme.
|
||||||
|
|
||||||
|
### Using the script
|
||||||
|
|
||||||
|
**Note**: Ensure that you have at least Python version 3.10 installed
|
||||||
|
|
||||||
|
Set up the installer using
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone --recurse-submodules git@github.com:catppuccin/gtk.git
|
||||||
|
cd gtk
|
||||||
|
virtualenv -p python3 venv # to be created only once and only if you need a virtual env
|
||||||
|
source venv/bin/activate
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
To check out the install script, run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python install.py --help
|
||||||
|
```
|
||||||
|
|
||||||
|
> Tip: `python install.py --help` allows the following options:
|
||||||
|
|
||||||
|
```
|
||||||
|
Compulsory field Specify color variant(s) [mocha|frappe|macchiato|latte|all]
|
||||||
|
-d, --dest DIR Specify destination directory (Default: ~/.themes)
|
||||||
|
-n, --name NAME Specify theme name (Default: Colloid)
|
||||||
|
-a, --accent VARIANT... Specify theme color variant(s) [rosewater|flamingo|pink|mauve|red|maroon|peach|yellow|green|teal|sky|
|
||||||
|
sapphire|blue|lavender|all] (Default: blue)
|
||||||
|
-s, --size VARIANT... Specify size variant [standard|compact] (Default: standard variant)
|
||||||
|
-l, --link Link installed gtk-4.0 theme to config folder for all libadwaita app use this theme
|
||||||
|
--zip Zips up the finally produced themes.
|
||||||
|
--tweaks Specify versions for tweaks [black|rimless|normal|float]
|
||||||
|
1. black: Blackness color version
|
||||||
|
2. rimless: Remove the 1px border about windows and menus
|
||||||
|
3. normal: Normal windows button style (titlebuttons: max/min/close)
|
||||||
|
4. float: Floating gnome-shell panel style
|
||||||
|
-h, --help Show help
|
||||||
|
```
|
||||||
|
|
||||||
|
You can install any theme like the following example
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python install.py mocha -a sky --tweaks rimless -d ~/.themes
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
You can build all possible variations of the theme possible using the following command and it will install it to releases folder
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python install.py all -a all
|
||||||
|
```
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
You need to install the following packages to build the theme. Check with your distribution for the package names in the repository
|
||||||
|
|
||||||
|
- `sassc`
|
||||||
|
- `inkscape`
|
||||||
|
- `optipng`
|
||||||
|
|
||||||
|
A few important notes to keep in mind
|
||||||
|
|
||||||
|
- `recolor.py` handles all changes that needs to be done to colloid to ensure it generated catppuccin colors. If vinceliuice changes anything in his theme in future, that is where you must change
|
||||||
|
- `var.py` includes all different variables that you can tinker around as per your personal requirements.
|
||||||
|
- `create_theme.py` consists of a wrapper that will recolor the colloid theme, install it as per the args provided and rename it accordingly.
|
||||||
|
|
||||||
## 💝 Thanks to
|
## 💝 Thanks to
|
||||||
|
|
||||||
**Current maintainers**
|
**Current maintainers**
|
||||||
|
|
||||||
- [nullishamy](https://github.com/nullishamy)
|
|
||||||
- [npv12](https://github.com/npv12)
|
- [npv12](https://github.com/npv12)
|
||||||
- [ghostx31](https://github.com/ghostx31)
|
- [ghostx31](https://github.com/ghostx31)
|
||||||
- [Syndrizzle](https://github.com/Syndrizzle)
|
- [Syndrizzle](https://github.com/Syndrizzle)
|
||||||
@@ -163,7 +221,7 @@ You can now find the built theme under `./build`. If you want to package the the
|
|||||||
**Contributions**
|
**Contributions**
|
||||||
|
|
||||||
- [rubyowo](https://github.com/rubyowo) - CI and docs
|
- [rubyowo](https://github.com/rubyowo) - CI and docs
|
||||||
- [braheezy](https://github.com/braheezy) - Instructions for the GDM theme
|
- [braheezy](https://github.com/braheezy) - Instructions for the GDM theme.
|
||||||
|
|
||||||
**Previous maintainer(s)**
|
**Previous maintainer(s)**
|
||||||
|
|
||||||
|
179
build.py
179
build.py
@@ -2,7 +2,7 @@
|
|||||||
import os, re, shutil, subprocess, argparse, glob, logging, zipfile
|
import os, re, shutil, subprocess, argparse, glob, logging, zipfile
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Any, Literal, List
|
from typing import Literal, List
|
||||||
|
|
||||||
from catppuccin import PALETTE
|
from catppuccin import PALETTE
|
||||||
from catppuccin.models import Flavor, Color
|
from catppuccin.models import Flavor, Color
|
||||||
@@ -30,20 +30,6 @@ class Tweaks:
|
|||||||
return ",".join(self.tweaks)
|
return ",".join(self.tweaks)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class Suffix:
|
|
||||||
true_value: str
|
|
||||||
test: Any # callback function
|
|
||||||
false_value: str = ""
|
|
||||||
|
|
||||||
|
|
||||||
IS_DARK = Suffix(true_value="-Dark", test=lambda ctx: ctx.flavor.dark)
|
|
||||||
IS_LIGHT = Suffix(true_value="-Light", test=lambda ctx: not ctx.flavor.dark)
|
|
||||||
IS_WINDOW_NORMAL = Suffix(true_value="-Normal", test=lambda ctx: ctx.tweaks.has('normal'))
|
|
||||||
DARK_LIGHT = Suffix(
|
|
||||||
true_value="-Dark", false_value="-Light", test=lambda ctx: ctx.flavor.dark
|
|
||||||
)
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class BuildContext:
|
class BuildContext:
|
||||||
build_root: str
|
build_root: str
|
||||||
@@ -60,15 +46,26 @@ class BuildContext:
|
|||||||
def build_id(self) -> str:
|
def build_id(self) -> str:
|
||||||
return f"{self.theme_name}-{self.flavor.identifier}-{self.accent.identifier}-{self.size}+{self.tweaks.id() or 'default'}"
|
return f"{self.theme_name}-{self.flavor.identifier}-{self.accent.identifier}-{self.size}+{self.tweaks.id() or 'default'}"
|
||||||
|
|
||||||
def apply_suffix(self, suffix: Suffix) -> str:
|
|
||||||
if suffix.test(self):
|
|
||||||
return suffix.true_value
|
|
||||||
else:
|
|
||||||
return suffix.false_value
|
|
||||||
|
|
||||||
|
|
||||||
def build(ctx: BuildContext):
|
def build(ctx: BuildContext):
|
||||||
|
dark_suffix = ""
|
||||||
|
light_suffix = ""
|
||||||
|
window_suffix = ""
|
||||||
|
scheme_suffix = "-Catppuccin"
|
||||||
|
|
||||||
|
if ctx.tweaks.has("normal"):
|
||||||
|
window_suffix = "-Normal"
|
||||||
|
|
||||||
|
if ctx.flavor == "latte":
|
||||||
|
light_suffix = "-Light"
|
||||||
|
suffix = "-Light"
|
||||||
|
|
||||||
|
if ctx.flavor != "":
|
||||||
|
dark_suffix = "-Dark"
|
||||||
|
suffix = "-Dark"
|
||||||
|
|
||||||
output_dir = ctx.output_dir()
|
output_dir = ctx.output_dir()
|
||||||
|
# [[ -d "${THEME_DIR}" ]] && rm -rf "${THEME_DIR}"
|
||||||
logger.info(f"Building into '{output_dir}'...")
|
logger.info(f"Building into '{output_dir}'...")
|
||||||
|
|
||||||
apply_tweaks(ctx)
|
apply_tweaks(ctx)
|
||||||
@@ -84,7 +81,7 @@ def build(ctx: BuildContext):
|
|||||||
file.write("[X-GNOME-Metatheme]\n")
|
file.write("[X-GNOME-Metatheme]\n")
|
||||||
file.write(f"GtkTheme={ctx.build_id()}\n")
|
file.write(f"GtkTheme={ctx.build_id()}\n")
|
||||||
file.write(f"MetacityTheme={ctx.build_id()}\n")
|
file.write(f"MetacityTheme={ctx.build_id()}\n")
|
||||||
file.write(f"IconTheme=Tela-circle{ctx.apply_suffix(IS_DARK)}\n")
|
file.write(f"IconTheme=Tela-circle{dark_suffix}\n")
|
||||||
file.write(f"CursorTheme={ctx.flavor.name}-cursors\n")
|
file.write(f"CursorTheme={ctx.flavor.name}-cursors\n")
|
||||||
file.write("ButtonLayout=close,minimize,maximize:menu\n")
|
file.write("ButtonLayout=close,minimize,maximize:menu\n")
|
||||||
|
|
||||||
@@ -97,7 +94,7 @@ def build(ctx: BuildContext):
|
|||||||
[
|
[
|
||||||
"sassc",
|
"sassc",
|
||||||
*SASSC_OPT,
|
*SASSC_OPT,
|
||||||
f"{SRC_DIR}/main/gnome-shell/gnome-shell{ctx.apply_suffix(DARK_LIGHT)}.scss",
|
f"{SRC_DIR}/main/gnome-shell/gnome-shell{suffix}.scss",
|
||||||
f"{output_dir}/gnome-shell/gnome-shell.css",
|
f"{output_dir}/gnome-shell/gnome-shell.css",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@@ -107,7 +104,7 @@ def build(ctx: BuildContext):
|
|||||||
[
|
[
|
||||||
"sassc",
|
"sassc",
|
||||||
*SASSC_OPT,
|
*SASSC_OPT,
|
||||||
f"{SRC_DIR}/main/gtk-3.0/gtk{ctx.apply_suffix(DARK_LIGHT)}.scss",
|
f"{SRC_DIR}/main/gtk-3.0/gtk{suffix}.scss",
|
||||||
f"{output_dir}/gtk-3.0/gtk.css",
|
f"{output_dir}/gtk-3.0/gtk.css",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@@ -115,9 +112,8 @@ def build(ctx: BuildContext):
|
|||||||
[
|
[
|
||||||
"sassc",
|
"sassc",
|
||||||
*SASSC_OPT,
|
*SASSC_OPT,
|
||||||
# NOTE: This uses 'Dark' for the source, but 'dark' for the destination. This is intentional. Do !!NOT!! change it without consultation
|
|
||||||
f"{SRC_DIR}/main/gtk-3.0/gtk-Dark.scss",
|
f"{SRC_DIR}/main/gtk-3.0/gtk-Dark.scss",
|
||||||
f"{output_dir}/gtk-3.0/gtk-dark.css",
|
f"{output_dir}/gtk-3.0/gtk-Dark.css",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -126,7 +122,7 @@ def build(ctx: BuildContext):
|
|||||||
[
|
[
|
||||||
"sassc",
|
"sassc",
|
||||||
*SASSC_OPT,
|
*SASSC_OPT,
|
||||||
f"{SRC_DIR}/main/gtk-4.0/gtk{ctx.apply_suffix(DARK_LIGHT)}.scss",
|
f"{SRC_DIR}/main/gtk-4.0/gtk{suffix}.scss",
|
||||||
f"{output_dir}/gtk-4.0/gtk.css",
|
f"{output_dir}/gtk-4.0/gtk.css",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@@ -134,9 +130,8 @@ def build(ctx: BuildContext):
|
|||||||
[
|
[
|
||||||
"sassc",
|
"sassc",
|
||||||
*SASSC_OPT,
|
*SASSC_OPT,
|
||||||
# NOTE: This uses 'Dark' for the source, but 'dark' for the destination. This is intentional. Do !!NOT!! change it without consultation
|
|
||||||
f"{SRC_DIR}/main/gtk-4.0/gtk-Dark.scss",
|
f"{SRC_DIR}/main/gtk-4.0/gtk-Dark.scss",
|
||||||
f"{output_dir}/gtk-4.0/gtk-dark.css",
|
f"{output_dir}/gtk-4.0/gtk-Dark.css",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -145,14 +140,22 @@ def build(ctx: BuildContext):
|
|||||||
[
|
[
|
||||||
"sassc",
|
"sassc",
|
||||||
*SASSC_OPT,
|
*SASSC_OPT,
|
||||||
f"{SRC_DIR}/main/cinnamon/cinnamon{ctx.apply_suffix(DARK_LIGHT)}.scss",
|
f"{SRC_DIR}/main/cinnamon/cinnamon{suffix}.scss",
|
||||||
f"{output_dir}/cinnamon/cinnamon.css",
|
f"{output_dir}/cinnamon/cinnamon.css",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
subprocess.check_call(
|
||||||
|
[
|
||||||
|
"sassc",
|
||||||
|
*SASSC_OPT,
|
||||||
|
f"{SRC_DIR}/main/gtk-4.0/gtk-Dark.scss",
|
||||||
|
f"{output_dir}/gtk-4.0/gtk-Dark.css",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
os.makedirs(f"{output_dir}/metacity-1", exist_ok=True)
|
os.makedirs(f"{output_dir}/metacity-1", exist_ok=True)
|
||||||
shutil.copyfile(
|
shutil.copyfile(
|
||||||
f"{SRC_DIR}/main/metacity-1/metacity-theme-3{ctx.apply_suffix(IS_WINDOW_NORMAL)}.xml",
|
f"{SRC_DIR}/main/metacity-1/metacity-theme-3{window_suffix}.xml",
|
||||||
f"{output_dir}/metacity-1/metacity-theme-3.xml",
|
f"{output_dir}/metacity-1/metacity-theme-3.xml",
|
||||||
)
|
)
|
||||||
# FIXME: Symlinks aren't working as intended
|
# FIXME: Symlinks aren't working as intended
|
||||||
@@ -168,20 +171,20 @@ def build(ctx: BuildContext):
|
|||||||
|
|
||||||
os.makedirs(f"{output_dir}/xfwm4", exist_ok=True)
|
os.makedirs(f"{output_dir}/xfwm4", exist_ok=True)
|
||||||
shutil.copyfile(
|
shutil.copyfile(
|
||||||
f"{SRC_DIR}/main/xfwm4/themerc{ctx.apply_suffix(IS_LIGHT)}",
|
f"{SRC_DIR}/main/xfwm4/themerc{light_suffix}",
|
||||||
f"{output_dir}/xfwm4/themerc",
|
f"{output_dir}/xfwm4/themerc",
|
||||||
)
|
)
|
||||||
|
|
||||||
os.makedirs(f"{output_dir}-hdpi/xfwm4", exist_ok=True)
|
os.makedirs(f"{output_dir}-hdpi/xfwm4", exist_ok=True)
|
||||||
shutil.copyfile(
|
shutil.copyfile(
|
||||||
f"{SRC_DIR}/main/xfwm4/themerc{ctx.apply_suffix(IS_LIGHT)}",
|
f"{SRC_DIR}/main/xfwm4/themerc{light_suffix}",
|
||||||
f"{output_dir}-hdpi/xfwm4/themerc",
|
f"{output_dir}-hdpi/xfwm4/themerc",
|
||||||
)
|
)
|
||||||
subst_text(f"{output_dir}-hdpi/xfwm4/themerc", "button_offset=6", "button_offset=9")
|
subst_text(f"{output_dir}-hdpi/xfwm4/themerc", "button_offset=6", "button_offset=9")
|
||||||
|
|
||||||
os.makedirs(f"{output_dir}-xhdpi/xfwm4", exist_ok=True)
|
os.makedirs(f"{output_dir}-xhdpi/xfwm4", exist_ok=True)
|
||||||
shutil.copyfile(
|
shutil.copyfile(
|
||||||
f"{SRC_DIR}/main/xfwm4/themerc{ctx.apply_suffix(IS_LIGHT)}",
|
f"{SRC_DIR}/main/xfwm4/themerc{light_suffix or ''}",
|
||||||
f"{output_dir}-xhdpi/xfwm4/themerc",
|
f"{output_dir}-xhdpi/xfwm4/themerc",
|
||||||
)
|
)
|
||||||
subst_text(
|
subst_text(
|
||||||
@@ -190,15 +193,15 @@ def build(ctx: BuildContext):
|
|||||||
|
|
||||||
if not ctx.flavor.dark:
|
if not ctx.flavor.dark:
|
||||||
shutil.copytree(
|
shutil.copytree(
|
||||||
f"{SRC_DIR}/main/plank/theme-Light-Catppuccin/", f"{output_dir}/plank"
|
f"{SRC_DIR}/main/plank/theme-Light{scheme_suffix}/", f"{output_dir}/plank"
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
shutil.copytree(
|
shutil.copytree(
|
||||||
f"{SRC_DIR}/main/plank/theme-Dark-Catppuccin/", f"{output_dir}/plank"
|
f"{SRC_DIR}/main/plank/theme-Dark{scheme_suffix}/", f"{output_dir}/plank"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def init_tweaks_temp():
|
def tweaks_temp():
|
||||||
shutil.copyfile(f"{SRC_DIR}/sass/_tweaks.scss", f"{SRC_DIR}/sass/_tweaks-temp.scss")
|
shutil.copyfile(f"{SRC_DIR}/sass/_tweaks.scss", f"{SRC_DIR}/sass/_tweaks-temp.scss")
|
||||||
|
|
||||||
|
|
||||||
@@ -262,7 +265,7 @@ def write_tweak(key, default, value):
|
|||||||
|
|
||||||
|
|
||||||
def apply_tweaks(ctx: BuildContext):
|
def apply_tweaks(ctx: BuildContext):
|
||||||
write_tweak("theme", "'default'", f"'{translate_accent(ctx.accent)}'")
|
write_tweak("theme", "'default'", translate_accent(ctx.accent))
|
||||||
|
|
||||||
if ctx.size == "compact":
|
if ctx.size == "compact":
|
||||||
write_tweak("compact", "'false'", "'true'")
|
write_tweak("compact", "'false'", "'true'")
|
||||||
@@ -288,13 +291,31 @@ def apply_tweaks(ctx: BuildContext):
|
|||||||
|
|
||||||
|
|
||||||
def make_assets(ctx: BuildContext):
|
def make_assets(ctx: BuildContext):
|
||||||
|
color_suffix = ""
|
||||||
|
if not ctx.flavor.dark:
|
||||||
|
color_suffix = "-Light"
|
||||||
|
else:
|
||||||
|
color_suffix = "-Dark"
|
||||||
|
|
||||||
|
dark_suffix = ""
|
||||||
|
if ctx.flavor.dark:
|
||||||
|
dark_suffix = "-Dark"
|
||||||
|
|
||||||
|
light_suffix = ""
|
||||||
|
if not ctx.flavor.dark:
|
||||||
|
light_suffix = "-Light"
|
||||||
|
|
||||||
|
window_suffix = ""
|
||||||
|
if ctx.tweaks.has("normal"):
|
||||||
|
window_suffix = "-Normal"
|
||||||
|
|
||||||
output_dir = ctx.output_dir()
|
output_dir = ctx.output_dir()
|
||||||
|
|
||||||
os.makedirs(f"{output_dir}/cinnamon/assets", exist_ok=True)
|
os.makedirs(f"{output_dir}/cinnamon/assets", exist_ok=True)
|
||||||
for file in glob.glob(f"{SRC_DIR}/assets/cinnamon/theme/*.svg"):
|
for file in glob.glob(f"{SRC_DIR}/assets/cinnamon/theme/*.svg"):
|
||||||
shutil.copy(file, f"{output_dir}/cinnamon/assets")
|
shutil.copy(file, f"{output_dir}/cinnamon/assets")
|
||||||
shutil.copy(
|
shutil.copy(
|
||||||
f"{SRC_DIR}/assets/cinnamon/thumbnail{ctx.apply_suffix(DARK_LIGHT)}.svg",
|
f"{SRC_DIR}/assets/cinnamon/thumbnail{color_suffix}.svg",
|
||||||
f"{output_dir}/cinnamon/thumbnail.png",
|
f"{output_dir}/cinnamon/thumbnail.png",
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -313,11 +334,11 @@ def make_assets(ctx: BuildContext):
|
|||||||
dirs_exist_ok=True,
|
dirs_exist_ok=True,
|
||||||
)
|
)
|
||||||
shutil.copyfile(
|
shutil.copyfile(
|
||||||
f"{SRC_DIR}/assets/gtk/thumbnail{ctx.apply_suffix(IS_DARK)}.svg",
|
f"{SRC_DIR}/assets/gtk/thumbnail{dark_suffix}.svg",
|
||||||
f"{output_dir}/gtk-3.0/thumbnail.png",
|
f"{output_dir}/gtk-3.0/thumbnail.png",
|
||||||
)
|
)
|
||||||
shutil.copyfile(
|
shutil.copyfile(
|
||||||
f"{SRC_DIR}/assets/gtk/thumbnail{ctx.apply_suffix(IS_DARK)}.svg",
|
f"{SRC_DIR}/assets/gtk/thumbnail{dark_suffix}.svg",
|
||||||
f"{output_dir}/gtk-4.0/thumbnail.png",
|
f"{output_dir}/gtk-4.0/thumbnail.png",
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -373,23 +394,23 @@ def make_assets(ctx: BuildContext):
|
|||||||
for file in glob.glob(f"{SRC_DIR}/assets/cinnamon/common-assets/*.svg"):
|
for file in glob.glob(f"{SRC_DIR}/assets/cinnamon/common-assets/*.svg"):
|
||||||
shutil.copy(file, f"{output_dir}/cinnamon/assets")
|
shutil.copy(file, f"{output_dir}/cinnamon/assets")
|
||||||
|
|
||||||
for file in glob.glob(f"{SRC_DIR}/assets/cinnamon/assets{ctx.apply_suffix(IS_DARK)}/*.svg"):
|
for file in glob.glob(f"{SRC_DIR}/assets/cinnamon/assets-{dark_suffix}/*.svg"):
|
||||||
shutil.copy(file, f"{output_dir}/cinnamon/assets")
|
shutil.copy(file, f"{output_dir}/cinnamon/assets")
|
||||||
|
|
||||||
for file in glob.glob(f"{SRC_DIR}/assets/gnome-shell/common-assets/*.svg"):
|
for file in glob.glob(f"{SRC_DIR}/assets/gnome-shell/common-assets/*.svg"):
|
||||||
shutil.copy(file, f"{output_dir}/gnome-shell/assets")
|
shutil.copy(file, f"{output_dir}/gnome-shell/assets")
|
||||||
|
|
||||||
for file in glob.glob(f"{SRC_DIR}/assets/gnome-shell/assets{ctx.apply_suffix(IS_DARK)}/*.svg"):
|
for file in glob.glob(f"{SRC_DIR}/assets/gnome-shell/assets-{dark_suffix}/*.svg"):
|
||||||
shutil.copy(file, f"{output_dir}/gnome-shell/assets")
|
shutil.copy(file, f"{output_dir}/gnome-shell/assets")
|
||||||
|
|
||||||
for file in glob.glob(f"{SRC_DIR}/assets/gtk/symbolics/*.svg"):
|
for file in glob.glob(f"{SRC_DIR}/assets/gtk/symbolics/*.svg"):
|
||||||
shutil.copy(file, f"{output_dir}/gtk-3.0/assets")
|
shutil.copy(file, f"{output_dir}/gtk-3.0/assets")
|
||||||
shutil.copy(file, f"{output_dir}/gtk-4.0/assets")
|
shutil.copy(file, f"{output_dir}/gtk-4.0/assets")
|
||||||
|
|
||||||
for file in glob.glob(f"{SRC_DIR}/assets/metacity-1/assets{ctx.apply_suffix(IS_WINDOW_NORMAL)}/*.svg"):
|
for file in glob.glob(f"{SRC_DIR}/assets/metacity-1/assets-{window_suffix}/*.svg"):
|
||||||
shutil.copy(file, f"{output_dir}/metacity-1/assets")
|
shutil.copy(file, f"{output_dir}/metacity-1/assets")
|
||||||
shutil.copy(
|
shutil.copy(
|
||||||
f"{SRC_DIR}/assets/metacity-1/thumbnail{ctx.apply_suffix(IS_DARK)}.png",
|
f"{SRC_DIR}/assets/metacity-1/thumbnail{dark_suffix}.png",
|
||||||
f"{output_dir}/metacity-1/thumbnail.png",
|
f"{output_dir}/metacity-1/thumbnail.png",
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -397,13 +418,13 @@ def make_assets(ctx: BuildContext):
|
|||||||
# {src_dir}/assets/xfwm4/assets{light_suffix}-Catppuccin/
|
# {src_dir}/assets/xfwm4/assets{light_suffix}-Catppuccin/
|
||||||
# where assets-Light-Catppuccin will have latte
|
# where assets-Light-Catppuccin will have latte
|
||||||
# nad assets-Catppuccin will have mocha or something
|
# nad assets-Catppuccin will have mocha or something
|
||||||
for file in glob.glob(f"{SRC_DIR}/assets/xfwm4/assets{ctx.apply_suffix(IS_LIGHT)}/*.png"):
|
for file in glob.glob(f"{SRC_DIR}/assets/xfwm4/assets{light_suffix}/*.png"):
|
||||||
shutil.copy(file, f"{output_dir}/xfwm4")
|
shutil.copy(file, f"{output_dir}/xfwm4")
|
||||||
|
|
||||||
for file in glob.glob(f"{SRC_DIR}/assets/xfwm4/assets{ctx.apply_suffix(IS_LIGHT)}-hdpi/*.png"):
|
for file in glob.glob(f"{SRC_DIR}/assets/xfwm4/assets{light_suffix}-hdpi/*.png"):
|
||||||
shutil.copy(file, f"{output_dir}-hdpi/xfwm4")
|
shutil.copy(file, f"{output_dir}-hdpi/xfwm4")
|
||||||
|
|
||||||
for file in glob.glob(f"{SRC_DIR}/assets/xfwm4/assets{ctx.apply_suffix(IS_LIGHT)}-xhdpi/*.png"):
|
for file in glob.glob(f"{SRC_DIR}/assets/xfwm4/assets{light_suffix}-xhdpi/*.png"):
|
||||||
shutil.copy(file, f"{output_dir}-xhdpi/xfwm4")
|
shutil.copy(file, f"{output_dir}-xhdpi/xfwm4")
|
||||||
|
|
||||||
|
|
||||||
@@ -477,6 +498,7 @@ def apply_colloid_patches():
|
|||||||
for patch in [
|
for patch in [
|
||||||
"plank-dark.patch",
|
"plank-dark.patch",
|
||||||
"plank-light.patch",
|
"plank-light.patch",
|
||||||
|
"sass-colors.patch",
|
||||||
"sass-palette-frappe.patch",
|
"sass-palette-frappe.patch",
|
||||||
"sass-palette-mocha.patch",
|
"sass-palette-mocha.patch",
|
||||||
"sass-palette-latte.patch",
|
"sass-palette-latte.patch",
|
||||||
@@ -524,8 +546,7 @@ def parse_args():
|
|||||||
"-a",
|
"-a",
|
||||||
type=str,
|
type=str,
|
||||||
default="mauve",
|
default="mauve",
|
||||||
nargs='+',
|
dest="accent",
|
||||||
dest="accents",
|
|
||||||
choices=[
|
choices=[
|
||||||
"rosewater",
|
"rosewater",
|
||||||
"flamingo",
|
"flamingo",
|
||||||
@@ -541,17 +562,11 @@ def parse_args():
|
|||||||
"sapphire",
|
"sapphire",
|
||||||
"blue",
|
"blue",
|
||||||
"lavender",
|
"lavender",
|
||||||
|
"all"
|
||||||
],
|
],
|
||||||
help="Accent of the theme.",
|
help="Accent of the theme.",
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"--all-accents",
|
|
||||||
help="Whether to build all accents",
|
|
||||||
dest="all_accents",
|
|
||||||
action="store_true",
|
|
||||||
)
|
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--size",
|
"--size",
|
||||||
"-s",
|
"-s",
|
||||||
@@ -590,23 +605,12 @@ def parse_args():
|
|||||||
|
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
args = parse_args()
|
args = parse_args()
|
||||||
if args.patch:
|
if args.patch:
|
||||||
apply_colloid_patches()
|
apply_colloid_patches()
|
||||||
|
|
||||||
if args.zip:
|
|
||||||
output_format = "zip"
|
|
||||||
else:
|
|
||||||
output_format = "dir"
|
|
||||||
|
|
||||||
tweaks = Tweaks(tweaks=args.tweaks)
|
|
||||||
|
|
||||||
palette = getattr(PALETTE, args.flavor)
|
palette = getattr(PALETTE, args.flavor)
|
||||||
|
|
||||||
accents = args.accents
|
|
||||||
if args.all_accents:
|
|
||||||
accents=[
|
accents=[
|
||||||
"rosewater",
|
"rosewater",
|
||||||
"flamingo",
|
"flamingo",
|
||||||
@@ -624,15 +628,17 @@ def main():
|
|||||||
"lavender",
|
"lavender",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
if args.accent == 'all':
|
||||||
for accent in accents:
|
for accent in accents:
|
||||||
accent = getattr(palette.colors, accent)
|
accent = getattr(palette.colors, accent)
|
||||||
|
|
||||||
tweaks = Tweaks(tweaks=args.tweaks)
|
tweaks = Tweaks(tweaks=args.tweaks)
|
||||||
|
|
||||||
if args.zip:
|
if args.zip:
|
||||||
output_format = "zip"
|
output_format = 'zip'
|
||||||
else:
|
else:
|
||||||
output_format = "dir"
|
output_format = 'dir'
|
||||||
|
|
||||||
ctx = BuildContext(
|
ctx = BuildContext(
|
||||||
build_root=args.dest,
|
build_root=args.dest,
|
||||||
theme_name=args.name,
|
theme_name=args.name,
|
||||||
@@ -640,19 +646,42 @@ def main():
|
|||||||
accent=accent,
|
accent=accent,
|
||||||
size=args.size,
|
size=args.size,
|
||||||
tweaks=tweaks,
|
tweaks=tweaks,
|
||||||
output_format=output_format,
|
output_format=output_format
|
||||||
)
|
)
|
||||||
|
|
||||||
|
tweaks_temp()
|
||||||
|
gnome_shell_version()
|
||||||
|
build_theme(ctx)
|
||||||
|
logger.info("Done!")
|
||||||
|
else:
|
||||||
|
accent = getattr(palette.colors, args.accent)
|
||||||
|
tweaks = Tweaks(tweaks=args.tweaks)
|
||||||
|
|
||||||
|
if args.zip:
|
||||||
|
output_format = 'zip'
|
||||||
|
else:
|
||||||
|
output_format = 'dir'
|
||||||
|
|
||||||
|
ctx = BuildContext(
|
||||||
|
build_root=args.dest,
|
||||||
|
theme_name=args.name,
|
||||||
|
flavor=palette,
|
||||||
|
accent=accent,
|
||||||
|
size=args.size,
|
||||||
|
tweaks=tweaks,
|
||||||
|
output_format=output_format
|
||||||
|
)
|
||||||
|
|
||||||
logger.info("Building temp tweaks file")
|
logger.info("Building temp tweaks file")
|
||||||
init_tweaks_temp()
|
tweaks_temp()
|
||||||
logger.info("Inserting gnome-shell imports")
|
logger.info("Inserting gnome-shell imports")
|
||||||
gnome_shell_version()
|
gnome_shell_version()
|
||||||
logger.info("Building main theme")
|
logger.info("Building main theme")
|
||||||
build_theme(ctx)
|
build_theme(ctx)
|
||||||
logger.info(f"Completed {palette.identifier} with {accent.identifier}")
|
|
||||||
|
|
||||||
logger.info("Done!")
|
logger.info("Done!")
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
main()
|
main()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error("Something went wrong when building the theme:", exc_info=e)
|
logger.error("Something went wrong when installing the theme:", exc_info=e)
|
||||||
|
2
colloid
2
colloid
Submodule colloid updated: 1a13048ea1...1cf28eac20
41
flake.lock
generated
41
flake.lock
generated
@@ -1,25 +1,58 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715961556,
|
"lastModified": 1714495772,
|
||||||
"narHash": "sha256-+NpbZRCRisUHKQJZF3CT+xn14ZZQO+KjxIIanH3Pvn4=",
|
"narHash": "sha256-BVkhvsIatul5lXMrnPvgKkpxL3zZGQlPbTgDlFJiYCo=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "4a6b83b05df1a8bd7d99095ec4b4d271f2956b64",
|
"rev": "c82cda9c0600a2785cda8e60962bcc9cc86862db",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
23
flake.nix
23
flake.nix
@@ -1,18 +1,17 @@
|
|||||||
{
|
{
|
||||||
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
inputs = {
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
};
|
||||||
|
|
||||||
outputs =
|
outputs = { self, nixpkgs, flake-utils, ... }:
|
||||||
{ nixpkgs, ... }:
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
let
|
let
|
||||||
forAllSystems =
|
pkgs = import nixpkgs { inherit system; };
|
||||||
function:
|
|
||||||
nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed (
|
|
||||||
system: function nixpkgs.legacyPackages.${system}
|
|
||||||
);
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
devShells = forAllSystems (pkgs: {
|
devShells.default = import ./shell.nix { inherit pkgs; };
|
||||||
default = pkgs.callPackage ./shell.nix { };
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
147
install.py
147
install.py
@@ -1,147 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
import os, zipfile, argparse, logging, io
|
|
||||||
from pathlib import Path
|
|
||||||
from dataclasses import dataclass
|
|
||||||
from urllib.request import urlopen, Request
|
|
||||||
|
|
||||||
logger = logging.getLogger("catppuccin-gtk")
|
|
||||||
logger.setLevel(logging.DEBUG)
|
|
||||||
ch = logging.StreamHandler()
|
|
||||||
formatter = logging.Formatter("[%(name)s] [%(levelname)s] - %(message)s")
|
|
||||||
ch.setFormatter(formatter)
|
|
||||||
logger.addHandler(ch)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class InstallContext:
|
|
||||||
flavor: str
|
|
||||||
accent: str
|
|
||||||
dest: Path
|
|
||||||
link: bool
|
|
||||||
|
|
||||||
|
|
||||||
def parse_args():
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument(
|
|
||||||
"flavor",
|
|
||||||
type=str,
|
|
||||||
choices=["mocha", "frappe", "macchiato", "latte"],
|
|
||||||
help="Flavor of the theme to apply.",
|
|
||||||
)
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"accent",
|
|
||||||
type=str,
|
|
||||||
default="mauve",
|
|
||||||
choices=[
|
|
||||||
"rosewater",
|
|
||||||
"flamingo",
|
|
||||||
"pink",
|
|
||||||
"mauve",
|
|
||||||
"red",
|
|
||||||
"maroon",
|
|
||||||
"peach",
|
|
||||||
"yellow",
|
|
||||||
"green",
|
|
||||||
"teal",
|
|
||||||
"sky",
|
|
||||||
"sapphire",
|
|
||||||
"blue",
|
|
||||||
"lavender",
|
|
||||||
"all",
|
|
||||||
],
|
|
||||||
help="Accent of the theme.",
|
|
||||||
)
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"--dest",
|
|
||||||
"-d",
|
|
||||||
type=str,
|
|
||||||
dest="dest",
|
|
||||||
help="Destination of the files.",
|
|
||||||
)
|
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"--link",
|
|
||||||
help="Whether to add symlinks for libadwaita",
|
|
||||||
type=bool,
|
|
||||||
default=False,
|
|
||||||
action=argparse.BooleanOptionalAction,
|
|
||||||
)
|
|
||||||
|
|
||||||
return parser.parse_args()
|
|
||||||
|
|
||||||
|
|
||||||
def build_release_url(ctx: InstallContext) -> str:
|
|
||||||
repo_root = "https://github.com/catppuccin/gtk/releases/download"
|
|
||||||
release = "v1.0.0-rc2"
|
|
||||||
zip_name = f"catppuccin-{ctx.flavor}-{ctx.accent}-standard+default.zip"
|
|
||||||
|
|
||||||
return f"{repo_root}/{release}/{zip_name}"
|
|
||||||
|
|
||||||
|
|
||||||
def install(ctx: InstallContext):
|
|
||||||
url = build_release_url(ctx)
|
|
||||||
build_info = f"""Installation info:
|
|
||||||
flavor: {ctx.flavor}
|
|
||||||
accent: {ctx.accent}
|
|
||||||
dest: {ctx.dest.absolute()}
|
|
||||||
link: {ctx.link}
|
|
||||||
|
|
||||||
remote_url: {url}"""
|
|
||||||
logger.info(build_info)
|
|
||||||
httprequest = Request(url)
|
|
||||||
|
|
||||||
zip_file = None
|
|
||||||
logger.info("Starting download...")
|
|
||||||
with urlopen(httprequest) as response:
|
|
||||||
logger.info(f"Response status: {response.status}")
|
|
||||||
zip_file = zipfile.ZipFile(io.BytesIO(response.read()))
|
|
||||||
logger.info("Download finished, zip is valid")
|
|
||||||
|
|
||||||
logger.info("Verifying download..")
|
|
||||||
first_bad_file = zip_file.testzip()
|
|
||||||
if first_bad_file is not None:
|
|
||||||
logger.error(f'Zip appears to be corrupt, first bad file is "{first_bad_file}"')
|
|
||||||
return
|
|
||||||
logger.info("Download verified")
|
|
||||||
|
|
||||||
logger.info("Extracting...")
|
|
||||||
zip_file.extractall(ctx.dest)
|
|
||||||
logger.info("Extraction complete")
|
|
||||||
|
|
||||||
if ctx.link:
|
|
||||||
dir_name = (ctx.dest / f"catppuccin-{ctx.flavor}-{ctx.accent}-standard+default" / 'gtk-4.0').absolute()
|
|
||||||
gtk4_dir = (Path(os.path.expanduser('~')) / '.config' / 'gtk-4.0').absolute()
|
|
||||||
os.makedirs(gtk4_dir, exist_ok=True)
|
|
||||||
|
|
||||||
logger.info("Adding symlinks for libadwaita")
|
|
||||||
logger.info(f'Root: {dir_name}')
|
|
||||||
logger.info(f'Target: {gtk4_dir}')
|
|
||||||
os.symlink(dir_name / 'assets', gtk4_dir / 'assets')
|
|
||||||
os.symlink(dir_name / 'gtk.css', gtk4_dir / 'gtk.css')
|
|
||||||
os.symlink(dir_name / 'gtk-dark.css', gtk4_dir / 'gtk-dark.css')
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
args = parse_args()
|
|
||||||
dest = Path(os.path.expanduser("~")) / ".local" / "share" / "themes"
|
|
||||||
os.makedirs(dest, exist_ok=True)
|
|
||||||
|
|
||||||
if args.dest:
|
|
||||||
dest = Path(args.dest)
|
|
||||||
|
|
||||||
ctx = InstallContext(
|
|
||||||
flavor=args.flavor, accent=args.accent, dest=dest, link=args.link
|
|
||||||
)
|
|
||||||
|
|
||||||
install(ctx)
|
|
||||||
|
|
||||||
logger.info('Theme installation complete!')
|
|
||||||
|
|
||||||
|
|
||||||
try:
|
|
||||||
main()
|
|
||||||
except Exception as e:
|
|
||||||
logger.error("Something went wrong when installing the theme:", exc_info=e)
|
|
@@ -16,35 +16,35 @@ index 00000000..8a905942
|
|||||||
+
|
+
|
||||||
+// Red
|
+// Red
|
||||||
+$red-light: #{{ palette.red.hex }};
|
+$red-light: #{{ palette.red.hex }};
|
||||||
+$red-dark: #{{ palette.red.hex }};
|
+$red-dark: #{{ palette.red | mod(lightness=30) | get(key="hex") }};
|
||||||
+
|
+
|
||||||
+// Pink
|
+// Pink
|
||||||
+$pink-light: #{{ palette.pink.hex }};
|
+$pink-light: #{{ palette.pink.hex }};
|
||||||
+$pink-dark: #{{ palette.pink.hex }};
|
+$pink-dark: #{{ palette.pink | mod(lightness=30) | get(key="hex") }};
|
||||||
+
|
+
|
||||||
+// Purple
|
+// Purple
|
||||||
+$purple-light: #{{ palette.mauve.hex }};
|
+$purple-light: #{{ palette.mauve.hex }};
|
||||||
+$purple-dark: #{{ palette.mauve.hex }};
|
+$purple-dark: #{{ palette.mauve | mod(lightness=30) | get(key="hex") }};
|
||||||
+
|
+
|
||||||
+// Blue
|
+// Blue
|
||||||
+$blue-light: #{{ palette.blue.hex }};
|
+$blue-light: #{{ palette.blue.hex }};
|
||||||
+$blue-dark: #{{ palette.blue.hex }};
|
+$blue-dark: #{{ palette.blue | mod(lightness=30) | get(key="hex") }};
|
||||||
+
|
+
|
||||||
+// Teal
|
+// Teal
|
||||||
+$teal-light: #{{ palette.teal.hex }};
|
+$teal-light: #{{ palette.teal.hex }};
|
||||||
+$teal-dark: #{{ palette.teal.hex }};
|
+$teal-dark: #{{ palette.teal | mod(lightness=30) | get(key="hex") }};
|
||||||
+
|
+
|
||||||
+// Green
|
+// Green
|
||||||
+$green-light: #{{ palette.green.hex }};
|
+$green-light: #{{ palette.green.hex }};
|
||||||
+$green-dark: #{{ palette.green.hex }};
|
+$green-dark: #{{ palette.green | mod(lightness=30) | get(key="hex") }};
|
||||||
+
|
+
|
||||||
+// Yellow
|
+// Yellow
|
||||||
+$yellow-light: #{{ palette.yellow.hex }};
|
+$yellow-light: #{{ palette.yellow.hex }};
|
||||||
+$yellow-dark: #{{ palette.yellow.hex }};
|
+$yellow-dark: #{{ palette.yellow | mod(lightness=30) | get(key="hex") }};
|
||||||
+
|
+
|
||||||
+// Orange
|
+// Orange
|
||||||
+$orange-light: #{{ palette.peach.hex }};
|
+$orange-light: #{{ palette.peach.hex }};
|
||||||
+$orange-dark: #{{ palette.peach.hex }};
|
+$orange-dark: #{{ palette.peach | mod(lightness=30) | get(key="hex") }};
|
||||||
+
|
+
|
||||||
+// Grey
|
+// Grey
|
||||||
+$grey-050: #{{ palette.text.hex }};
|
+$grey-050: #{{ palette.text.hex }};
|
||||||
|
47
patches/colloid/sass-colors.patch
Normal file
47
patches/colloid/sass-colors.patch
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
diff --git a/src/sass/_colors.scss b/src/sass/_colors.scss
|
||||||
|
index e8366fa0..97fa670c 100644
|
||||||
|
--- a/src/sass/_colors.scss
|
||||||
|
+++ b/src/sass/_colors.scss
|
||||||
|
@@ -57,9 +57,8 @@
|
||||||
|
@else { @return rgba($white, 0.1); }
|
||||||
|
}
|
||||||
|
|
||||||
|
-@function theme($color) {
|
||||||
|
+@function theme() {
|
||||||
|
@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; }
|
||||||
|
@@ -68,8 +67,9 @@
|
||||||
|
@if ($theme == 'green') { @return $green-dark; }
|
||||||
|
@if ($theme == 'teal') { @return $teal-dark; }
|
||||||
|
@if ($theme == 'grey') { @return $grey-600; }
|
||||||
|
+
|
||||||
|
+ @return $default-dark;
|
||||||
|
} @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; }
|
||||||
|
@@ -78,6 +78,8 @@
|
||||||
|
@if ($theme == 'green') { @return $green-light; }
|
||||||
|
@if ($theme == 'teal') { @return $teal-light; }
|
||||||
|
@if ($theme == 'grey') { @return $grey-200; }
|
||||||
|
+
|
||||||
|
+ @return $default-light;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -113,9 +115,9 @@
|
||||||
|
// Basic colors
|
||||||
|
//
|
||||||
|
|
||||||
|
-$primary: theme(color);
|
||||||
|
+$primary: theme();
|
||||||
|
$drop_target_color: $orange-dark;
|
||||||
|
-$indicator: theme(color);
|
||||||
|
+$indicator: theme();
|
||||||
|
$titlebar-indicator: if($variant == 'dark', currentColor, $primary);
|
||||||
|
$inverse-indicator: if($theme == 'grey', $white, $primary);
|
||||||
|
$applet-primary: if($theme == 'grey' and variant == 'light' and $topbar == 'dark', $grey-200, $primary);
|
@@ -8,35 +8,35 @@ index 00000000..8a905942
|
|||||||
+
|
+
|
||||||
+// Red
|
+// Red
|
||||||
+$red-light: #e78284;
|
+$red-light: #e78284;
|
||||||
+$red-dark: #e78284;
|
+$red-dark: #81191b;
|
||||||
+
|
+
|
||||||
+// Pink
|
+// Pink
|
||||||
+$pink-light: #f4b8e4;
|
+$pink-light: #f4b8e4;
|
||||||
+$pink-dark: #f4b8e4;
|
+$pink-dark: #851567;
|
||||||
+
|
+
|
||||||
+// Purple
|
+// Purple
|
||||||
+$purple-light: #ca9ee6;
|
+$purple-light: #ca9ee6;
|
||||||
+$purple-dark: #ca9ee6;
|
+$purple-dark: #58207a;
|
||||||
+
|
+
|
||||||
+// Blue
|
+// Blue
|
||||||
+$blue-light: #8caaee;
|
+$blue-light: #8caaee;
|
||||||
+$blue-dark: #8caaee;
|
+$blue-dark: #143686;
|
||||||
+
|
+
|
||||||
+// Teal
|
+// Teal
|
||||||
+$teal-light: #81c8be;
|
+$teal-light: #81c8be;
|
||||||
+$teal-dark: #81c8be;
|
+$teal-dark: #2f6b63;
|
||||||
+
|
+
|
||||||
+// Green
|
+// Green
|
||||||
+$green-light: #a6d189;
|
+$green-light: #a6d189;
|
||||||
+$green-dark: #a6d189;
|
+$green-dark: #466f2b;
|
||||||
+
|
+
|
||||||
+// Yellow
|
+// Yellow
|
||||||
+$yellow-light: #e5c890;
|
+$yellow-light: #e5c890;
|
||||||
+$yellow-dark: #e5c890;
|
+$yellow-dark: #7d5d1d;
|
||||||
+
|
+
|
||||||
+// Orange
|
+// Orange
|
||||||
+$orange-light: #ef9f76;
|
+$orange-light: #ef9f76;
|
||||||
+$orange-dark: #ef9f76;
|
+$orange-dark: #8a3910;
|
||||||
+
|
+
|
||||||
+// Grey
|
+// Grey
|
||||||
+$grey-050: #c6d0f5;
|
+$grey-050: #c6d0f5;
|
||||||
|
@@ -8,35 +8,35 @@ index 00000000..8a905942
|
|||||||
+
|
+
|
||||||
+// Red
|
+// Red
|
||||||
+$red-light: #d20f39;
|
+$red-light: #d20f39;
|
||||||
+$red-dark: #d20f39;
|
+$red-dark: #900a27;
|
||||||
+
|
+
|
||||||
+// Pink
|
+// Pink
|
||||||
+$pink-light: #ea76cb;
|
+$pink-light: #ea76cb;
|
||||||
+$pink-dark: #ea76cb;
|
+$pink-dark: #851567;
|
||||||
+
|
+
|
||||||
+// Purple
|
+// Purple
|
||||||
+$purple-light: #8839ef;
|
+$purple-light: #8839ef;
|
||||||
+$purple-dark: #8839ef;
|
+$purple-dark: #440b8f;
|
||||||
+
|
+
|
||||||
+// Blue
|
+// Blue
|
||||||
+$blue-light: #1e66f5;
|
+$blue-light: #1e66f5;
|
||||||
+$blue-dark: #1e66f5;
|
+$blue-dark: #073693;
|
||||||
+
|
+
|
||||||
+// Teal
|
+// Teal
|
||||||
+$teal-light: #179299;
|
+$teal-light: #179299;
|
||||||
+$teal-dark: #179299;
|
+$teal-dark: #148086;
|
||||||
+
|
+
|
||||||
+// Green
|
+// Green
|
||||||
+$green-light: #40a02b;
|
+$green-light: #40a02b;
|
||||||
+$green-dark: #40a02b;
|
+$green-dark: #317921;
|
||||||
+
|
+
|
||||||
+// Yellow
|
+// Yellow
|
||||||
+$yellow-light: #df8e1d;
|
+$yellow-light: #df8e1d;
|
||||||
+$yellow-dark: #df8e1d;
|
+$yellow-dark: #885712;
|
||||||
+
|
+
|
||||||
+// Orange
|
+// Orange
|
||||||
+$orange-light: #fe640b;
|
+$orange-light: #fe640b;
|
||||||
+$orange-dark: #fe640b;
|
+$orange-dark: #993901;
|
||||||
+
|
+
|
||||||
+// Grey
|
+// Grey
|
||||||
+$grey-050: #4c4f69;
|
+$grey-050: #4c4f69;
|
||||||
|
@@ -8,35 +8,35 @@ index 00000000..8a905942
|
|||||||
+
|
+
|
||||||
+// Red
|
+// Red
|
||||||
+$red-light: #ed8796;
|
+$red-light: #ed8796;
|
||||||
+$red-dark: #ed8796;
|
+$red-dark: #861425;
|
||||||
+
|
+
|
||||||
+// Pink
|
+// Pink
|
||||||
+$pink-light: #f5bde6;
|
+$pink-light: #f5bde6;
|
||||||
+$pink-dark: #f5bde6;
|
+$pink-dark: #861467;
|
||||||
+
|
+
|
||||||
+// Purple
|
+// Purple
|
||||||
+$purple-light: #c6a0f6;
|
+$purple-light: #c6a0f6;
|
||||||
+$purple-dark: #c6a0f6;
|
+$purple-dark: #470d8d;
|
||||||
+
|
+
|
||||||
+// Blue
|
+// Blue
|
||||||
+$blue-light: #8aadf4;
|
+$blue-light: #8aadf4;
|
||||||
+$blue-dark: #8aadf4;
|
+$blue-dark: #0d388d;
|
||||||
+
|
+
|
||||||
+// Teal
|
+// Teal
|
||||||
+$teal-light: #8bd5ca;
|
+$teal-light: #8bd5ca;
|
||||||
+$teal-dark: #8bd5ca;
|
+$teal-dark: #297166;
|
||||||
+
|
+
|
||||||
+// Green
|
+// Green
|
||||||
+$green-light: #a6da95;
|
+$green-light: #a6da95;
|
||||||
+$green-dark: #a6da95;
|
+$green-dark: #3a7228;
|
||||||
+
|
+
|
||||||
+// Yellow
|
+// Yellow
|
||||||
+$yellow-light: #eed49f;
|
+$yellow-light: #eed49f;
|
||||||
+$yellow-dark: #eed49f;
|
+$yellow-dark: #835f17;
|
||||||
+
|
+
|
||||||
+// Orange
|
+// Orange
|
||||||
+$orange-light: #f5a97f;
|
+$orange-light: #f5a97f;
|
||||||
+$orange-dark: #f5a97f;
|
+$orange-dark: #8f390b;
|
||||||
+
|
+
|
||||||
+// Grey
|
+// Grey
|
||||||
+$grey-050: #cad3f5;
|
+$grey-050: #cad3f5;
|
||||||
|
@@ -8,35 +8,35 @@ index 00000000..8a905942
|
|||||||
+
|
+
|
||||||
+// Red
|
+// Red
|
||||||
+$red-light: #f38ba8;
|
+$red-light: #f38ba8;
|
||||||
+$red-dark: #f38ba8;
|
+$red-dark: #8c0e32;
|
||||||
+
|
+
|
||||||
+// Pink
|
+// Pink
|
||||||
+$pink-light: #f5c2e7;
|
+$pink-light: #f5c2e7;
|
||||||
+$pink-dark: #f5c2e7;
|
+$pink-dark: #841667;
|
||||||
+
|
+
|
||||||
+// Purple
|
+// Purple
|
||||||
+$purple-light: #cba6f7;
|
+$purple-light: #cba6f7;
|
||||||
+$purple-dark: #cba6f7;
|
+$purple-dark: #470d8d;
|
||||||
+
|
+
|
||||||
+// Blue
|
+// Blue
|
||||||
+$blue-light: #89b4fa;
|
+$blue-light: #89b4fa;
|
||||||
+$blue-dark: #89b4fa;
|
+$blue-dark: #063d94;
|
||||||
+
|
+
|
||||||
+// Teal
|
+// Teal
|
||||||
+$teal-light: #94e2d5;
|
+$teal-light: #94e2d5;
|
||||||
+$teal-dark: #94e2d5;
|
+$teal-dark: #21796a;
|
||||||
+
|
+
|
||||||
+// Green
|
+// Green
|
||||||
+$green-light: #a6e3a1;
|
+$green-light: #a6e3a1;
|
||||||
+$green-dark: #a6e3a1;
|
+$green-dark: #2a7723;
|
||||||
+
|
+
|
||||||
+// Yellow
|
+// Yellow
|
||||||
+$yellow-light: #f9e2af;
|
+$yellow-light: #f9e2af;
|
||||||
+$yellow-dark: #f9e2af;
|
+$yellow-dark: #8f650b;
|
||||||
+
|
+
|
||||||
+// Orange
|
+// Orange
|
||||||
+$orange-light: #fab387;
|
+$orange-light: #fab387;
|
||||||
+$orange-dark: #fab387;
|
+$orange-dark: #943c06;
|
||||||
+
|
+
|
||||||
+// Grey
|
+// Grey
|
||||||
+$grey-050: #cdd6f4;
|
+$grey-050: #cdd6f4;
|
||||||
|
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
||||||
"extends": [
|
|
||||||
"config:recommended"
|
|
||||||
],
|
|
||||||
"git-submodules": {
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user