Compare commits
17 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
7c470654a7 | ||
|
50e9e0120b | ||
|
f2b5321c23 | ||
|
ade94e3bd6 | ||
|
a9cbb4cf93 | ||
|
9e75eac1e5 | ||
|
01ea28f3a3 | ||
|
538067923b | ||
|
a53263bad2 | ||
|
45df79e72c | ||
|
ed3abe04f8 | ||
|
e907775723 | ||
|
c79e453e62 | ||
|
68167565f7 | ||
|
7e40f9c9ab | ||
|
41d54ae759 | ||
|
382e960588 |
33
.github/ISSUE_TEMPLATE/bug-report.md
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a bug report about the GTK theme.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**Mention your distribution and your theme version**
|
||||
Please mention your Linux distribution and the theme version you've installed.
|
||||
|
||||
**Select how you installed the theme**
|
||||
- [ ] GitHub Releases
|
||||
- [ ] AUR package
|
||||
- [ ] Nixpkg
|
||||
- [ ] Using the python install script <!-- If you installed using the python script, please mention the command that you ran for installation. -->
|
||||
- [ ] Flatpak
|
||||
|
||||
**Symlinked the gtk-4.0 folder?**
|
||||
Have you symlinked the `gtk-4.0` folder as mentioned in the [README](https://github.com/catppuccin/gtk/blob/e907775723eb68a5628c1bcd718b9d822cea9aee/README.md?plain=1#L85-L93)? **This is not applicable for users who have installed the theme with the Nixpkg.**
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If possible, please share screenshots of the bug you've encountered.
|
||||
|
||||
**Additional context**
|
||||
Please mention any additional context that might be applicable.
|
6
.github/workflows/release.yml
vendored
@@ -20,10 +20,10 @@ jobs:
|
||||
cache: 'pip'
|
||||
- name: Install dependencies
|
||||
run: pip install -r requirements.txt
|
||||
- name: Install colloid specific deps
|
||||
run: sudo apt-get install sassc
|
||||
- name: Install colloid specific dependencies
|
||||
run: sudo apt update && sudo apt install -y sassc inkscape optipng
|
||||
- name: Generate themes
|
||||
run: python ./install.py all -a all --zip -d $PWD/releases
|
||||
run: python ./install.py all -a all --zip -d $PWD/releases --recreate-asset
|
||||
- name: Add zips to release
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
|
3
.gitignore
vendored
@@ -2,7 +2,8 @@ pkgs/
|
||||
*-temp.scss
|
||||
__pycache__
|
||||
venv/
|
||||
.venv
|
||||
|
||||
# Releases folder
|
||||
releases
|
||||
chrome
|
||||
chrome
|
||||
|
49
README.md
@@ -45,11 +45,47 @@ With your favourite AUR helper, install them:
|
||||
```bash
|
||||
yay -S catppuccin-gtk-theme-mocha catppuccin-gtk-theme-macchiato catppuccin-gtk-theme-frappe catppuccin-gtk-theme-latte
|
||||
```
|
||||
### For Nix users
|
||||
The [catppuccin-gtk](https://github.com/NixOS/nixpkgs/blob/master/pkgs/data/themes/catppuccin-gtk/default.nix) package in Nixpkgs allows you to specify the accents, size, tweaks and variant (flavour) of the theme by overriding the package.
|
||||
|
||||
By default, the variant is `frappe`, the accent is `blue`, the size is `standard`, and no tweaks are enabled. To change them, override the package. A list of valid choices are available in the package definition [here](https://github.com/NixOS/nixpkgs/blob/7ce8e7c4cf90492a631e96bcfe70724104914381/pkgs/data/themes/catppuccin-gtk/default.nix#L16).
|
||||
|
||||
Example:
|
||||
```nix
|
||||
pkgs.catppuccin-gtk.override {
|
||||
accents = [ "pink" ]; # You can specify multiple accents here to output multiple themes
|
||||
size = "compact";
|
||||
tweaks = [ "rimless" "black" ]; # You can also specify multiple tweaks here
|
||||
variant = "macchiato";
|
||||
}
|
||||
```
|
||||
|
||||
To use it in home-manager:
|
||||
```nix
|
||||
# home.nix
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "Catppuccin-Macchiato-Compact-Pink-Dark";
|
||||
package = pkgs.catppuccin-gtk.override {
|
||||
accents = [ "pink" ];
|
||||
size = "compact";
|
||||
tweaks = [ "rimless" "black" ];
|
||||
variant = "macchiato";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
### For gtk-4.0 users
|
||||
|
||||
To theme gtk-4.0 applications you have to manually symlink the `~/.config/gtk-4.0/` to the themes folder. Use the following commands
|
||||
```
|
||||
```bash
|
||||
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"
|
||||
@@ -112,11 +148,16 @@ 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.
|
||||
- `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
|
||||
|
||||
|
2
colloid
@@ -76,6 +76,13 @@ parser.add_argument("--zip",
|
||||
action=argparse.BooleanOptionalAction,
|
||||
dest="zip")
|
||||
|
||||
parser.add_argument("--recreate-asset",
|
||||
help="Recreate assets for xfwm4 and such",
|
||||
type=bool,
|
||||
default=False,
|
||||
action=argparse.BooleanOptionalAction,
|
||||
dest="rec_asset")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
if "all" in args.flavor:
|
||||
@@ -99,4 +106,4 @@ if not os.listdir(work_dir):
|
||||
subprocess.call("git submodule update --init --recursive", shell=True)
|
||||
|
||||
filename = create_theme(flavors, accents, dest,
|
||||
args.link, args.name, args.size, args.tweaks, args.zip)
|
||||
args.link, args.name, args.size, args.tweaks, args.zip, args.rec_asset)
|
||||
|
1543
patches/xfwm4/assets-Catppuccin-frappe-Normal.svg
Normal file
After Width: | Height: | Size: 60 KiB |
1328
patches/xfwm4/assets-Catppuccin-frappe.svg
Normal file
After Width: | Height: | Size: 49 KiB |
1543
patches/xfwm4/assets-Catppuccin-latte-Normal.svg
Normal file
After Width: | Height: | Size: 60 KiB |
1328
patches/xfwm4/assets-Catppuccin-latte.svg
Normal file
After Width: | Height: | Size: 49 KiB |
1543
patches/xfwm4/assets-Catppuccin-macchiato-Normal.svg
Normal file
After Width: | Height: | Size: 60 KiB |
1328
patches/xfwm4/assets-Catppuccin-macchiato.svg
Normal file
After Width: | Height: | Size: 49 KiB |
1543
patches/xfwm4/assets-Catppuccin-mocha-Normal.svg
Normal file
After Width: | Height: | Size: 60 KiB |
1328
patches/xfwm4/assets-Catppuccin-mocha.svg
Normal file
After Width: | Height: | Size: 49 KiB |
1546
patches/xfwm4/assets-Light-Catppuccin-frappe-Normal.svg
Normal file
After Width: | Height: | Size: 60 KiB |
1368
patches/xfwm4/assets-Light-Catppuccin-frappe.svg
Normal file
After Width: | Height: | Size: 49 KiB |
1546
patches/xfwm4/assets-Light-Catppuccin-latte-Normal.svg
Normal file
After Width: | Height: | Size: 60 KiB |
1368
patches/xfwm4/assets-Light-Catppuccin-latte.svg
Normal file
After Width: | Height: | Size: 49 KiB |
1546
patches/xfwm4/assets-Light-Catppuccin-macchiato-Normal.svg
Normal file
After Width: | Height: | Size: 60 KiB |
1368
patches/xfwm4/assets-Light-Catppuccin-macchiato.svg
Normal file
After Width: | Height: | Size: 49 KiB |
1546
patches/xfwm4/assets-Light-Catppuccin-mocha-Normal.svg
Normal file
After Width: | Height: | Size: 60 KiB |
1368
patches/xfwm4/assets-Light-Catppuccin-mocha.svg
Normal file
After Width: | Height: | Size: 49 KiB |
@@ -4,13 +4,14 @@ import subprocess
|
||||
from typing import List
|
||||
|
||||
from scripts.ctp_colors import ctp_colors
|
||||
from scripts.patches import recreate_xfwm4_assets
|
||||
from scripts.recolor import recolor
|
||||
from scripts.utils import zip_multiple_folders
|
||||
from scripts.var import def_color_map, repo_dir, src_dir, theme_name, work_dir
|
||||
|
||||
|
||||
def create_theme(types: List[str], accents: List[str], dest: str, link: bool = False,
|
||||
name: str = theme_name, size: str = "standard", tweaks=[], zip = False) -> None:
|
||||
name: str = theme_name, size: str = "standard", tweaks=[], zip = False, recreate_assets = False) -> None:
|
||||
|
||||
try:
|
||||
os.makedirs(dest) # Create our destination directory
|
||||
@@ -18,6 +19,9 @@ def create_theme(types: List[str], accents: List[str], dest: str, link: bool = F
|
||||
pass
|
||||
|
||||
for type in types:
|
||||
if recreate_assets:
|
||||
recreate_xfwm4_assets(type)
|
||||
|
||||
for accent in accents:
|
||||
# Recolor colloid wrt our selection like mocha. latte
|
||||
recolor(ctp_colors[type], accent)
|
||||
@@ -35,8 +39,8 @@ def create_theme(types: List[str], accents: List[str], dest: str, link: bool = F
|
||||
try:
|
||||
# Rename colloid generated files as per catppuccin
|
||||
new_filename = dest + \
|
||||
f"/{theme_name}-{type.capitalize()}-{size.capitalize()}-{accent.capitalize()}-{theme_style.title()}"
|
||||
filename = f"{theme_name}"
|
||||
f"/{name}-{type.capitalize()}-{size.capitalize()}-{accent.capitalize()}-{theme_style.title()}"
|
||||
filename = f"{name}"
|
||||
if def_color_map[accent] != 'default':
|
||||
filename += f"-{def_color_map[accent].capitalize()}"
|
||||
filename += f"-{theme_style.capitalize()}"
|
||||
|
32
scripts/patches.py
Normal file
@@ -0,0 +1,32 @@
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from scripts.var import src_dir, repo_dir, work_dir
|
||||
|
||||
def recreate_xfwm4_assets(flavour):
|
||||
"""
|
||||
Recolors xfwm4 assets based on the flavour
|
||||
|
||||
Args:
|
||||
flavour (Flavour): The flavour to recolor
|
||||
"""
|
||||
|
||||
# Delete assets that already exists and copy new assets file
|
||||
folders = ["assets", "assets-Light"]
|
||||
variants = ["", "-Normal"]
|
||||
sizes = ["", "-hdpi", "-xhdpi"]
|
||||
assets_folder = f"{src_dir}/assets/xfwm4"
|
||||
|
||||
for folder in folders:
|
||||
for variant in variants:
|
||||
for size in sizes:
|
||||
shutil.rmtree(f"{assets_folder}/{folder}{variant}{size}", ignore_errors=True)
|
||||
|
||||
|
||||
patched_asset = f"{repo_dir}/patches/xfwm4/{folder}-Catppuccin-{flavour}{variant}.svg"
|
||||
shutil.copy(patched_asset, f"{assets_folder}/{folder}{variant}.svg")
|
||||
|
||||
os.chdir(assets_folder)
|
||||
subprocess.call(f"{assets_folder}/render-assets.sh", shell=True) # Rebuild all assets
|
||||
os.chdir(work_dir)
|
@@ -1,8 +1,7 @@
|
||||
from catppuccin import Flavour
|
||||
|
||||
from .utils import replacetext, replaceAllText
|
||||
from .var import (def_accent_dark, def_accent_light, def_color_map, src_dir,
|
||||
theme_name, work_dir)
|
||||
from .var import (def_accent_dark, def_accent_light, def_color_map, src_dir, work_dir)
|
||||
|
||||
|
||||
def recolor_accent(flavor, accent: str = "blue"):
|
||||
@@ -71,10 +70,9 @@ def recolor(flavor, accent: str):
|
||||
Recolor the theme. currently hard code it frappe
|
||||
"""
|
||||
print("Recoloring to suit catppuccin theme")
|
||||
replacetext(f"{work_dir}/install.sh", "Colloid", theme_name)
|
||||
|
||||
print("Recoloring accents")
|
||||
recolor_accent(flavor, accent)
|
||||
print("Recoloring firefox")
|
||||
recolor_firefox(flavor, accent)
|
||||
|
||||
print("MOD: Gtkrc.sh")
|
||||
|
@@ -25,7 +25,7 @@ def replacetext(filepath: str, search_text: str, replace_text: str) -> None:
|
||||
f.seek(0)
|
||||
f.write(file)
|
||||
f.truncate()
|
||||
except Exception as e:
|
||||
except Exception:
|
||||
print(f"Failed to recolor {filepath}")
|
||||
|
||||
|
||||
|