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.
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 roundabout, Saturday, 11 April 2020, 09:16:09 (1586596569), pushed by roundabout, 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}