pull/144/head
Vince 4 years ago
parent 47fea34e53
commit e55e4fe3d4

3
.gitignore vendored

@ -0,0 +1,3 @@
.DS_store
.sass-cache
*-temp.scss

@ -0,0 +1,205 @@
#! /usr/bin/env bash
REPO_DIR="$(dirname "$(readlink -m "${0}")")"
source "${REPO_DIR}/core.sh"
usage() {
cat << EOF
Usage: $0 [OPTION]...
OPTIONS:
-d, --dest DIR Specify destination directory (Default: $DEST_DIR)
-n, --name NAME Specify theme name (Default: $THEME_NAME)
-c, --color VARIANT... Specify color variant(s) [standard|light|dark] (Default: All variants)s)
-s, --size VARIANT Specify size variant [standard|compact] (Default: All variants)
--tweaks Specify versions for tweaks [solid|compact|black|primary] (Options can mix)
1. solid: no transparency panel variant
2. compact: no floating panel variant
3. black: full black variant
4. primary: Change radio icon checked color to primary theme color (Default is Green)
-h, --help Show help
INSTALLATION EXAMPLES:
Install all theme variants into ~/.themes
$0 --dest ~/.themes
Install standard theme variant only
$0 --color standard
Install specific theme variants with different name into ~/.themes
$0 --dest ~/.themes --name MyTheme --color dark
EOF
}
themes=()
themecolors=()
colors=()
sizes=()
while [[ "$#" -gt 0 ]]; do
case "${1:-}" in
-d|--dest)
dest="$2"
mkdir -p "$dest"
shift 2
;;
-n|--name)
_name="$2"
shift 2
;;
--tweaks)
shift
for variant in $@; do
case "$variant" in
solid)
opacity="solid"
shift
;;
compact)
panel="compact"
shift
;;
black)
blackness="true"
shift
;;
primary)
primary="true"
shift
;;
-*)
break
;;
*)
echo "ERROR: Unrecognized tweaks variant '$1'."
echo "Try '$0 --help' for more information."
exit 1
;;
esac
done
;;
-c|--color)
shift
for variant in "$@"; do
case "$variant" in
standard)
colors+=("${COLOR_VARIANTS[0]}")
shift
;;
light)
colors+=("${COLOR_VARIANTS[1]}")
shift
;;
dark)
colors+=("${COLOR_VARIANTS[2]}")
shift
;;
-*)
break
;;
*)
echo "ERROR: Unrecognized color variant '$1'."
echo "Try '$0 --help' for more information."
exit 1
;;
esac
done
;;
-s|--size)
shift
for variant in "$@"; do
case "$variant" in
standard)
sizes+=("${SIZE_VARIANTS[0]}")
shift
;;
compact)
sizes+=("${SIZE_VARIANTS[1]}")
shift
;;
-*)
break
;;
*)
echo "ERROR: Unrecognized size variant '${1:-}'."
echo "Try '$0 --help' for more information."
exit 1
;;
esac
done
;;
-h|--help)
usage
exit 0
;;
*)
echo "ERROR: Unrecognized installation option '${1:-}'."
echo "Try '$0 --help' for more information."
exit 1
;;
esac
done
if [[ "${#themecolors[@]}" -eq 0 ]] ; then
themecolors=("${THEME_COLORS[@]}")
fi
if [[ "${#colors[@]}" -eq 0 ]] ; then
colors=("${COLOR_VARIANTS[@]}")
fi
if [[ "${#sizes[@]}" -eq 0 ]] ; then
sizes=("${SIZE_VARIANTS[@]}")
fi
install_all_color() {
for theme_color in "${themecolors[@]}"; do
if [[ "$theme_color" != "default" ]]; then
accent='true'
fi
tweaks_temp; install_theme_color "$theme_color"
customize_theme
case "$theme_color" in
default)
theme=("${THEME_VARIANTS[0]}")
shift
;;
purple)
theme=("${THEME_VARIANTS[1]}")
shift
;;
pink)
theme=("${THEME_VARIANTS[2]}")
shift
;;
red)
theme=("${THEME_VARIANTS[3]}")
shift
;;
orange)
theme=("${THEME_VARIANTS[4]}")
shift
;;
yellow)
theme=("${THEME_VARIANTS[5]}")
shift
;;
green)
theme=("${THEME_VARIANTS[6]}")
shift
;;
grey)
theme=("${THEME_VARIANTS[7]}")
shift
;;
esac
for color in "${colors[@]}"; do
for size in "${sizes[@]}"; do
install "${dest:-$DEST_DIR}" "${_name:-$THEME_NAME}" "$theme" "$color" "$size"
done
done
done
}
install_all_color "${dest:-$DEST_DIR}" "${_name:-$THEME_NAME}" "$theme" "$color" "$size"

@ -0,0 +1,239 @@
REPO_DIR="$(dirname "$(readlink -m "${0}")")"
SRC_DIR="$REPO_DIR/src"
ROOT_UID=0
DEST_DIR=
# Destination directory
if [ "$UID" -eq "$ROOT_UID" ]; then
DEST_DIR="/usr/share/themes"
else
DEST_DIR="$HOME/.themes"
fi
SASSC_OPT="-M -t expanded"
THEME_NAME=Orchis
THEME_VARIANTS=('' '-purple' '-pink' '-red' '-orange' '-yellow' '-green' '-grey')
THEME_COLORS=('default' 'purple' 'pink' 'red' 'orange' 'yellow' 'green' 'grey')
COLOR_VARIANTS=('' '-light' '-dark')
SIZE_VARIANTS=('' '-compact')
if [[ "$(command -v gnome-shell)" ]]; then
SHELL_VERSION="$(gnome-shell --version | cut -d ' ' -f 3 | cut -d . -f -1)"
if [[ "${SHELL_VERSION:-}" -ge "40" ]]; then
GS_VERSION="new"
else
GS_VERSION="old"
fi
else
echo "'gnome-shell' not found, using styles for last gnome-shell version available."
GS_VERSION="new"
fi
install() {
local dest="$1"
local name="$2"
local theme="$3"
local color="$4"
local size="$5"
[[ "$color" == '-dark' ]] && local ELSE_DARK="$color"
[[ "$color" == '-light' ]] && local ELSE_LIGHT="$color"
local THEME_DIR="$dest/$name$theme$color$size"
[[ -d "$THEME_DIR" ]] && rm -rf "${THEME_DIR:?}"
echo "Installing '$THEME_DIR'..."
mkdir -p "$THEME_DIR"
cp -r "$REPO_DIR/COPYING" "$THEME_DIR"
echo "[Desktop Entry]" >> "$THEME_DIR/index.theme"
echo "Type=X-GNOME-Metatheme" >> "$THEME_DIR/index.theme"
echo "Name=$name$theme$color$size" >> "$THEME_DIR/index.theme"
echo "Comment=An Materia Gtk+ theme based on Elegant Design" >> "$THEME_DIR/index.theme"
echo "Encoding=UTF-8" >> "$THEME_DIR/index.theme"
echo "" >> "$THEME_DIR/index.theme"
echo "[X-GNOME-Metatheme]" >> "$THEME_DIR/index.theme"
echo "GtkTheme=$name$theme$color$size" >> "$THEME_DIR/index.theme"
echo "MetacityTheme=$name$theme$color$size" >> "$THEME_DIR/index.theme"
echo "IconTheme=Tela-circle${ELSE_DARK:-}" >> "$THEME_DIR/index.theme"
echo "CursorTheme=Vimix${ELSE_DARK:-}" >> "$THEME_DIR/index.theme"
echo "ButtonLayout=close,minimize,maximize:menu" >> "$THEME_DIR/index.theme"
mkdir -p "$THEME_DIR/gnome-shell"
cp -r "$SRC_DIR/gnome-shell/pad-osd.css" "$THEME_DIR/gnome-shell"
if [[ "$panel" == 'compact' || "$opacity" == 'solid' || "$blackness" == 'true' || "$theme" != 'default' ]]; then
if [[ "${GS_VERSION:-}" == 'new' ]]; then
sassc $SASSC_OPT "$SRC_DIR/gnome-shell/shell-40-0/gnome-shell${ELSE_DARK:-}$size.scss" "$THEME_DIR/gnome-shell/gnome-shell.css"
else
sassc $SASSC_OPT "$SRC_DIR/gnome-shell/shell-3-28/gnome-shell${ELSE_DARK:-}$size.scss" "$THEME_DIR/gnome-shell/gnome-shell.css"
fi
else
if [[ "${GS_VERSION:-}" == 'new' ]]; then
cp -r "$SRC_DIR/gnome-shell/shell-40-0/gnome-shell${ELSE_DARK:-}$size.css" "$THEME_DIR/gnome-shell/gnome-shell.css"
else
cp -r "$SRC_DIR/gnome-shell/shell-3-28/gnome-shell${ELSE_DARK:-}$size.css" "$THEME_DIR/gnome-shell/gnome-shell.css"
fi
fi
cp -r "$SRC_DIR/gnome-shell/common-assets" "$THEME_DIR/gnome-shell/assets"
cp -r "$SRC_DIR/gnome-shell/assets${ELSE_DARK:-}/"*.svg "$THEME_DIR/gnome-shell/assets"
if [[ "$primary" == 'true' ]]; then
cp -r "$SRC_DIR/gnome-shell/theme$theme/checkbox${ELSE_DARK:-}.svg" "$THEME_DIR/gnome-shell/assets/checkbox.svg"
fi
if [[ "$theme" != '' ]]; then
cp -r "$SRC_DIR/gnome-shell/theme$theme/more-results${ELSE_DARK:-}.svg" "$THEME_DIR/gnome-shell/assets/more-results.svg"
cp -r "$SRC_DIR/gnome-shell/theme$theme/toggle-on${ELSE_DARK:-}.svg" "$THEME_DIR/gnome-shell/assets/toggle-on.svg"
fi
cd "$THEME_DIR/gnome-shell"
ln -s assets/no-events.svg no-events.svg
ln -s assets/process-working.svg process-working.svg
ln -s assets/no-notifications.svg no-notifications.svg
mkdir -p "$THEME_DIR/gtk-2.0"
cp -r "$SRC_DIR/gtk-2.0/common/"{apps.rc,hacks.rc,main.rc} "$THEME_DIR/gtk-2.0"
cp -r "$SRC_DIR/gtk-2.0/assets-folder/assets$theme${ELSE_DARK:-}" "$THEME_DIR/gtk-2.0/assets"
cp -r "$SRC_DIR/gtk-2.0/gtkrc$theme${ELSE_DARK:-}" "$THEME_DIR/gtk-2.0/gtkrc"
mkdir -p "$THEME_DIR/gtk-3.0"
cp -r "$SRC_DIR/gtk/assets$theme" "$THEME_DIR/gtk-3.0/assets"
cp -r "$SRC_DIR/gtk/scalable" "$THEME_DIR/gtk-3.0/assets"
cp -r "$SRC_DIR/gtk/thumbnail${ELSE_DARK:-}.png" "$THEME_DIR/gtk-3.0/thumbnail.png"
if [[ "$opacity" == 'solid' || "$blackness" == 'true' || "$accent" == 'true' || "$primary" == 'true' ]]; then
sassc $SASSC_OPT "$SRC_DIR/gtk/3.0/gtk$color$size.scss" "$THEME_DIR/gtk-3.0/gtk.css"
[[ "$color" != '-dark' ]] && \
sassc $SASSC_OPT "$SRC_DIR/gtk/3.0/gtk-dark$size.scss" "$THEME_DIR/gtk-3.0/gtk-dark.css"
else
cp -r "$SRC_DIR/gtk/3.0/gtk$color$size.css" "$THEME_DIR/gtk-3.0/gtk.css"
[[ "$color" != '-dark' ]] && \
cp -r "$SRC_DIR/gtk/3.0/gtk-dark$size.css" "$THEME_DIR/gtk-3.0/gtk-dark.css"
fi
mkdir -p "$THEME_DIR/gtk-4.0"
cp -r "$SRC_DIR/gtk/assets$theme" "$THEME_DIR/gtk-4.0/assets"
cp -r "$SRC_DIR/gtk/scalable" "$THEME_DIR/gtk-4.0/assets"
if [[ "$opacity" == 'solid' || "$blackness" == 'true' || "$accent" == 'true' || "$primary" == 'true' ]]; then
sassc $SASSC_OPT "$SRC_DIR/gtk/4.0/gtk$color$size.scss" "$THEME_DIR/gtk-4.0/gtk.css"
[[ "$color" != '-dark' ]] && \
sassc $SASSC_OPT "$SRC_DIR/gtk/4.0/gtk-dark$size.scss" "$THEME_DIR/gtk-4.0/gtk-dark.css"
else
cp -r "$SRC_DIR/gtk/4.0/gtk$color$size.css" "$THEME_DIR/gtk-4.0/gtk.css"
[[ "$color" != '-dark' ]] && \
cp -r "$SRC_DIR/gtk/4.0/gtk-dark$size.css" "$THEME_DIR/gtk-4.0/gtk-dark.css"
fi
mkdir -p "$THEME_DIR/xfwm4"
cp -r "$SRC_DIR/xfwm4/assets${ELSE_LIGHT:-}/"*.png "$THEME_DIR/xfwm4"
cp -r "$SRC_DIR/xfwm4/themerc${ELSE_LIGHT:-}" "$THEME_DIR/xfwm4/themerc"
mkdir -p "$THEME_DIR/cinnamon"
cp -r "$SRC_DIR/cinnamon/common-assets" "$THEME_DIR/cinnamon/assets"
cp -r "$SRC_DIR/cinnamon/assets${ELSE_DARK:-}/"*.svg "$THEME_DIR/cinnamon/assets"
if [[ "$opacity" == 'solid' || "$blackness" == 'true' || "$accent" == 'true' ]]; then
sassc $SASSC_OPT "$SRC_DIR/cinnamon/cinnamon${ELSE_DARK:-}.scss" "$THEME_DIR/cinnamon/cinnamon.css"
else
cp -r "$SRC_DIR/cinnamon/cinnamon${ELSE_DARK:-}.css" "$THEME_DIR/cinnamon/cinnamon.css"
fi
cp -r "$SRC_DIR/cinnamon/thumbnail${ELSE_DARK:-}.png" "$THEME_DIR/cinnamon/thumbnail.png"
mkdir -p "$THEME_DIR/metacity-1"
cp -r "$SRC_DIR/metacity-1/metacity-theme-2${color}.xml" "$THEME_DIR/metacity-1/metacity-theme-2.xml"
cp -r "$SRC_DIR/metacity-1/metacity-theme-3.xml" "$THEME_DIR/metacity-1"
cp -r "$SRC_DIR/metacity-1/assets" "$THEME_DIR/metacity-1"
cp -r "$SRC_DIR/metacity-1/thumbnail${ELSE_DARK:-}.png" "$THEME_DIR/metacity-1/thumbnail.png"
cd "$THEME_DIR/metacity-1" && ln -s metacity-theme-2.xml metacity-theme-1.xml
mkdir -p "$THEME_DIR/plank"
cp -r "$SRC_DIR/plank/dock.theme" "$THEME_DIR/plank"
}
# Install needed packages
install_package() {
if [ ! "$(which sassc 2> /dev/null)" ]; then
echo sassc needs to be installed to generate the css.
if has_command zypper; then
sudo zypper in sassc
elif has_command apt-get; then
sudo apt-get install sassc
elif has_command dnf; then
sudo dnf install sassc
elif has_command dnf; then
sudo dnf install sassc
elif has_command pacman; then
sudo pacman -S --noconfirm sassc
fi
fi
}
tweaks_temp() {
cp -rf ${SRC_DIR}/_sass/_tweaks.scss ${SRC_DIR}/_sass/_tweaks-temp.scss
cp -rf ${SRC_DIR}/gnome-shell/sass/_tweaks.scss ${SRC_DIR}/gnome-shell/sass/_tweaks-temp.scss
}
change_radio_color() {
sed -i "/\$check_radio:/s/default/primary/" ${SRC_DIR}/_sass/_tweaks-temp.scss
echo "Change radio color ..."
}
install_theme_color() {
sed -i "/\$theme:/s/default/${theme_color}/" ${SRC_DIR}/gnome-shell/sass/_tweaks-temp.scss
sed -i "/\$theme:/s/default/${theme_color}/" ${SRC_DIR}/_sass/_tweaks-temp.scss
echo -e "Install ${theme_color} color version ..."
}
install_compact_panel() {
sed -i "/\$panel_style:/s/float/compact/" ${SRC_DIR}/gnome-shell/sass/_tweaks-temp.scss
echo -e "Install compact panel version ..."
}
install_solid() {
sed -i "/\$opacity:/s/default/solid/" ${SRC_DIR}/gnome-shell/sass/_tweaks-temp.scss
sed -i "/\$opacity:/s/default/solid/" ${SRC_DIR}/_sass/_tweaks-temp.scss
echo -e "Install solid version ..."
}
install_black() {
sed -i "/\$blackness:/s/false/true/" ${SRC_DIR}/gnome-shell/sass/_tweaks-temp.scss
sed -i "/\$blackness:/s/false/true/" ${SRC_DIR}/_sass/_tweaks-temp.scss
echo -e "Install black version ..."
}
install_theme() {
for theme in "${themes[@]}"; do
for color in "${colors[@]}"; do
for size in "${sizes[@]}"; do
install "${dest:-$DEST_DIR}" "${_name:-$THEME_NAME}" "$theme" "$color" "$size"
done
done
done
}
customize_theme() {
if [[ "$panel" == "compact" ]] ; then
install_compact_panel
fi
if [[ "$opacity" == "solid" ]] ; then
install_solid
fi
if [[ "$blackness" == "true" ]] ; then
install_black
fi
if [[ "$primary" == "true" ]] ; then
change_radio_color
fi
}

@ -1,36 +1,7 @@
#!/bin/bash
#! /usr/bin/env bash
REPO_DIR="$(cd "$(dirname "$0")" && pwd)"
SRC_DIR="$REPO_DIR/src"
ROOT_UID=0
DEST_DIR=
# Destination directory
if [ "$UID" -eq "$ROOT_UID" ]; then
DEST_DIR="/usr/share/themes"
else
DEST_DIR="$HOME/.themes"
fi
SASSC_OPT="-M -t expanded"
THEME_NAME=Orchis
THEME_VARIANTS=('' '-purple' '-pink' '-red' '-orange' '-yellow' '-green' '-grey')
COLOR_VARIANTS=('' '-light' '-dark')
SIZE_VARIANTS=('' '-compact')
if [[ "$(command -v gnome-shell)" ]]; then
SHELL_VERSION="$(gnome-shell --version | cut -d ' ' -f 3 | cut -d . -f -1)"
if [[ "${SHELL_VERSION:-}" -ge "40" ]]; then
GS_VERSION="new"
else
GS_VERSION="old"
fi
else
echo "'gnome-shell' not found, using styles for last gnome-shell version available."
GS_VERSION="new"
fi
REPO_DIR="$(dirname "$(readlink -m "${0}")")"
source "${REPO_DIR}/core.sh"
usage() {
cat << EOF
@ -39,7 +10,7 @@ Usage: $0 [OPTION]...
OPTIONS:
-d, --dest DIR Specify destination directory (Default: $DEST_DIR)
-n, --name NAME Specify theme name (Default: $THEME_NAME)
-t, --theme VARIANT Specify theme color variant(s) [default|purple|pink|red|orange|yellow|green|grey] (Default: blue)
-t, --theme VARIANT Specify theme color variant(s) [default|purple|pink|red|orange|yellow|green|grey|all] (Default: blue)
-c, --color VARIANT... Specify color variant(s) [standard|light|dark] (Default: All variants)s)
-s, --size VARIANT Specify size variant [standard|compact] (Default: All variants)
--tweaks Specify versions for tweaks [solid|compact|black|primary] (Options can mix)
@ -59,133 +30,6 @@ Install specific theme variants with different name into ~/.themes
EOF
}
install() {
local dest="$1"
local name="$2"
local theme="$3"
local color="$4"
local size="$5"
[[ "$color" == '-dark' ]] && local ELSE_DARK="$color"
[[ "$color" == '-light' ]] && local ELSE_LIGHT="$color"
local THEME_DIR="$dest/$name$theme$color$size"
[[ -d "$THEME_DIR" ]] && rm -rf "${THEME_DIR:?}"
echo "Installing '$THEME_DIR'..."
mkdir -p "$THEME_DIR"
cp -r "$REPO_DIR/COPYING" "$THEME_DIR"
echo "[Desktop Entry]" >> "$THEME_DIR/index.theme"
echo "Type=X-GNOME-Metatheme" >> "$THEME_DIR/index.theme"
echo "Name=$name$theme$color$size" >> "$THEME_DIR/index.theme"
echo "Comment=An Materia Gtk+ theme based on Elegant Design" >> "$THEME_DIR/index.theme"
echo "Encoding=UTF-8" >> "$THEME_DIR/index.theme"
echo "" >> "$THEME_DIR/index.theme"
echo "[X-GNOME-Metatheme]" >> "$THEME_DIR/index.theme"
echo "GtkTheme=$name$theme$color$size" >> "$THEME_DIR/index.theme"
echo "MetacityTheme=$name$theme$color$size" >> "$THEME_DIR/index.theme"
echo "IconTheme=Tela-circle${ELSE_DARK:-}" >> "$THEME_DIR/index.theme"
echo "CursorTheme=Vimix${ELSE_DARK:-}" >> "$THEME_DIR/index.theme"
echo "ButtonLayout=close,minimize,maximize:menu" >> "$THEME_DIR/index.theme"
mkdir -p "$THEME_DIR/gnome-shell"
cp -r "$SRC_DIR/gnome-shell/pad-osd.css" "$THEME_DIR/gnome-shell"
if [[ "$panel" == 'compact' || "$opacity" == 'solid' || "$blackness" == 'true' || "$theme" != 'default' ]]; then
if [[ "${GS_VERSION:-}" == 'new' ]]; then
sassc $SASSC_OPT "$SRC_DIR/gnome-shell/shell-40-0/gnome-shell${ELSE_DARK:-}$size.scss" "$THEME_DIR/gnome-shell/gnome-shell.css"
else
sassc $SASSC_OPT "$SRC_DIR/gnome-shell/shell-3-28/gnome-shell${ELSE_DARK:-}$size.scss" "$THEME_DIR/gnome-shell/gnome-shell.css"
fi
else
if [[ "${GS_VERSION:-}" == 'new' ]]; then
cp -r "$SRC_DIR/gnome-shell/shell-40-0/gnome-shell${ELSE_DARK:-}$size.css" "$THEME_DIR/gnome-shell/gnome-shell.css"
else
cp -r "$SRC_DIR/gnome-shell/shell-3-28/gnome-shell${ELSE_DARK:-}$size.css" "$THEME_DIR/gnome-shell/gnome-shell.css"
fi
fi
cp -r "$SRC_DIR/gnome-shell/common-assets" "$THEME_DIR/gnome-shell/assets"
cp -r "$SRC_DIR/gnome-shell/assets${ELSE_DARK:-}/"*.svg "$THEME_DIR/gnome-shell/assets"
if [[ "$primary" == 'true' ]]; then
cp -r "$SRC_DIR/gnome-shell/theme$theme/checkbox${ELSE_DARK:-}.svg" "$THEME_DIR/gnome-shell/assets/checkbox.svg"
fi
if [[ "$theme" != '' ]]; then
cp -r "$SRC_DIR/gnome-shell/theme$theme/more-results${ELSE_DARK:-}.svg" "$THEME_DIR/gnome-shell/assets/more-results.svg"
cp -r "$SRC_DIR/gnome-shell/theme$theme/toggle-on${ELSE_DARK:-}.svg" "$THEME_DIR/gnome-shell/assets/toggle-on.svg"
fi
cd "$THEME_DIR/gnome-shell"
ln -s assets/no-events.svg no-events.svg
ln -s assets/process-working.svg process-working.svg
ln -s assets/no-notifications.svg no-notifications.svg
mkdir -p "$THEME_DIR/gtk-2.0"
cp -r "$SRC_DIR/gtk-2.0/common/"{apps.rc,hacks.rc,main.rc} "$THEME_DIR/gtk-2.0"
cp -r "$SRC_DIR/gtk-2.0/assets-folder/assets$theme${ELSE_DARK:-}" "$THEME_DIR/gtk-2.0/assets"
cp -r "$SRC_DIR/gtk-2.0/gtkrc$theme${ELSE_DARK:-}" "$THEME_DIR/gtk-2.0/gtkrc"
mkdir -p "$THEME_DIR/gtk-3.0"
cp -r "$SRC_DIR/gtk/assets$theme" "$THEME_DIR/gtk-3.0/assets"
cp -r "$SRC_DIR/gtk/scalable" "$THEME_DIR/gtk-3.0/assets"
cp -r "$SRC_DIR/gtk/thumbnail${ELSE_DARK:-}.png" "$THEME_DIR/gtk-3.0/thumbnail.png"
if [[ "$opacity" == 'solid' || "$blackness" == 'true' || "$accent" == 'true' || "$primary" == 'true' ]]; then
sassc $SASSC_OPT "$SRC_DIR/gtk/3.0/gtk$color$size.scss" "$THEME_DIR/gtk-3.0/gtk.css"
[[ "$color" != '-dark' ]] && \
sassc $SASSC_OPT "$SRC_DIR/gtk/3.0/gtk-dark$size.scss" "$THEME_DIR/gtk-3.0/gtk-dark.css"
else
cp -r "$SRC_DIR/gtk/3.0/gtk$color$size.css" "$THEME_DIR/gtk-3.0/gtk.css"
[[ "$color" != '-dark' ]] && \
cp -r "$SRC_DIR/gtk/3.0/gtk-dark$size.css" "$THEME_DIR/gtk-3.0/gtk-dark.css"
fi
mkdir -p "$THEME_DIR/gtk-4.0"
cp -r "$SRC_DIR/gtk/assets$theme" "$THEME_DIR/gtk-4.0/assets"
cp -r "$SRC_DIR/gtk/scalable" "$THEME_DIR/gtk-4.0/assets"
if [[ "$opacity" == 'solid' || "$blackness" == 'true' || "$accent" == 'true' || "$primary" == 'true' ]]; then
sassc $SASSC_OPT "$SRC_DIR/gtk/4.0/gtk$color$size.scss" "$THEME_DIR/gtk-4.0/gtk.css"
[[ "$color" != '-dark' ]] && \
sassc $SASSC_OPT "$SRC_DIR/gtk/4.0/gtk-dark$size.scss" "$THEME_DIR/gtk-4.0/gtk-dark.css"
else
cp -r "$SRC_DIR/gtk/4.0/gtk$color$size.css" "$THEME_DIR/gtk-4.0/gtk.css"
[[ "$color" != '-dark' ]] && \
cp -r "$SRC_DIR/gtk/4.0/gtk-dark$size.css" "$THEME_DIR/gtk-4.0/gtk-dark.css"
fi
mkdir -p "$THEME_DIR/xfwm4"
cp -r "$SRC_DIR/xfwm4/assets${ELSE_LIGHT:-}/"*.png "$THEME_DIR/xfwm4"
cp -r "$SRC_DIR/xfwm4/themerc${ELSE_LIGHT:-}" "$THEME_DIR/xfwm4/themerc"
mkdir -p "$THEME_DIR/cinnamon"
cp -r "$SRC_DIR/cinnamon/common-assets" "$THEME_DIR/cinnamon/assets"
cp -r "$SRC_DIR/cinnamon/assets${ELSE_DARK:-}/"*.svg "$THEME_DIR/cinnamon/assets"
if [[ "$opacity" == 'solid' || "$blackness" == 'true' || "$accent" == 'true' ]]; then
sassc $SASSC_OPT "$SRC_DIR/cinnamon/cinnamon${ELSE_DARK:-}.scss" "$THEME_DIR/cinnamon/cinnamon.css"
else
cp -r "$SRC_DIR/cinnamon/cinnamon${ELSE_DARK:-}.css" "$THEME_DIR/cinnamon/cinnamon.css"
fi
cp -r "$SRC_DIR/cinnamon/thumbnail${ELSE_DARK:-}.png" "$THEME_DIR/cinnamon/thumbnail.png"
mkdir -p "$THEME_DIR/metacity-1"
cp -r "$SRC_DIR/metacity-1/metacity-theme-2${color}.xml" "$THEME_DIR/metacity-1/metacity-theme-2.xml"
cp -r "$SRC_DIR/metacity-1/metacity-theme-3.xml" "$THEME_DIR/metacity-1"
cp -r "$SRC_DIR/metacity-1/assets" "$THEME_DIR/metacity-1"
cp -r "$SRC_DIR/metacity-1/thumbnail${ELSE_DARK:-}.png" "$THEME_DIR/metacity-1/thumbnail.png"
cd "$THEME_DIR/metacity-1" && ln -s metacity-theme-2.xml metacity-theme-1.xml
mkdir -p "$THEME_DIR/plank"
cp -r "$SRC_DIR/plank/dock.theme" "$THEME_DIR/plank"
}
themes=()
colors=()
sizes=()
@ -203,8 +47,8 @@ while [[ "$#" -gt 0 ]]; do
;;
--tweaks)
shift
for tweaks in $@; do
case "$tweaks" in
for variant in $@; do
case "$variant" in
solid)
opacity="solid"
shift
@ -350,91 +194,6 @@ while [[ "$#" -gt 0 ]]; do
esac
done
# Install needed packages
install_package() {
if [ ! "$(which sassc 2> /dev/null)" ]; then
echo sassc needs to be installed to generate the css.
if has_command zypper; then
sudo zypper in sassc
elif has_command apt-get; then
sudo apt-get install sassc
elif has_command dnf; then
sudo dnf install sassc
elif has_command dnf; then
sudo dnf install sassc
elif has_command pacman; then
sudo pacman -S --noconfirm sassc
fi
fi
}
change_radio_color() {
cd ${SRC_DIR}/_sass
cp -an _tweaks.scss _tweaks.scss.bak
sed -i "/\$check_radio:/s/default/primary/" _tweaks.scss
echo "Change radio color ..."
}
install_theme_color() {
cd ${SRC_DIR}/gnome-shell/sass
cp -an _tweaks.scss _tweaks.scss.bak
sed -i "/\$theme:/s/default/${theme_color}/" _tweaks.scss
cd ${SRC_DIR}/_sass
cp -an _tweaks.scss _tweaks.scss.bak
sed -i "/\$theme:/s/default/${theme_color}/" _tweaks.scss
echo -e "Install ${theme_color} color version ..."
}
install_compact_panel() {
cd ${SRC_DIR}/gnome-shell/sass
cp -an _tweaks.scss _tweaks.scss.bak
sed -i "/\$panel_style:/s/float/compact/" _tweaks.scss
echo -e "Install compact panel version ..."
}
install_solid() {
cd ${SRC_DIR}/gnome-shell/sass
cp -an _tweaks.scss _tweaks.scss.bak
sed -i "/\$opacity:/s/default/solid/" _tweaks.scss
cd ${SRC_DIR}/_sass
cp -an _tweaks.scss _tweaks.scss.bak
sed -i "/\$opacity:/s/default/solid/" _tweaks.scss
echo -e "Install solid version ..."
}
install_black() {
cd ${SRC_DIR}/gnome-shell/sass
cp -an _tweaks.scss _tweaks.scss.bak
sed -i "/\$blackness:/s/false/true/" _tweaks.scss
cd ${SRC_DIR}/_sass
cp -an _tweaks.scss _tweaks.scss.bak
sed -i "/\$blackness:/s/false/true/" _tweaks.scss
echo -e "Install black version ..."
}
restore_tweaks() {
if [[ -f ${SRC_DIR}/gnome-shell/sass/_tweaks.scss.bak ]]; then
rm -rf ${SRC_DIR}/gnome-shell/sass/_tweaks.scss
mv ${SRC_DIR}/gnome-shell/sass/_tweaks.scss.bak ${SRC_DIR}/gnome-shell/sass/_tweaks.scss
fi
if [[ -f ${SRC_DIR}/_sass/_tweaks.scss.bak ]]; then
rm -rf ${SRC_DIR}/_sass/_tweaks.scss
mv ${SRC_DIR}/_sass/_tweaks.scss.bak ${SRC_DIR}/_sass/_tweaks.scss
echo -e "Restore _tweaks.scss file ..."
fi
}
install_theme() {
for theme in "${themes[@]}"; do
for color in "${colors[@]}"; do
for size in "${sizes[@]}"; do
install "${dest:-$DEST_DIR}" "${_name:-$THEME_NAME}" "$theme" "$color" "$size"
done
done
done
}
if [[ "${#themes[@]}" -eq 0 ]] ; then
themes=("${THEME_VARIANTS[0]}")
fi
@ -447,27 +206,14 @@ if [[ "${#sizes[@]}" -eq 0 ]] ; then
sizes=("${SIZE_VARIANTS[@]}")
fi
if [[ "$accent" == 'true' ]] ; then
install_package && install_theme_color
fi
if [[ "$panel" == "compact" ]] ; then
install_package && install_compact_panel
fi
if [[ "$opacity" == "solid" ]] ; then
install_package && install_solid
fi
if [[ "$blackness" == "true" ]] ; then
install_package && install_black
fi
install_package; tweaks_temp
if [[ "$primary" == "true" ]] ; then
install_package && change_radio_color
if [[ "$accent" == 'true' && "$theme_color" != 'default' ]] ; then
install_theme_color
fi
install_theme && restore_tweaks
customize_theme; install_theme
echo
echo "Done."

@ -1,7 +1,7 @@
// When color definition differs for dark and light variant,
// it gets @if ed depending on $variant
@import 'tweaks';
@import 'tweaks-temp';
@import 'color-palette';
@function gtkalpha($c, $a) {

@ -1,4 +1,4 @@
@import 'tweaks';
@import 'tweaks-temp';
$asset-suffix: if($variant == 'dark', '-dark', '');
$theme-asset-suffix: if($topbar == 'dark', if($variant == 'dark', '-dark', ''), '-light');

@ -1,7 +1,7 @@
// When color definition differs for dark and light variant,
// it gets @if ed depending on $variant
@import 'tweaks';
@import 'tweaks-temp';
@import 'color-palette';
@function fade($c) {

@ -1,5 +1,5 @@
@import 'tweaks';
@import 'tweaks-temp';
$asset_suffix: if($variant == 'dark', '-dark', '');
$extra_background_clip: if($variant == 'light', padding-box, border-box);

Loading…
Cancel
Save