Update scripts to sync with Meson build system
Make sassc mandatory in install.sh and generate CSSs via adaptable SCSSs. So we can finally get rid of the pre-generated CSSs and a lot of inflexible SCSSs for them.
By using this site, you agree to have cookies stored on your device, strictly for functional purposes, such as storing your session and preferences.
Make sassc mandatory in install.sh and generate CSSs via adaptable SCSSs. So we can finally get rid of the pre-generated CSSs and a lot of inflexible SCSSs for them.
roundabout,
created on Saturday, 11 April 2020, 09:16:09 (1586596569),
received on Sunday, 11 May 2025, 13:22:53 (1746969773)
Author identity: nana-4 <hnmaigo@gmail.com>
83a1d71905cc96c5d18022533a56e84a16288348
SIZE_VARIANT="standard"
fi
SIZE_VARIANTS="$SIZE_VARIANTS" COLOR_VARIANTS="$COLOR_VARIANTS" THEME_DIR_BASE="$DEST_PATH" ./parse-sass.sh
# NOTE we use the functions we already have in render-assets.sh
echo "== Rendering GTK 2 assets..."
if [[ "$MATERIA_COLOR_VARIANT" != "dark" ]]; then
fi
fi
if [[ ! "$(command -v sassc)" ]]; then
echo "'sassc' needs to be installed to generate the CSS."
exit 1
fi
SASSC_OPT=('-M' '-t' 'expanded')
usage() {
cat << EOF
Usage: $0 [OPTION]...
install() {
local dest="$1"
local name="$2"
local name="$2$3$4"
local color="$3"
local size="$4"
if [[ "$color" == '' ]]; then
local scss_variant="light"
local scss_topbar="dark"
elif [[ "$color" == '-light' ]]; then
local scss_variant="light"
local scss_topbar="light"
elif [[ "$color" == '-dark' ]]; then
local scss_variant="dark"
local scss_topbar="dark"
fi
if [[ "$size" == '' ]]; then
local scss_compact="false"
elif [[ "$size" == '-compact' ]]; then
local scss_compact="true"
fi
[[ "$color" == '-dark' ]] && local ELSE_DARK="$color"
[[ "$color" == '-light' ]] && local ELSE_LIGHT="$color"
local THEME_DIR="$dest/$name$color$size"
local THEME_DIR="$dest/$name"
# SC2115: Protect /.
[[ -d "$THEME_DIR" ]] && rm -rf "${THEME_DIR:?}"
mkdir -p "$THEME_DIR"
cp -r "$REPO_DIR/COPYING" "$THEME_DIR"
cp -r "$SRC_DIR/index$color$size.theme" "$THEME_DIR/index.theme"
sed \
-e "s/@theme_name@/$name/g" \
"$SRC_DIR/index.theme.in" > "$THEME_DIR/index.theme"
mkdir -p "$THEME_DIR/chrome"
cp -r "$SRC_DIR/chrome/chrome-theme$color.crx" "$THEME_DIR/chrome/chrome-theme.crx"
mkdir -p "$THEME_DIR/cinnamon"
cp -r "$SRC_DIR/cinnamon/assets" "$THEME_DIR/cinnamon"
cp -r "$SRC_DIR/cinnamon/thumbnail.png" "$THEME_DIR/cinnamon"
cp -r "$SRC_DIR/cinnamon/cinnamon$color$size.css" "$THEME_DIR/cinnamon/cinnamon.css"
sed \
-e "s/@variant@/$scss_variant/g" \
-e "s/@topbar@/$scss_topbar/g" \
-e "s/@compact@/$scss_compact/g" \
"$SRC_DIR/cinnamon/cinnamon.scss.in" > "$SRC_DIR/cinnamon/cinnamon.$name.scss"
sassc "${SASSC_OPT[@]}" "$SRC_DIR/cinnamon/cinnamon.$name.scss" "$THEME_DIR/cinnamon/cinnamon.css"
mkdir -p "$THEME_DIR/gnome-shell"
cp -r "$SRC_DIR/gnome-shell/"{*.svg,extensions,noise-texture.png,pad-osd.css} "$THEME_DIR/gnome-shell"
cp -r "$SRC_DIR/gnome-shell/icons" "$THEME_DIR/gnome-shell"
cp -r "$SRC_DIR/gnome-shell/README.md" "$THEME_DIR/gnome-shell"
cp -r "$SRC_DIR/gnome-shell/assets${ELSE_DARK:-}" "$THEME_DIR/gnome-shell/assets"
cp -r "$SRC_DIR/gnome-shell/$GS_VERSION/gnome-shell$color$size.css" "$THEME_DIR/gnome-shell/gnome-shell.css"
sed \
-e "s/@variant@/$scss_variant/g" \
-e "s/@topbar@/$scss_topbar/g" \
-e "s/@compact@/$scss_compact/g" \
-e "s/@version@/$GS_VERSION/g" \
"$SRC_DIR/gnome-shell/gnome-shell.scss.in" > "$SRC_DIR/gnome-shell/gnome-shell.$name.scss"
sassc "${SASSC_OPT[@]}" "$SRC_DIR/gnome-shell/gnome-shell.$name.scss" "$THEME_DIR/gnome-shell/gnome-shell.css"
mkdir -p "$THEME_DIR/gtk-2.0"
cp -r "$SRC_DIR/gtk-2.0/"{apps.rc,hacks.rc,main.rc} "$THEME_DIR/gtk-2.0"
cp -r "$SRC_DIR/gtk/assets" "$THEME_DIR/gtk-assets"
cp -r "$SRC_DIR/gtk/icons" "$THEME_DIR/gtk-icons"
local GTK_VARIANTS=('')
[[ "$color" != '-dark' ]] && local GTK_VARIANTS+=('-dark')
for version in "${GTK_VERSIONS[@]}"; do
mkdir -p "$THEME_DIR/gtk-$version"
ln -s ../gtk-assets "$THEME_DIR/gtk-$version/assets"
ln -s ../gtk-icons "$THEME_DIR/gtk-$version/icons"
cp -r "$SRC_DIR/gtk/$version/gtk$color$size.css" "$THEME_DIR/gtk-$version/gtk.css"
[[ "$color" != '-dark' ]] && \
cp -r "$SRC_DIR/gtk/$version/gtk-dark$size.css" "$THEME_DIR/gtk-$version/gtk-dark.css"
for variant in "${GTK_VARIANTS[@]}"; do
sed \
-e "s/@variant@/$scss_variant/g" \
-e "s/@topbar@/$scss_topbar/g" \
-e "s/@compact@/$scss_compact/g" \
"$SRC_DIR/gtk/gtk$variant.scss.in" > "$SRC_DIR/gtk/gtk$variant.gtk-$version.$name.scss"
sassc "${SASSC_OPT[@]}" "$SRC_DIR/gtk/gtk$variant.gtk-$version.$name.scss" "$THEME_DIR/gtk-$version/gtk$variant.css"
done
done
mkdir -p "$THEME_DIR/metacity-1"
SASSC_OPT=('-M' '-t' 'expanded')
_COLOR_VARIANTS=('' '-dark' '-light')
_SIZE_VARIANTS=('' '-compact')
GTK_VERSIONS=('3.0')
GS_VERSIONS=('3.26' '3.28' '3.30' '3.32' '3.34' '3.36')
if [[ -n "${COLOR_VARIANTS:-}" ]]; then
IFS=', ' read -r -a _COLOR_VARIANTS <<< "${COLOR_VARIANTS:-}"
fi
if [[ -n "${SIZE_VARIANTS:-}" ]]; then
IFS=', ' read -r -a _SIZE_VARIANTS <<< "${SIZE_VARIANTS:-}"
fi
echo "== Generating the CSS..."
for color in "${_COLOR_VARIANTS[@]}"; do
for size in "${_SIZE_VARIANTS[@]}"; do
for version in "${GTK_VERSIONS[@]}"; do
sassc "${SASSC_OPT[@]}" "src/gtk/$version/gtk$color$size."{scss,css}
done
for version in "${GS_VERSIONS[@]}"; do
sassc "${SASSC_OPT[@]}" "src/gnome-shell/$version/gnome-shell$color$size."{scss,css}
done
sassc "${SASSC_OPT[@]}" "src/cinnamon/cinnamon$color$size."{scss,css}
done
done
echo "Generating the chrome-scrollbar CSS..."
sassc "${SASSC_OPT[@]}" src/chrome/chrome-scrollbar/scrollbars.{scss,css}
sassc "${SASSC_OPT[@]}" src/chrome/chrome-scrollbar-dark/scrollbars.{scss,css}