diff --git a/generate-themes.py b/generate-themes.py index 57bef92eb..172152777 100755 --- a/generate-themes.py +++ b/generate-themes.py @@ -1,5 +1,6 @@ -#!/usr/bin/python3 +#!/usr/bin/env python3 import os +import threading from constants import X_HEX_ACCENTS, X_RGB_ACCENTS, x_hex_colors, x_rgb_colors from constants import Y_HEX_ACCENT1, Y_HEX_ACCENT2 @@ -7,15 +8,14 @@ def x_colorize_directory (path, variation): for accent in X_HEX_ACCENTS: - os.system("find %s -name '*.*' -type f -exec sed -i 's/%s/%s/gI' {} \\;" % (path, accent, x_hex_colors[variation])) + os.system(f"find {path} -name '*.*' -type f -exec sed -i 's/{accent}/{x_hex_colors[variation]}/gI' {{}} \\;") for accent in X_RGB_ACCENTS: - os.system("find %s -name '*.*' -type f -exec sed -i 's/%s/%s/gI' {} \\;" % (path, accent, x_rgb_colors[variation])) - + os.system(f"find {path} -name '*.*' -type f -exec sed -i 's/{accent}/{x_rgb_colors[variation]}/gI' {{}} \\;") def y_colorize_directory (path, variation): for accent in Y_HEX_ACCENT1: - os.system("find %s -name '*.*' -type f -exec sed -i 's/%s/%s/gI' {} \\;" % (path, accent, y_hex_colors1[variation])) + os.system(f"find {path} -name '*.*' -type f -exec sed -i 's/{accent}/{y_hex_colors1[variation]}/gI' {{}} \\;") for accent in Y_HEX_ACCENT2: - os.system("find %s -name '*.*' -type f -exec sed -i 's/%s/%s/gI' {} \\;" % (path, accent, y_hex_colors2[variation])) + os.system(f"find {path} -name '*.*' -type f -exec sed -i 's/{accent}/{y_hex_colors2[variation]}/gI' {{}} \\;") if os.path.exists("usr"): os.system("rm -rf usr/") @@ -25,82 +25,86 @@ def y_colorize_directory (path, variation): os.system("mkdir -p usr/share/themes") # Mint-X ################################################################## +def xBuildGtk(gtk:str) -> None: + os.chdir(f"src/Mint-X/theme/Mint-X/{gtk}/") + os.system("pysassc ./sass/gtk.scss gtk.css") + os.system("pysassc ./sass/gtk-dark.scss gtk-dark.css") + os.chdir(start_dir) -# First build the Gtk4 css -os.chdir("src/Mint-X/theme/Mint-X/gtk-4.0/") -os.system("pysassc ./sass/gtk.scss gtk.css") -os.system("pysassc ./sass/gtk-dark.scss gtk-dark.css") -os.chdir(start_dir) - -# Then the Gtk3 css -os.chdir("src/Mint-X/theme/Mint-X/gtk-3.0/") -os.system("pysassc ./sass/gtk.scss gtk.css") -os.system("pysassc ./sass/gtk-dark.scss gtk-dark.css") -os.chdir(start_dir) +xBuildGtk("gtk-4.0") +xBuildGtk("gtk-3.0") os.system("cp -R src/Mint-X/theme/* usr/share/themes/") +def xDerivateGtk(theme:str, gtk:str) -> None: + sass_dir = os.path.join(theme, gtk) + os.system(f""" + cd {sass_dir} + pysassc ./sass/gtk.scss gtk.css + pysassc ./sass/gtk-dark.scss gtk-dark.css + rm -rf sass parse-sass.sh + """) + +def xDerivateCinnamon(color:str, theme:str) -> None: + file = os.path.join(theme, "cinnamon", "theme.json") + if os.path.exists(file): + os.system(f"sed -i s'/Mint-X/Mint-X-{color}/' {file}") + + # Cinnamon colors + file = os.path.join(theme, "cinnamon", "cinnamon.css") + if os.path.exists(file): + for accent in X_HEX_ACCENTS: + os.system(f"sed -i s'/{accent}/{x_hex_colors[color]}/' {file}") + for accent in X_RGB_ACCENTS: + os.system(f"sed -i s'/{accent}/{x_rgb_colors[color]}/' {file}") + +def xDerivateOpenbox(theme:str, color:str) -> None: + file = os.path.join(theme, "openbox-3", 'themerc') + if os.path.exists(file): + for accent in X_HEX_ACCENTS: + os.system(f"sed -i s'/{accent}/{x_hex_colors[color]}/' {file}") + +def xAccentRecolorFile(theme:str, color:str) -> None: + accent_files = [] + accent_files.append(os.path.join(theme, "gtk-2.0", "gtkrc")) + accent_files.append(os.path.join(theme, "gtk-3.0", "settings.ini")) + accent_files.append(os.path.join(theme, "gtk-3.0", "sass", "_colors.scss")) + accent_files.append(os.path.join(theme, "gtk-4.0", "sass", "_colors.scss")) + accent_files.append(os.path.join(theme, "libadwaita-1.5", "defaults-light.css")) + accent_files.append(os.path.join(theme, "libadapta-1.5", "defaults-light.css")) + accent_files.append(os.path.join(theme, "libadwaita-1.5", "defaults-dark.css")) + accent_files.append(os.path.join(theme, "libadapta-1.5", "defaults-dark.css")) + accent_files.append(os.path.join(theme, "libadwaita-1.7", "defaults-light.css")) + accent_files.append(os.path.join(theme, "libadwaita-1.7", "defaults-dark.css")) + for file in accent_files: + if not os.path.exists(file): + continue + + for accent in X_HEX_ACCENTS: + os.system(f"sed -i s'/{accent}/{x_hex_colors[color]}/gI' {file}") + # Now do the other themes and color variations -for color in os.listdir("src/Mint-X/variations"): +def xGenTheme(color:str): path = os.path.join("src/Mint-X/variations", color) - if os.path.isdir(path): - theme = "usr/share/themes/Mint-X-%s" % color - os.system("cp -R usr/share/themes/Mint-X %s" % theme) - os.system("cp -R src/Mint-X/variations/%s/* %s/" % (color, theme)) + if not os.path.isdir(path): + exit() - # Accent color - accent_files = [] - accent_files.append(os.path.join(theme, "gtk-2.0", "gtkrc")) - accent_files.append(os.path.join(theme, "gtk-3.0", "settings.ini")) - accent_files.append(os.path.join(theme, "gtk-3.0", "sass", "_colors.scss")) - accent_files.append(os.path.join(theme, "gtk-4.0", "sass", "_colors.scss")) - accent_files.append(os.path.join(theme, "libadwaita-1.5", "defaults-light.css")) - accent_files.append(os.path.join(theme, "libadwaita-1.5", "defaults-dark.css")) - accent_files.append(os.path.join(theme, "libadwaita-1.7", "defaults-light.css")) - accent_files.append(os.path.join(theme, "libadwaita-1.7", "defaults-dark.css")) - for file in accent_files: - for accent in X_HEX_ACCENTS: - os.system("sed -i s'/%(accent)s/%(color_accent)s/' %(file)s" % {'accent': accent, 'color_accent': x_hex_colors[color], 'file': file}) - - # Build sass - sass_dir = os.path.join(theme, "gtk-4.0") - os.chdir(sass_dir) - os.system("pysassc ./sass/gtk.scss gtk.css") - os.system("pysassc ./sass/gtk-dark.scss gtk-dark.css") - os.system("rm -rf sass parse-sass.sh") - os.chdir(start_dir) - - sass_dir = os.path.join(theme, "gtk-3.0") - os.chdir(sass_dir) - os.system("pysassc ./sass/gtk.scss gtk.css") - os.system("pysassc ./sass/gtk-dark.scss gtk-dark.css") - os.system("rm -rf sass parse-sass.sh") - os.chdir(start_dir) - - # Cinnamon theme name - file = os.path.join(theme, "cinnamon", "theme.json") - if os.path.exists(file): - os.system("sed -i s'/Mint-X/Mint-X-%(color)s/' %(file)s" % {'color': color, 'file': file}) - - # Cinnamon colors - file = os.path.join(theme, "cinnamon", "cinnamon.css") - if os.path.exists(file): - for accent in X_HEX_ACCENTS: - os.system("sed -i s'/%(accent)s/%(color_accent)s/' %(file)s" % {'accent': accent, 'color_accent': x_hex_colors[color], 'file': file}) - for accent in X_RGB_ACCENTS: - os.system("sed -i s'/%(accent)s/%(color_accent)s/' %(file)s" % {'accent': accent, 'color_accent': x_rgb_colors[color], 'file': file}) - - # Openbox colors - file = os.path.join(theme, "openbox-3", 'themerc') - if os.path.exists(file): - for accent in X_HEX_ACCENTS: - os.system("sed -i s'/%(accent)s/%(color_accent)s/' %(file)s" % {'accent': accent, 'color_accent': x_hex_colors[color], 'file': file}) + theme = f"usr/share/themes/Mint-X-{color}" + os.system(f"cp -R usr/share/themes/Mint-X {theme}") + os.system(f"cp -R src/Mint-X/variations/{color}/* {theme}/") + # Accent color + xAccentRecolorFile(theme, color) + # Build sass + xDerivateGtk(theme, "gtk-4.0") + xDerivateGtk(theme, "gtk-3.0") + # Cinnamon + xDerivateCinnamon(color, theme) -os.system("rm -rf usr/share/themes/Mint-X/gtk-3.0/sass usr/share/themes/Mint-X/gtk-3.0/parse-sass.sh") -os.system("rm -rf usr/share/themes/Mint-X/gtk-4.0/sass usr/share/themes/Mint-X/gtk-4.0/parse-sass.sh") + # Openbox colors + xDerivateOpenbox(theme, color) # Mint-Y ################################################################# @@ -111,110 +115,125 @@ def y_colorize_directory (path, variation): os.chdir(curdir) # Mint-Y color variations -for color in y_hex_colors1.keys(): +def yDerivateGtk(color:str, lightDark:str, theme:str, gtk:str) -> None: + # gtk3 and 4 have the same generation process unlike in build-themes so we can use 1 function for both + os.system(f"cp -R src/Mint-Y/{gtk}/sass {theme}/{gtk}") + y_colorize_directory(f"{theme}/{gtk}/sass", color) + os.system(f""" + cd {theme}/{gtk} + pysassc ./sass/gtk-dark.scss gtk-dark.css + pysassc ./sass/gtk{lightDark}.scss gtk.css + rm -rf sass .sass-cache + """) + +def yDerivateCinnamon(color:str, lightDark:str, theme:str) -> None: + os.system(f"cp -R src/Mint-Y/cinnamon/sass {theme}/cinnamon/") + y_colorize_directory(f"{theme}/cinnamon/sass", color) + if lightDark == "-dark": + os.system(f"cd {theme}/cinnamon; cp sass/cinnamon-dark.scss sass/cinnamon.scss") + os.system(f""" + cd {theme}/cinnamon; pysassc ./sass/cinnamon.scss cinnamon.css + rm -rf sass .sass-cache +""") + +def yDerivateOpenbox(curdir:str, theme:str, color:str) -> None: + os.chdir(curdir) + # for accent in Y_HEX_ACCENT1: is redundant because the command used file, that just generated the last file + # in files (e.g. theme/libadwaita-1.7/default-dark.css) again. The output is unchanged with the line removed + for accent in Y_HEX_ACCENT2: + os.system(f"sed -i s'/{accent}/{y_hex_colors2[color]}/gI' {os.path.join(theme, "openbox-3", "themerc")}") + +def yAccentRecolorFile(theme:str, color:str) -> None: + files = [] + files.append(os.path.join(theme, "gtk-2.0", "gtkrc")) + files.append(os.path.join(theme, "gtk-2.0", "main.rc")) + files.append(os.path.join(theme, "gtk-2.0", "panel.rc")) + files.append(os.path.join(theme, "gtk-2.0", "apps.rc")) + files.append(os.path.join(theme, "gtk-2.0", "menubar-toolbar.rc")) + files.append(os.path.join(theme, "libadwaita-1.5", "defaults-light.css")) + files.append(os.path.join(theme, "libadapta-1.5", "defaults-light.css")) + files.append(os.path.join(theme, "libadwaita-1.5", "defaults-dark.css")) + files.append(os.path.join(theme, "libadapta-1.5", "defaults-dark.css")) + files.append(os.path.join(theme, "libadwaita-1.7", "defaults-light.css")) + files.append(os.path.join(theme, "libadwaita-1.7", "defaults-dark.css")) + for file in files: + if not os.path.exists(file): + continue + + for accent in Y_HEX_ACCENT1: + os.system(f"sed -i s'/{accent}/{y_hex_colors1[color]}/gI' {file}") + for accent in Y_HEX_ACCENT2: + os.system(f"sed -i s'/{accent}/{y_hex_colors2[color]}/gI' {file}") + +def accentRecolorDirectory(theme:str, color:str) -> None: + directories = [] + directories.append(os.path.join(theme, "cinnamon/common-assets")) + directories.append(os.path.join(theme, "cinnamon/light-assets")) + directories.append(os.path.join(theme, "cinnamon/dark-assets")) + for directory in directories: + if os.path.exists(directory): + y_colorize_directory(directory, color) + +def copyAssets(lightDark:str, theme:str, path:str) -> None: + os.system(f"rm -rf {theme}/gtk-4.0/assets") + os.system(f"rm -rf {theme}/gtk-3.0/assets") + os.system(f"rm -rf {theme}/gtk-2.0/assets") + os.system(f"cp -R {path}/gtk-2.0/assets{lightDark} {theme}/gtk-2.0/assets") + os.system(f"cp -R {path}/xfwm4{lightDark}/*.png {theme}/xfwm4/") + os.system(f"cp -R {path}/gtk-3.0/assets {theme}/gtk-3.0/assets") + os.system(f"cp -R {path}/gtk-4.0/assets {theme}/gtk-4.0/assets") + +def yGenTheme(color:str): for variant in ["", "-Dark"]: - original_name = "Mint-Y%s" % variant - path = os.path.join("src/Mint-Y/variations/%s" % color) - if os.path.isdir(path): - print("Derivating %s-%s" % (original_name, color)) - - # Copy theme - theme = "usr/share/themes/%s-%s" % (original_name, color) - os.system("cp -R usr/share/themes/%s %s" % (original_name, theme)) - - # Regenerate GTK4 sass - os.system("cp -R src/Mint-Y/gtk-4.0/sass %s/gtk-4.0/" % theme) - y_colorize_directory("%s/gtk-4.0/sass" % theme, color) - os.chdir("%s/gtk-4.0" % theme) - - if (variant == "-Dark"): - os.system("cp sass/gtk-dark.scss sass/gtk.scss") - os.system("pysassc ./sass/gtk.scss gtk.css") - # Add a gtk-dark.css (this is needed by libhandy/libadwaita apps when prefer-dark is on) - os.system("pysassc ./sass/gtk-dark.scss gtk-dark.css") - else: - os.system("pysassc ./sass/gtk-dark.scss gtk-dark.css") - os.system("pysassc ./sass/gtk.scss gtk.css") - - os.system("rm -rf sass .sass-cache") - os.chdir(curdir) - - # Regenerate GTK3 sass - os.system("cp -R src/Mint-Y/gtk-3.0/sass %s/gtk-3.0/" % theme) - y_colorize_directory("%s/gtk-3.0/sass" % theme, color) - os.chdir("%s/gtk-3.0" % theme) - # os.system("sed -i 's/no-tint/tint/gI' ./sass/gtk.scss") - # os.system("sed -i 's/no-tint/tint/gI' ./sass/gtk-dark.scss") - if (variant == "-Dark"): - os.system("cp sass/gtk-dark.scss sass/gtk.scss") - os.system("pysassc ./sass/gtk.scss gtk.css") - # Add a gtk-dark.css (this is needed by libhandy/libadwaita apps when prefer-dark is on) - os.system("pysassc ./sass/gtk-dark.scss gtk-dark.css") - else: - os.system("pysassc ./sass/gtk-dark.scss gtk-dark.css") - os.system("pysassc ./sass/gtk.scss gtk.css") - - os.system("rm -rf sass .sass-cache") - os.chdir(curdir) - - # Regenerate Cinnamon sass - os.system("cp -R src/Mint-Y/cinnamon/sass %s/cinnamon/" % theme) - y_colorize_directory("%s/cinnamon/sass" % theme, color) - os.chdir("%s/cinnamon" % theme) - if (variant == "-Dark"): - os.system("cp sass/cinnamon-dark.scss sass/cinnamon.scss") - os.system("pysassc ./sass/cinnamon.scss cinnamon.css") - os.system("rm -rf sass .sass-cache") - os.chdir(curdir) - - # Accent color - files = [] - files.append(os.path.join(theme, "gtk-2.0", "gtkrc")) - files.append(os.path.join(theme, "gtk-2.0", "main.rc")) - files.append(os.path.join(theme, "gtk-2.0", "panel.rc")) - files.append(os.path.join(theme, "gtk-2.0", "apps.rc")) - files.append(os.path.join(theme, "gtk-2.0", "menubar-toolbar.rc")) - files.append(os.path.join(theme, "libadwaita-1.5", "defaults-light.css")) - files.append(os.path.join(theme, "libadwaita-1.5", "defaults-dark.css")) - files.append(os.path.join(theme, "libadwaita-1.7", "defaults-light.css")) - files.append(os.path.join(theme, "libadwaita-1.7", "defaults-dark.css")) - for file in files: - if os.path.exists(file): - for accent in Y_HEX_ACCENT1: - os.system("sed -i s'/%(accent)s/%(color_accent)s/gI' %(file)s" % {'accent': accent, 'color_accent': y_hex_colors1[color], 'file': file}) - for accent in Y_HEX_ACCENT2: - os.system("sed -i s'/%(accent)s/%(color_accent)s/gI' %(file)s" % {'accent': accent, 'color_accent': y_hex_colors2[color], 'file': file}) - - # Remove metacity-theme-3.xml (it doesn't need to be derived since it's using GTK colors, and Cinnamon doesn't want to list it) - os.system("rm -f %s" % os.path.join(theme, "metacity-1", "metacity-theme-3.xml")) - - directories = [] - directories.append(os.path.join(theme, "cinnamon/common-assets")) - directories.append(os.path.join(theme, "cinnamon/light-assets")) - directories.append(os.path.join(theme, "cinnamon/dark-assets")) - for directory in directories: - if os.path.exists(directory): - y_colorize_directory(directory, color) - - # Assets - os.system("rm -rf %s/gtk-4.0/assets" % theme) - os.system("rm -rf %s/gtk-3.0/assets" % theme) - os.system("rm -rf %s/gtk-2.0/assets" % theme) - if variant == "-Dark": - os.system("cp -R %s/gtk-2.0/assets-dark %s/gtk-2.0/assets" % (path, theme)) - os.system("cp -R %s/xfwm4-dark/*.png %s/xfwm4/" % (path, theme)) - else: - os.system("cp -R %s/gtk-2.0/assets %s/gtk-2.0/assets" % (path, theme)) - os.system("cp -R %s/xfwm4/*.png %s/xfwm4/" % (path, theme)) - os.system("cp -R %s/gtk-3.0/assets %s/gtk-3.0/assets" % (path, theme)) - os.system("cp -R %s/gtk-4.0/assets %s/gtk-4.0/assets" % (path, theme)) - - # Openbox theme - os.chdir(curdir) - for accent in Y_HEX_ACCENT1: - os.system("sed -i s'/%(accent)s/%(color_accent)s/gI' %(file)s" % {'accent': accent, 'color_accent': y_hex_colors1[color], 'file': file}) - for accent in Y_HEX_ACCENT2: - os.system("sed -i s'/%(accent)s/%(color_accent)s/gI' %(file)s" % {'accent': accent, 'color_accent': y_hex_colors2[color], 'file': os.path.join (theme, "openbox-3", "themerc")}) + original_name = f"Mint-Y{variant}" + path = os.path.join(f"src/Mint-Y/variations/{color}") + lightDark = variant.lower() + if not os.path.isdir(path): + exit() + + print(f"Derivating {original_name}-{color}") + + # Copy theme + theme = f"usr/share/themes/{original_name}-{color}" + os.system(f"cp -R usr/share/themes/{original_name} {theme}") + + yDerivateGtk(color, lightDark, theme, "gtk-4.0") + yDerivateGtk(color, lightDark, theme, "gtk-3.0") + yDerivateCinnamon(color, lightDark, theme) + + # Accent color + yAccentRecolorFile(theme, color) + + # Remove metacity-theme-3.xml (it doesn't need to be derived since it's using GTK colors, + # and Cinnamon doesn't want to list it) + os.system(f"rm -f {os.path.join(theme, 'metacity-1', 'metacity-theme-3.xml')}") + + accentRecolorDirectory(theme, color) + + # Assets + copyAssets(lightDark,theme, path) + + # Openbox theme + yDerivateOpenbox(curdir, theme, color) + +threads = [] +for color in os.listdir("src/Mint-X/variations"): + t = threading.Thread(target=xGenTheme, args=(color,)) + threads.append(t) + +for color in y_hex_colors1.keys(): + t = threading.Thread(target=yGenTheme, args=(color,)) + threads.append(t) + +for t in threads: + t.start() + +for t in threads: + t.join() + +# execute after the threads have completed +os.system("rm -rf usr/share/themes/Mint-X/gtk-3.0/sass usr/share/themes/Mint-X/gtk-3.0/parse-sass.sh") +os.system("rm -rf usr/share/themes/Mint-X/gtk-4.0/sass usr/share/themes/Mint-X/gtk-4.0/parse-sass.sh") # Files os.system("cp -R files/* ./") diff --git a/src/Mint-Y/build-themes.py b/src/Mint-Y/build-themes.py index 26a1779c4..2a58846e1 100755 --- a/src/Mint-Y/build-themes.py +++ b/src/Mint-Y/build-themes.py @@ -5,141 +5,89 @@ VARIATIONS = ["Mint-Y", "Mint-Y-Dark"] -DEST = '../../usr/share/themes' - -curdir = os.getcwd() - -print("Updating Gtk4 assets") -os.chdir("gtk-4.0/") -os.system("pysassc ./sass/gtk.scss gtk.css") -os.system("pysassc ./sass/gtk-dark.scss gtk-dark.css") -os.system("./render-assets.sh") -print("Gtk4 assets updated") - -os.chdir(curdir) - -print("Updating Gtk3 assets") -os.chdir("gtk-3.0/") -os.system("pysassc ./sass/gtk.scss gtk.css") -os.system("pysassc ./sass/gtk-dark.scss gtk-dark.css") -os.system("./render-assets.sh") -print("Gtk3 assets updated") - -os.chdir(curdir) - -print("Updating Gtk2 assets") -os.chdir("gtk-2.0/") -os.system("./render-assets.sh") -os.system("./render-dark-assets.sh") -print("Gtk2 assets updated") +dirs = ["cinnamon", + "gtk-2.0", + "gtk-3.0", + "gtk-4.0", + "xfwm4", + "xfwm4-dark"] -os.chdir(curdir) - -print("Updating Cinnamon assets") -os.chdir("cinnamon/") -os.system("pysassc ./sass/cinnamon.scss cinnamon.css") -os.system("pysassc ./sass/cinnamon-dark.scss cinnamon-dark.css") -print("Cinnamon assets updated") - -os.chdir(curdir) - -print("Updating Xfwm4 assets") -os.chdir("xfwm4/") -os.system("./render-assets.sh") - -os.chdir(curdir) - -print("Updating Xfwm4 dark assets") -os.chdir("xfwm4-dark/") -os.system("./render-assets.sh") - -os.chdir(curdir) +DEST = '../../usr/share/themes' -if __name__ == '__main__': - print("Building themes") - for variation in VARIATIONS: - dest_folder = os.path.join(DEST, variation) - os.system("mkdir -p %s" % dest_folder) - if variation == "Mint-Y": - print(" Building Mint-Y") - # Gtk2 - version_folder = os.path.join(dest_folder, "gtk-2.0") - os.system("mkdir -p %s" % version_folder) - os.system("cp -R gtk-2.0/assets %s" % version_folder) - os.system("cp gtk-2.0/*.rc %s" % version_folder) - os.system("cp gtk-2.0/gtkrc %s" % version_folder) - # Gtk3 - version_folder = os.path.join(dest_folder, "gtk-3.0") - os.system("mkdir -p %s" % version_folder) - os.system("cp -R gtk-3.0/assets %s" % version_folder) - os.system("cp gtk-3.0/gtk.css %s" % version_folder) - os.system("cp gtk-3.0/gtk-dark.css %s" % version_folder) - os.system("cp gtk-3.0/thumbnail.png %s" % version_folder) - # Gtk4 - version_folder = os.path.join(dest_folder, "gtk-4.0") - os.system("mkdir -p %s" % version_folder) - os.system("cp -R gtk-4.0/assets %s" % version_folder) - os.system("cp gtk-4.0/gtk.css %s" % version_folder) - os.system("cp gtk-4.0/gtk-dark.css %s" % version_folder) - # Metacity - os.system("cp -R metacity-1 %s" % dest_folder) - # Cinnamon - version_folder = os.path.join(dest_folder, "cinnamon") - os.system("mkdir -p %s" % version_folder) - os.system("cp -R cinnamon/common-assets %s" % version_folder) - os.system("cp -R cinnamon/light-assets %s" % version_folder) - os.system("cp cinnamon/mint-y-thumbnail.png %s" % os.path.join(version_folder, "thumbnail.png")) - os.system("cp cinnamon/cinnamon.css %s" % version_folder) - # XFWM - version_folder = os.path.join(dest_folder, "xfwm4") - os.system("mkdir -p %s" % version_folder) - os.system("cp -R xfwm4/*.png %s" % version_folder) - os.system("cp -R xfwm4/themerc %s" % version_folder) - # Openbox - version_folder = os.path.join(dest_folder, "openbox-3") - os.system ("mkdir -p %s" % version_folder) - os.system("cp openbox-3/themerc %s/themerc" % (version_folder)) - # LibAdwaita - os.system("cp -R libadwaita-* %s/" % dest_folder) - elif variation == "Mint-Y-Dark": - print(" Building Mint-Y-Dark") - # Gtk2 - version_folder = os.path.join(dest_folder, "gtk-2.0") - os.system("mkdir -p %s" % version_folder) - os.system("cp -R gtk-2.0/assets-dark %s" % version_folder) - os.system("rm -rf %s" % os.path.join(version_folder, "assets")) - os.system("mv %s %s" % (os.path.join(version_folder, "assets-dark"), os.path.join(version_folder, "assets"))) - os.system("cp gtk-2.0/*.rc %s" % version_folder) - os.system("cp gtk-2.0/gtkrc-dark %s" % os.path.join(version_folder, "gtkrc")) - os.system("cp gtk-2.0/menubar-toolbar-dark.rc %s" % os.path.join(version_folder, "menubar-toolbar.rc")) - # Gtk3 - version_folder = os.path.join(dest_folder, "gtk-3.0") - os.system("mkdir -p %s" % version_folder) - os.system("cp -R gtk-3.0/assets %s" % version_folder) - os.system("cp gtk-3.0/gtk-dark.css %s" % os.path.join(version_folder, "gtk.css")) - os.system("cp gtk-3.0/gtk-dark.css %s" % os.path.join(version_folder, "gtk-dark.css")) - os.system("cp gtk-3.0/thumbnail-dark.png %s" % os.path.join(version_folder, "thumbnail.png")) - # Gtk4 - version_folder = os.path.join(dest_folder, "gtk-4.0") - os.system("mkdir -p %s" % version_folder) - os.system("cp -R gtk-4.0/assets %s" % version_folder) - os.system("cp gtk-4.0/gtk-dark.css %s" % os.path.join(version_folder, "gtk.css")) - os.system("cp gtk-4.0/gtk-dark.css %s" % os.path.join(version_folder, "gtk-dark.css")) - # Cinnamon - version_folder = os.path.join(dest_folder, "cinnamon") - os.system("mkdir -p %s" % version_folder) - os.system("cp -R cinnamon/common-assets %s" % version_folder) - os.system("cp -R cinnamon/dark-assets %s" % version_folder) - os.system("cp cinnamon/mint-y-dark-thumbnail.png %s" % os.path.join(version_folder, "thumbnail.png")) - os.system("cp cinnamon/cinnamon-dark.css %s" % os.path.join(version_folder, "cinnamon.css")) - # XFWM - version_folder = os.path.join(dest_folder, "xfwm4") - os.system("mkdir -p %s" % version_folder) - os.system("cp -R xfwm4-dark/*.png %s" % version_folder) - os.system("cp -R xfwm4-dark/themerc %s" % version_folder) - # Openbox - version_folder = os.path.join(dest_folder, "openbox-3") - os.system ("mkdir -p %s" % version_folder) - os.system("cp openbox-3/themerc-dark %s/themerc" % (version_folder)) - # LibAdwaita - os.system("cp -R libadwaita-* %s/" % dest_folder) +curDir = os.getcwd() + +def updateTheme(themeDir:str) -> None: + print(f"Updating {themeDir} assets") + os.chdir(themeDir) + os.system("./*.sh") + os.chdir(curDir) + +for theme in dirs: + updateTheme(theme) + +if __name__ != '__main__': + exit() + +def buildGtk2(lightDark:str) -> None: + version_folder = os.path.join(dest_folder, "gtk-2.0") + os.system(f"mkdir -p {version_folder}") + os.system(f"cp -R gtk-2.0/assets{lightDark} {version_folder}") + os.system(f"cp gtk-2.0/*.rc {version_folder}") + os.system(f"cp gtk-2.0/gtkrc{lightDark} {os.path.join(version_folder, 'gtkrc')}") + if lightDark == "-dark": + os.system(f"rm -rf {os.path.join(version_folder, 'assets')}") + os.system(f"mv {os.path.join(version_folder, 'assets-dark')} {os.path.join(version_folder, 'assets')}") + os.system(f"cp gtk-2.0/menubar-toolbar-dark.rc {os.path.join(version_folder, "menubar-toolbar.rc")}") + +def buildGtk3(lightDark:str) -> None: + version_folder = os.path.join(dest_folder, "gtk-3.0") + os.system(f"mkdir -p {version_folder}") + os.system(f"cp -R gtk-3.0/assets {version_folder}") + os.system(f"cp gtk-3.0/gtk{lightDark}.css {os.path.join(version_folder, 'gtk.css')}") + os.system(f"cp gtk-3.0/gtk-dark.css {os.path.join(version_folder, 'gtk-dark.css')}") + os.system(f"cp gtk-3.0/thumbnail{lightDark}.png {os.path.join(version_folder, 'thumbnail.png')}") + +def buildGtk4(lightDark:str) -> None: + version_folder = os.path.join(dest_folder, "gtk-4.0") + os.system(f"mkdir -p {version_folder}") + os.system(f"cp -R gtk-4.0/assets {version_folder}") + os.system(f"cp gtk-4.0/gtk{lightDark}.css {os.path.join(version_folder, 'gtk.css')}") + os.system(f"cp gtk-4.0/gtk-dark.css {os.path.join(version_folder, 'gtk-dark.css')}") + +def buildCinnamon(lightDark:str) -> None: + version_folder = os.path.join(dest_folder, "cinnamon") + os.system(f"mkdir -p {version_folder}") + os.system(f"cp -R cinnamon/common-assets {version_folder}") + os.system(f"cp cinnamon/mint-y{lightDark}-thumbnail.png {os.path.join(version_folder, 'thumbnail.png')}") + os.system(f"cp cinnamon/cinnamon{lightDark}.css {os.path.join(version_folder, 'cinnamon.css')}") + if lightDark == "": + os.system(f"cp -R cinnamon/light-assets {version_folder}") + elif lightDark == "-dark": + os.system(f"cp -R cinnamon/dark-assets {version_folder}") + +def buildXfwm4(lightDark:str) -> None: + version_folder = os.path.join(dest_folder, "xfwm4") + os.system(f"mkdir -p {version_folder}") + os.system(f"cp -R xfwm4{lightDark}/*.png {version_folder}") + os.system(f"cp -R xfwm4{lightDark}/themerc {version_folder}") + +def buildOpenbox(lightDark:str) -> None: + version_folder = os.path.join(dest_folder, "openbox-3") + os.system(f"mkdir -p {version_folder}") + os.system(f"cp openbox-3/themerc{lightDark} {version_folder}/themerc") + +print("Building themes") +for variation in VARIATIONS: + print(f" Building {variation}") + dest_folder = os.path.join(DEST, variation) + lightDark = variation.replace("Mint-Y", "").lower() + os.system(f"mkdir -p {dest_folder}") + buildGtk2(lightDark) + buildGtk3(lightDark) + buildGtk4(lightDark) + buildCinnamon(lightDark) + buildXfwm4(lightDark) + buildOpenbox(lightDark) + os.system(f"cp -R libadwaita-* {dest_folder}/") + if variation == "Mint-Y": + os.system(f"cp -R metacity-1 {dest_folder}") diff --git a/src/Mint-Y/gtk-3.0/gtk-dark.css b/src/Mint-Y/gtk-3.0/gtk-dark.css index b4ac19ff9..b6d97e900 100644 --- a/src/Mint-Y/gtk-3.0/gtk-dark.css +++ b/src/Mint-Y/gtk-3.0/gtk-dark.css @@ -3134,6 +3134,15 @@ terminal-screen-container scrollbar:not(slider) { border-color: transparent; background-color: transparent; } +.csd terminal-screen-container scrollbar { + border-style: solid; + border-color: transparent; + border-bottom-width: 1px; } + .csd terminal-screen-container scrollbar:dir(ltr) { + border-right-width: 1px; } + .csd terminal-screen-container scrollbar:dir(rtl) { + border-left-width: 1px; } + TerminalWindow .notebook tab .button { color: rgba(169, 169, 171, 0.9155); } TerminalWindow .notebook tab .button:hover { diff --git a/src/Mint-Y/gtk-3.0/gtk.css b/src/Mint-Y/gtk-3.0/gtk.css index 18bfe64c5..4cb5d7a34 100644 --- a/src/Mint-Y/gtk-3.0/gtk.css +++ b/src/Mint-Y/gtk-3.0/gtk.css @@ -3139,6 +3139,15 @@ terminal-screen-container scrollbar:not(slider) { border-color: transparent; background-color: transparent; } +.csd terminal-screen-container scrollbar { + border-style: solid; + border-color: transparent; + border-bottom-width: 1px; } + .csd terminal-screen-container scrollbar:dir(ltr) { + border-right-width: 1px; } + .csd terminal-screen-container scrollbar:dir(rtl) { + border-left-width: 1px; } + TerminalWindow .notebook tab .button { color: rgba(102, 102, 103, 0.9155); } TerminalWindow .notebook tab .button:hover { diff --git a/src/Mint-Y/gtk-3.0/sass/_applications.scss b/src/Mint-Y/gtk-3.0/sass/_applications.scss index 06e291948..070194b02 100644 --- a/src/Mint-Y/gtk-3.0/sass/_applications.scss +++ b/src/Mint-Y/gtk-3.0/sass/_applications.scss @@ -78,6 +78,14 @@ terminal-screen-container scrollbar:not(slider) { background-color: transparent; } +.csd terminal-screen-container scrollbar { + border-style: solid; + border-color: transparent; + border-bottom-width: 1px; + &:dir(ltr) { border-right-width: 1px } + &:dir(rtl) { border-left-width: 1px } +} + TerminalWindow { .notebook { tab .button { diff --git a/src/Mint-Y/variations/Aqua/gtk-2.0/assets-dark.svg b/src/Mint-Y/variations/Aqua/gtk-2.0/assets-dark.svg index d8e897ac7..d78b3e389 100644 --- a/src/Mint-Y/variations/Aqua/gtk-2.0/assets-dark.svg +++ b/src/Mint-Y/variations/Aqua/gtk-2.0/assets-dark.svg @@ -2,20 +2,20 @@ + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="assets-dark.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-bbox-edge-midpoints="true" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> + style="opacity:1;fill:#44444c;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#434347;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -1973,7 +1976,7 @@ transform="translate(-10,169)" clip-path="url(#clipPath4470)"> @@ -1998,14 +2001,14 @@ @@ -2281,7 +2284,7 @@ transform="matrix(-1,0,0,1,155,169)" clip-path="url(#clipPath4470-6)"> @@ -2306,14 +2309,14 @@ + style="opacity:0.55;fill:#38383e;fill-opacity:1;stroke:#262626;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -4816,7 +4819,7 @@ inkscape:label="#g9350" transform="translate(106,61.999997)"> @@ -4839,7 +4842,7 @@ inkscape:label="#g9335" clip-path="url(#clipPath5131)"> @@ -4862,7 +4865,7 @@ inkscape:label="#g9350" clip-path="url(#clipPath5158)"> @@ -5177,7 +5180,7 @@ height="15" width="15" id="sdcdscds" - style="opacity:1;fill:#3e3e3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="assets-dark.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-bbox-edge-midpoints="true" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> + style="opacity:1;fill:#44444c;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#434347;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -1973,7 +1976,7 @@ transform="translate(-10,169)" clip-path="url(#clipPath4470)"> @@ -1998,14 +2001,14 @@ @@ -2281,7 +2284,7 @@ transform="matrix(-1,0,0,1,155,169)" clip-path="url(#clipPath4470-6)"> @@ -2306,14 +2309,14 @@ + style="opacity:0.55;fill:#38383e;fill-opacity:1;stroke:#262626;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -4816,7 +4819,7 @@ inkscape:label="#g9350" transform="translate(106,61.999997)"> @@ -4839,7 +4842,7 @@ inkscape:label="#g9335" clip-path="url(#clipPath5131)"> @@ -4862,7 +4865,7 @@ inkscape:label="#g9350" clip-path="url(#clipPath5158)"> @@ -5177,7 +5180,7 @@ height="15" width="15" id="sdcdscds" - style="opacity:1;fill:#3e3e3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="assets-dark.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-bbox-edge-midpoints="true" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> + style="opacity:1;fill:#44444c;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#434347;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -1973,7 +1976,7 @@ transform="translate(-10,169)" clip-path="url(#clipPath4470)"> @@ -1998,14 +2001,14 @@ @@ -2281,7 +2284,7 @@ transform="matrix(-1,0,0,1,155,169)" clip-path="url(#clipPath4470-6)"> @@ -2306,14 +2309,14 @@ + style="opacity:0.55;fill:#38383e;fill-opacity:1;stroke:#262626;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -4816,7 +4819,7 @@ inkscape:label="#g9350" transform="translate(106,61.999997)"> @@ -4839,7 +4842,7 @@ inkscape:label="#g9335" clip-path="url(#clipPath5131)"> @@ -4862,7 +4865,7 @@ inkscape:label="#g9350" clip-path="url(#clipPath5158)"> @@ -5177,7 +5180,7 @@ height="15" width="15" id="sdcdscds" - style="opacity:1;fill:#3e3e3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="assets-dark.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-bbox-edge-midpoints="true" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> + style="opacity:1;fill:#44444c;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#434347;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -1973,7 +1976,7 @@ transform="translate(-10,169)" clip-path="url(#clipPath4470)"> @@ -1998,14 +2001,14 @@ @@ -2281,7 +2284,7 @@ transform="matrix(-1,0,0,1,155,169)" clip-path="url(#clipPath4470-6)"> @@ -2306,14 +2309,14 @@ + style="opacity:0.55;fill:#38383e;fill-opacity:1;stroke:#262626;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -4816,7 +4819,7 @@ inkscape:label="#g9350" transform="translate(106,61.999997)"> @@ -4839,7 +4842,7 @@ inkscape:label="#g9335" clip-path="url(#clipPath5131)"> @@ -4862,7 +4865,7 @@ inkscape:label="#g9350" clip-path="url(#clipPath5158)"> @@ -5177,7 +5180,7 @@ height="15" width="15" id="sdcdscds" - style="opacity:1;fill:#3e3e3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="assets-dark.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-bbox-edge-midpoints="true" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> + style="opacity:1;fill:#44444c;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#434347;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -1973,7 +1976,7 @@ transform="translate(-10,169)" clip-path="url(#clipPath4470)"> @@ -1998,14 +2001,14 @@ @@ -2281,7 +2284,7 @@ transform="matrix(-1,0,0,1,155,169)" clip-path="url(#clipPath4470-6)"> @@ -2306,14 +2309,14 @@ + style="opacity:0.55;fill:#38383e;fill-opacity:1;stroke:#262626;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -4816,7 +4819,7 @@ inkscape:label="#g9350" transform="translate(106,61.999997)"> @@ -4839,7 +4842,7 @@ inkscape:label="#g9335" clip-path="url(#clipPath5131)"> @@ -4862,7 +4865,7 @@ inkscape:label="#g9350" clip-path="url(#clipPath5158)"> @@ -5177,7 +5180,7 @@ height="15" width="15" id="sdcdscds" - style="opacity:1;fill:#3e3e3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="assets-dark.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-bbox-edge-midpoints="true" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> + style="opacity:1;fill:#44444c;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#434347;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -1973,7 +1976,7 @@ transform="translate(-10,169)" clip-path="url(#clipPath4470)"> @@ -1998,14 +2001,14 @@ @@ -2281,7 +2284,7 @@ transform="matrix(-1,0,0,1,155,169)" clip-path="url(#clipPath4470-6)"> @@ -2306,14 +2309,14 @@ + style="opacity:0.55;fill:#38383e;fill-opacity:1;stroke:#262626;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -4816,7 +4819,7 @@ inkscape:label="#g9350" transform="translate(106,61.999997)"> @@ -4839,7 +4842,7 @@ inkscape:label="#g9335" clip-path="url(#clipPath5131)"> @@ -4862,7 +4865,7 @@ inkscape:label="#g9350" clip-path="url(#clipPath5158)"> @@ -5177,7 +5180,7 @@ height="15" width="15" id="sdcdscds" - style="opacity:1;fill:#3e3e3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="assets-dark.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-bbox-edge-midpoints="true" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> + style="opacity:1;fill:#44444c;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#434347;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -1973,7 +1976,7 @@ transform="translate(-10,169)" clip-path="url(#clipPath4470)"> @@ -1998,14 +2001,14 @@ @@ -2281,7 +2284,7 @@ transform="matrix(-1,0,0,1,155,169)" clip-path="url(#clipPath4470-6)"> @@ -2306,14 +2309,14 @@ + style="opacity:0.55;fill:#38383e;fill-opacity:1;stroke:#262626;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -4816,7 +4819,7 @@ inkscape:label="#g9350" transform="translate(106,61.999997)"> @@ -4839,7 +4842,7 @@ inkscape:label="#g9335" clip-path="url(#clipPath5131)"> @@ -4862,7 +4865,7 @@ inkscape:label="#g9350" clip-path="url(#clipPath5158)"> @@ -5177,7 +5180,7 @@ height="15" width="15" id="sdcdscds" - style="opacity:1;fill:#3e3e3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="assets-dark.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-bbox-edge-midpoints="true" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> + style="opacity:1;fill:#44444c;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#434347;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -1973,7 +1976,7 @@ transform="translate(-10,169)" clip-path="url(#clipPath4470)"> @@ -1998,14 +2001,14 @@ @@ -2281,7 +2284,7 @@ transform="matrix(-1,0,0,1,155,169)" clip-path="url(#clipPath4470-6)"> @@ -2306,14 +2309,14 @@ + style="opacity:0.55;fill:#38383e;fill-opacity:1;stroke:#262626;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -4816,7 +4819,7 @@ inkscape:label="#g9350" transform="translate(106,61.999997)"> @@ -4839,7 +4842,7 @@ inkscape:label="#g9335" clip-path="url(#clipPath5131)"> @@ -4862,7 +4865,7 @@ inkscape:label="#g9350" clip-path="url(#clipPath5158)"> @@ -5177,7 +5180,7 @@ height="15" width="15" id="sdcdscds" - style="opacity:1;fill:#3e3e3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="assets-dark.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:snap-bbox-edge-midpoints="true" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1"> + style="opacity:1;fill:#44444c;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#434347;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -1973,7 +1976,7 @@ transform="translate(-10,169)" clip-path="url(#clipPath4470)"> @@ -1998,14 +2001,14 @@ @@ -2281,7 +2284,7 @@ transform="matrix(-1,0,0,1,155,169)" clip-path="url(#clipPath4470-6)"> @@ -2306,14 +2309,14 @@ + style="opacity:0.55;fill:#38383e;fill-opacity:1;stroke:#262626;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#2e2e33;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> @@ -4816,7 +4819,7 @@ inkscape:label="#g9350" transform="translate(106,61.999997)"> @@ -4839,7 +4842,7 @@ inkscape:label="#g9335" clip-path="url(#clipPath5131)"> @@ -4862,7 +4865,7 @@ inkscape:label="#g9350" clip-path="url(#clipPath5158)"> @@ -5177,7 +5180,7 @@ height="15" width="15" id="sdcdscds" - style="opacity:1;fill:#3e3e3e;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" /> + style="opacity:1;fill:#333339;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />