Colloid-gtk-theme/install.sh

637 lines
21 KiB
Bash
Raw Normal View History

2021-12-09 08:53:04 -05:00
#! /usr/bin/env bash
set -Eeo pipefail
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
SRC_DIR="${REPO_DIR}/src"
2022-02-20 22:17:51 -05:00
source "${REPO_DIR}/gtkrc.sh"
2021-12-09 08:53:04 -05:00
ROOT_UID=0
DEST_DIR=
ctype=
2021-12-31 02:08:42 -05:00
window=
2021-12-09 08:53:04 -05:00
# 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=Colloid
2022-05-14 13:41:43 -04:00
THEME_VARIANTS=('' '-Purple' '-Pink' '-Red' '-Orange' '-Yellow' '-Green' '-Teal' '-Grey')
COLOR_VARIANTS=('' '-Light' '-Dark')
SIZE_VARIANTS=('' '-Compact')
2021-12-09 08:53:04 -05:00
if [[ "$(command -v gnome-shell)" ]]; then
2022-04-23 05:58:25 -04:00
gnome-shell --version
2021-12-09 08:53:04 -05:00
SHELL_VERSION="$(gnome-shell --version | cut -d ' ' -f 3 | cut -d . -f -1)"
2022-04-22 08:19:01 -04:00
if [[ "${SHELL_VERSION:-}" -ge "42" ]]; then
2022-04-23 05:58:25 -04:00
GS_VERSION="42-0"
2022-04-22 08:19:01 -04:00
elif [[ "${SHELL_VERSION:-}" -ge "40" ]]; then
2022-04-23 05:58:25 -04:00
GS_VERSION="40-0"
2021-12-09 08:53:04 -05:00
else
2022-04-23 05:58:25 -04:00
GS_VERSION="3-28"
2021-12-09 08:53:04 -05:00
fi
else
echo "'gnome-shell' not found, using styles for last gnome-shell version available."
2022-04-23 23:19:11 -04:00
GS_VERSION="42-0"
2021-12-09 08:53:04 -05:00
fi
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)
-t, --theme VARIANT Specify theme color variant(s) [default|purple|pink|red|orange|yellow|green|teal|grey|all] (Default: blue)
2022-05-14 13:41:43 -04:00
-c, --color VARIANT Specify color variant(s) [standard|light|dark] (Default: All variants))
2021-12-09 08:53:04 -05:00
2022-05-14 13:41:43 -04:00
-s, --size VARIANT Specify size variant [standard|compact] (Default: standard variant)
2021-12-09 08:53:04 -05:00
2022-11-01 11:05:07 -04:00
-l, --libadwaita Link installed gtk-4.0 theme to config folder for all libadwaita app use this theme
-r, --remove,
-u, --uninstall Uninstall/Remove installed themes or links
2022-08-12 03:15:53 -04:00
2022-02-15 06:08:10 -05:00
--tweaks Specify versions for tweaks [nord|dracula|black|rimless|normal] (only nord and dracula can not mix use with!)
1. nord: Nord ColorScheme version
2. dracula Dracula ColorScheme version
3. black: Blackness color version
4. rimless: Remove the 1px border about windows and menus
5. normal: Normal windows button style (titlebuttons: max/min/close)
2021-12-09 08:53:04 -05:00
-h, --help Show help
EOF
}
install() {
local dest="${1}"
local name="${2}"
local theme="${3}"
local color="${4}"
local size="${5}"
local ctype="${6}"
2021-12-31 02:08:42 -05:00
local window="${7}"
2021-12-09 08:53:04 -05:00
2022-05-14 13:41:43 -04:00
[[ "${color}" == '-Light' ]] && local ELSE_LIGHT="${color}"
[[ "${color}" == '-Dark' ]] && local ELSE_DARK="${color}"
2021-12-09 08:53:04 -05:00
local THEME_DIR="${1}/${2}${3}${4}${5}${6}"
[[ -d "${THEME_DIR}" ]] && rm -rf "${THEME_DIR}"
echo "Installing '${THEME_DIR}'..."
theme_tweaks
mkdir -p "${THEME_DIR}"
echo "[Desktop Entry]" >> "${THEME_DIR}/index.theme"
echo "Type=X-GNOME-Metatheme" >> "${THEME_DIR}/index.theme"
echo "Name=${2}${3}${4}${5}${6}" >> "${THEME_DIR}/index.theme"
echo "Comment=An Flat 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=${2}${3}${4}${5}${6}" >> "${THEME_DIR}/index.theme"
echo "MetacityTheme=${2}${3}${4}${5}${6}" >> "${THEME_DIR}/index.theme"
echo "IconTheme=Tela-circle${ELSE_DARK:-}" >> "${THEME_DIR}/index.theme"
echo "CursorTheme=${2}-cursors" >> "${THEME_DIR}/index.theme"
echo "ButtonLayout=close,minimize,maximize:menu" >> "${THEME_DIR}/index.theme"
mkdir -p "${THEME_DIR}/gnome-shell"
cp -r "${SRC_DIR}/main/gnome-shell/pad-osd.css" "${THEME_DIR}/gnome-shell"
2022-04-22 08:19:01 -04:00
sassc $SASSC_OPT "${SRC_DIR}/main/gnome-shell/gnome-shell${color}.scss" "${THEME_DIR}/gnome-shell/gnome-shell.css"
2021-12-09 08:53:04 -05:00
cp -r "${SRC_DIR}/assets/gnome-shell/common-assets" "${THEME_DIR}/gnome-shell/assets"
cp -r "${SRC_DIR}/assets/gnome-shell/assets${ELSE_DARK:-}/"*.svg "${THEME_DIR}/gnome-shell/assets"
2022-02-16 10:04:25 -05:00
cp -r "${SRC_DIR}/assets/gnome-shell/theme${theme}${ctype}/"*.svg "${THEME_DIR}/gnome-shell/assets"
2021-12-09 08:53:04 -05:00
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"
2022-02-20 22:17:51 -05:00
# cp -r "${SRC_DIR}/main/gtk-2.0/gtkrc${theme}${ELSE_DARK:-}${ctype}" "${THEME_DIR}/gtk-2.0/gtkrc"
2021-12-09 08:53:04 -05:00
cp -r "${SRC_DIR}/main/gtk-2.0/common/"*'.rc' "${THEME_DIR}/gtk-2.0"
2022-02-18 20:25:25 -05:00
cp -r "${SRC_DIR}/assets/gtk-2.0/assets-common${ELSE_DARK:-}" "${THEME_DIR}/gtk-2.0/assets"
cp -r "${SRC_DIR}/assets/gtk-2.0/assets${theme}${ELSE_DARK:-}${ctype}/"*"png" "${THEME_DIR}/gtk-2.0/assets"
2021-12-09 08:53:04 -05:00
mkdir -p "${THEME_DIR}/gtk-3.0"
cp -r "${SRC_DIR}/assets/gtk/assets${theme}${ctype}" "${THEME_DIR}/gtk-3.0/assets"
cp -r "${SRC_DIR}/assets/gtk/scalable" "${THEME_DIR}/gtk-3.0/assets"
2022-02-17 19:09:50 -05:00
cp -r "${SRC_DIR}/assets/gtk/thumbnails/thumbnail${theme}${ctype}${ELSE_DARK:-}.png" "${THEME_DIR}/gtk-3.0/thumbnail.png"
2022-04-22 08:19:01 -04:00
sassc $SASSC_OPT "${SRC_DIR}/main/gtk-3.0/gtk${color}.scss" "${THEME_DIR}/gtk-3.0/gtk.css"
2022-05-14 13:41:43 -04:00
sassc $SASSC_OPT "${SRC_DIR}/main/gtk-3.0/gtk-Dark.scss" "${THEME_DIR}/gtk-3.0/gtk-dark.css"
2021-12-09 08:53:04 -05:00
mkdir -p "${THEME_DIR}/gtk-4.0"
cp -r "${SRC_DIR}/assets/gtk/assets${theme}${ctype}" "${THEME_DIR}/gtk-4.0/assets"
cp -r "${SRC_DIR}/assets/gtk/scalable" "${THEME_DIR}/gtk-4.0/assets"
2022-02-17 19:09:50 -05:00
cp -r "${SRC_DIR}/assets/gtk/thumbnails/thumbnail${theme}${ctype}${ELSE_DARK:-}.png" "${THEME_DIR}/gtk-4.0/thumbnail.png"
2022-04-22 08:19:01 -04:00
sassc $SASSC_OPT "${SRC_DIR}/main/gtk-4.0/gtk${color}.scss" "${THEME_DIR}/gtk-4.0/gtk.css"
2022-05-14 13:41:43 -04:00
sassc $SASSC_OPT "${SRC_DIR}/main/gtk-4.0/gtk-Dark.scss" "${THEME_DIR}/gtk-4.0/gtk-dark.css"
2021-12-09 08:53:04 -05:00
mkdir -p "${THEME_DIR}/cinnamon"
cp -r "${SRC_DIR}/assets/cinnamon/common-assets" "${THEME_DIR}/cinnamon/assets"
cp -r "${SRC_DIR}/assets/cinnamon/assets${ELSE_DARK:-}/"*'.svg' "${THEME_DIR}/cinnamon/assets"
2022-02-16 10:04:25 -05:00
cp -r "${SRC_DIR}/assets/cinnamon/theme${theme}${ctype}/"*'.svg' "${THEME_DIR}/cinnamon/assets"
2022-04-22 08:19:01 -04:00
sassc $SASSC_OPT "${SRC_DIR}/main/cinnamon/cinnamon${color}.scss" "${THEME_DIR}/cinnamon/cinnamon.css"
2022-02-16 10:04:25 -05:00
cp -r "${SRC_DIR}/assets/cinnamon/thumbnails/thumbnail${theme}${ctype}${color}.png" "${THEME_DIR}/cinnamon/thumbnail.png"
2021-12-09 08:53:04 -05:00
mkdir -p "${THEME_DIR}/metacity-1"
2022-02-19 23:14:37 -05:00
cp -r "${SRC_DIR}/main/metacity-1/metacity-theme-3${window}.xml" "${THEME_DIR}/metacity-1/metacity-theme-3.xml"
cp -r "${SRC_DIR}/assets/metacity-1/assets${window}" "${THEME_DIR}/metacity-1/assets"
2021-12-09 08:53:04 -05:00
cp -r "${SRC_DIR}/assets/metacity-1/thumbnail${ELSE_DARK:-}.png" "${THEME_DIR}/metacity-1/thumbnail.png"
2022-02-19 23:14:37 -05:00
cd "${THEME_DIR}/metacity-1" && ln -s metacity-theme-3.xml metacity-theme-1.xml && ln -s metacity-theme-3.xml metacity-theme-2.xml
2021-12-09 08:53:04 -05:00
mkdir -p "${THEME_DIR}/xfwm4"
2021-12-31 02:08:42 -05:00
cp -r "${SRC_DIR}/assets/xfwm4/assets${ELSE_LIGHT:-}${ctype}${window}/"*.png "${THEME_DIR}/xfwm4"
2021-12-09 08:53:04 -05:00
cp -r "${SRC_DIR}/main/xfwm4/themerc${ELSE_LIGHT:-}" "${THEME_DIR}/xfwm4/themerc"
mkdir -p "${THEME_DIR}-hdpi/xfwm4"
2021-12-31 02:08:42 -05:00
cp -r "${SRC_DIR}/assets/xfwm4/assets${ELSE_LIGHT:-}${ctype}${window}-hdpi/"*.png "${THEME_DIR}-hdpi/xfwm4"
2021-12-09 08:53:04 -05:00
cp -r "${SRC_DIR}/main/xfwm4/themerc${ELSE_LIGHT:-}" "${THEME_DIR}-hdpi/xfwm4/themerc"
2022-02-19 23:14:37 -05:00
sed -i "s/button_offset=6/button_offset=9/" "${THEME_DIR}-hdpi/xfwm4/themerc"
2021-12-09 08:53:04 -05:00
mkdir -p "${THEME_DIR}-xhdpi/xfwm4"
2021-12-31 02:08:42 -05:00
cp -r "${SRC_DIR}/assets/xfwm4/assets${ELSE_LIGHT:-}${ctype}${window}-xhdpi/"*.png "${THEME_DIR}-xhdpi/xfwm4"
2021-12-09 08:53:04 -05:00
cp -r "${SRC_DIR}/main/xfwm4/themerc${ELSE_LIGHT:-}" "${THEME_DIR}-xhdpi/xfwm4/themerc"
2022-02-19 23:14:37 -05:00
sed -i "s/button_offset=6/button_offset=12/" "${THEME_DIR}-xhdpi/xfwm4/themerc"
2021-12-31 02:08:42 -05:00
2021-12-13 21:53:31 -05:00
mkdir -p "${THEME_DIR}/plank"
2022-05-14 13:41:43 -04:00
if [[ "$color" == '-Light' ]]; then
cp -r "${SRC_DIR}/main/plank/theme-Light${ctype}/"* "${THEME_DIR}/plank"
2021-12-13 21:53:31 -05:00
else
2022-05-14 13:41:43 -04:00
cp -r "${SRC_DIR}/main/plank/theme-Dark${ctype}/"* "${THEME_DIR}/plank"
2021-12-13 21:53:31 -05:00
fi
2021-12-09 08:53:04 -05:00
}
themes=()
colors=()
sizes=()
2022-09-21 11:46:13 -04:00
lcolors=()
2021-12-09 08:53:04 -05:00
while [[ $# -gt 0 ]]; do
case "${1}" in
-d|--dest)
dest="${2}"
if [[ ! -d "${dest}" ]]; then
echo "Destination directory does not exist. Let's make a new one..."
mkdir -p ${dest}
fi
shift 2
;;
-n|--name)
name="${2}"
shift 2
;;
2022-11-01 11:05:07 -04:00
-r|--remove|-u|--uninstall)
uninstall="true"
shift
;;
-l|--libadwaita)
libadwaita="true"
shift
;;
2021-12-09 08:53:04 -05:00
-c|--color)
shift
for color in "${@}"; do
case "${color}" in
standard)
colors+=("${COLOR_VARIANTS[0]}")
2022-09-21 11:46:13 -04:00
lcolors+=("${COLOR_VARIANTS[0]}")
2021-12-09 08:53:04 -05:00
shift
;;
light)
colors+=("${COLOR_VARIANTS[1]}")
2022-09-21 11:46:13 -04:00
lcolors+=("${COLOR_VARIANTS[1]}")
2021-12-09 08:53:04 -05:00
shift
;;
dark)
colors+=("${COLOR_VARIANTS[2]}")
2022-09-21 11:46:13 -04:00
lcolors+=("${COLOR_VARIANTS[2]}")
2021-12-09 08:53:04 -05:00
shift
;;
-*|--*)
break
;;
*)
echo "ERROR: Unrecognized color variant '$1'."
echo "Try '$0 --help' for more information."
exit 1
;;
esac
done
;;
-t|--theme)
accent='true'
shift
for variant in "$@"; do
case "$variant" in
default)
themes+=("${THEME_VARIANTS[0]}")
shift
;;
purple)
themes+=("${THEME_VARIANTS[1]}")
shift
;;
pink)
themes+=("${THEME_VARIANTS[2]}")
shift
;;
red)
themes+=("${THEME_VARIANTS[3]}")
shift
;;
orange)
themes+=("${THEME_VARIANTS[4]}")
shift
;;
yellow)
themes+=("${THEME_VARIANTS[5]}")
shift
;;
green)
themes+=("${THEME_VARIANTS[6]}")
shift
;;
teal)
themes+=("${THEME_VARIANTS[7]}")
shift
;;
grey)
themes+=("${THEME_VARIANTS[8]}")
shift
;;
all)
themes+=("${THEME_VARIANTS[@]}")
shift
;;
-*)
break
;;
*)
echo "ERROR: Unrecognized theme 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]}")
compact='true'
shift
;;
-*)
break
;;
*)
echo "ERROR: Unrecognized size variant '${1:-}'."
echo "Try '$0 --help' for more information."
exit 1
;;
esac
done
;;
--tweaks)
shift
for variant in $@; do
case "$variant" in
nord)
nord="true"
2022-05-14 13:41:43 -04:00
ctype="-Nord"
2022-08-12 03:15:53 -04:00
echo -e "Nord ColorScheme version! ..."
2022-02-15 03:51:51 -05:00
shift
;;
dracula)
dracula="true"
2022-05-14 13:41:43 -04:00
ctype="-Dracula"
2022-08-12 03:15:53 -04:00
echo -e "Dracula ColorScheme version! ..."
2021-12-09 08:53:04 -05:00
shift
;;
black)
blackness="true"
2022-08-12 03:15:53 -04:00
echo -e "Blackness version! ..."
2021-12-09 08:53:04 -05:00
shift
;;
rimless)
rimless="true"
2022-08-12 03:15:53 -04:00
echo -e "Rimless version! ..."
2021-12-09 08:53:04 -05:00
shift
;;
2021-12-10 11:11:10 -05:00
normal)
normal="true"
2022-05-14 13:41:43 -04:00
window="-Normal"
2022-08-12 03:15:53 -04:00
echo -e "Normal window button version! ..."
2021-12-10 11:11:10 -05:00
shift
;;
2021-12-09 08:53:04 -05:00
-*)
break
;;
*)
echo "ERROR: Unrecognized tweaks 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 [[ "${#themes[@]}" -eq 0 ]] ; then
themes=("${THEME_VARIANTS[0]}")
fi
if [[ "${#colors[@]}" -eq 0 ]] ; then
colors=("${COLOR_VARIANTS[@]}")
fi
2022-09-21 11:46:13 -04:00
if [[ "${#lcolors[@]}" -eq 0 ]] ; then
lcolors=("${COLOR_VARIANTS[1]}")
fi
2021-12-09 08:53:04 -05:00
if [[ "${#sizes[@]}" -eq 0 ]] ; then
sizes=("${SIZE_VARIANTS[0]}")
fi
# Check command avalibility
function has_command() {
command -v $1 > /dev/null
}
# 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
}
2022-05-14 13:41:43 -04:00
tweaks_temp() {
2021-12-09 08:53:04 -05:00
cp -rf ${SRC_DIR}/sass/_tweaks.scss ${SRC_DIR}/sass/_tweaks-temp.scss
}
compact_size() {
sed -i "/\$compact:/s/false/true/" ${SRC_DIR}/sass/_tweaks-temp.scss
}
nord_color() {
2022-02-15 03:51:51 -05:00
sed -i "/\@import/s/color-palette-default/color-palette-nord/" ${SRC_DIR}/sass/_tweaks-temp.scss
sed -i "/\$colorscheme:/s/default/nord/" ${SRC_DIR}/sass/_tweaks-temp.scss
}
dracula_color() {
sed -i "/\@import/s/color-palette-default/color-palette-dracula/" ${SRC_DIR}/sass/_tweaks-temp.scss
sed -i "/\$colorscheme:/s/default/dracula/" ${SRC_DIR}/sass/_tweaks-temp.scss
2021-12-09 08:53:04 -05:00
}
blackness_color() {
2022-02-15 03:51:51 -05:00
sed -i "/\$blackness:/s/false/true/" ${SRC_DIR}/sass/_tweaks-temp.scss
2021-12-09 08:53:04 -05:00
}
border_rimless() {
sed -i "/\$rimless:/s/false/true/" ${SRC_DIR}/sass/_tweaks-temp.scss
}
2021-12-10 11:11:10 -05:00
normal_winbutton() {
sed -i "/\$window_button:/s/mac/normal/" ${SRC_DIR}/sass/_tweaks-temp.scss
}
2022-04-22 08:19:01 -04:00
gnome_shell_version() {
2022-05-14 13:41:43 -04:00
cp -rf ${SRC_DIR}/sass/gnome-shell/_common.scss ${SRC_DIR}/sass/gnome-shell/_common-temp.scss
2022-04-23 05:58:25 -04:00
sed -i "/\widgets/s/40-0/${GS_VERSION}/" ${SRC_DIR}/sass/gnome-shell/_common-temp.scss
2022-04-22 08:19:01 -04:00
2022-04-23 05:58:25 -04:00
if [[ "${GS_VERSION}" == '3-28' ]]; then
sed -i "/\extensions/s/40-0/${GS_VERSION}/" ${SRC_DIR}/sass/gnome-shell/_common-temp.scss
2022-04-22 08:19:01 -04:00
fi
}
2021-12-09 08:53:04 -05:00
theme_color() {
if [[ "$theme" != '' ]]; then
case "$theme" in
2022-05-14 13:41:43 -04:00
-Purple)
2021-12-09 08:53:04 -05:00
theme_color='purple'
;;
2022-05-14 13:41:43 -04:00
-Pink)
2021-12-09 08:53:04 -05:00
theme_color='pink'
;;
2022-05-14 13:41:43 -04:00
-Red)
2021-12-09 08:53:04 -05:00
theme_color='red'
;;
2022-05-14 13:41:43 -04:00
-Orange)
2021-12-09 08:53:04 -05:00
theme_color='orange'
;;
2022-05-14 13:41:43 -04:00
-Yellow)
2021-12-09 08:53:04 -05:00
theme_color='yellow'
;;
2022-05-14 13:41:43 -04:00
-Green)
2021-12-09 08:53:04 -05:00
theme_color='green'
;;
2022-05-14 13:41:43 -04:00
-Teal)
2021-12-09 08:53:04 -05:00
theme_color='teal'
;;
2022-05-14 13:41:43 -04:00
-Grey)
2021-12-09 08:53:04 -05:00
theme_color='grey'
;;
esac
2022-05-14 13:41:43 -04:00
tweaks_temp
2021-12-09 08:53:04 -05:00
sed -i "/\$theme:/s/default/${theme_color}/" ${SRC_DIR}/sass/_tweaks-temp.scss
fi
}
theme_tweaks() {
if [[ "$accent" = "true" ]] ; then
theme_color
fi
if [[ "$compact" = "true" ]] ; then
compact_size
fi
if [[ "$nord" = "true" ]] ; then
nord_color
fi
2022-02-15 03:51:51 -05:00
if [[ "$dracula" = "true" ]] ; then
dracula_color
fi
2021-12-09 08:53:04 -05:00
if [[ "$blackness" = "true" ]] ; then
blackness_color
fi
if [[ "$rimless" = "true" ]] ; then
border_rimless
fi
2021-12-10 11:11:10 -05:00
if [[ "$normal" = "true" ]] ; then
normal_winbutton
fi
2021-12-09 08:53:04 -05:00
}
2022-08-12 03:15:53 -04:00
uninstall_link() {
[[ -L "${HOME}/.config/gtk-4.0/assets" ]] && rm -rf "${HOME}/.config/gtk-4.0/assets" && echo -e "\nUninstall ${HOME}/.config/gtk-4.0/assets link ..."
[[ -L "${HOME}/.config/gtk-4.0/gtk.css" ]] && rm -rf "${HOME}/.config/gtk-4.0/gtk.css" && echo -e "Uninstall ${HOME}/.config/gtk-4.0/gtk.css link ..."
[[ -L "${HOME}/.config/gtk-4.0/gtk-dark.css" ]] && rm -rf "${HOME}/.config/gtk-4.0/gtk-dark.css" && echo -e "Uninstall ${HOME}/.config/gtk-4.0/gtk-dark.css link ..."
}
2022-08-02 13:54:49 -04:00
link_libadwaita() {
local dest="${1}"
local name="${2}"
local theme="${3}"
local color="${4}"
local size="${5}"
local ctype="${6}"
local THEME_DIR="${1}/${2}${3}${4}${5}${6}"
2022-09-21 21:04:33 -04:00
rm -rf "${HOME}/.config/gtk-4.0/"{assets,gtk.css,gtk-dark.css}
2022-08-02 13:54:49 -04:00
echo -e "\nLink '$THEME_DIR/gtk-4.0' to '${HOME}/.config/gtk-4.0' for libadwaita..."
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"
ln -sf "${THEME_DIR}/gtk-4.0/gtk-dark.css" "${HOME}/.config/gtk-4.0/gtk-dark.css"
}
link_theme() {
for theme in "${themes[@]}"; do
2022-09-21 11:46:13 -04:00
for color in "${lcolors[@]}"; do
2022-08-02 13:54:49 -04:00
for size in "${sizes[@]}"; do
link_libadwaita "${dest:-$DEST_DIR}" "${_name:-$THEME_NAME}" "$theme" "$color" "$size" "$ctype"
done
done
done
}
clean() {
2022-08-12 03:15:53 -04:00
local dest="${1}"
local name="${2}"
local theme="${3}"
local color="${4}"
local size="${5}"
local type="${6}"
local screen="${7}"
2022-08-02 13:54:49 -04:00
2022-08-12 03:15:53 -04:00
local THEME_DIR="${1}/${2}${3}${4}${5}${6}${7}"
2022-08-02 13:54:49 -04:00
if [[ ${theme} == '' && ${color} == '' && ${size} == '' && ${type} == '' ]]; then
cleantheme='none'
elif [[ -d ${THEME_DIR} ]]; then
rm -rf ${THEME_DIR}
echo -e "Find: ${THEME_DIR} ! removing it ..."
fi
}
clean_theme() {
for theme in '' '-purple' '-pink' '-red' '-orange' '-yellow' '-green' '-teal' '-grey'; do
for color in '' '-light' '-dark'; do
for size in '' '-compact'; do
for type in '' '-nord' '-dracula'; do
for screen in '' '-hdpi' '-xhdpi'; do
clean "${dest:-${DEST_DIR}}" "${name:-${THEME_NAME}}" "${theme}" "${color}" "${size}" "${type}" "${screen}"
done
done
done
done
done
}
2021-12-09 08:53:04 -05:00
install_theme() {
for theme in "${themes[@]}"; do
for color in "${colors[@]}"; do
for size in "${sizes[@]}"; do
2021-12-31 02:08:42 -05:00
install "${dest:-$DEST_DIR}" "${_name:-$THEME_NAME}" "$theme" "$color" "$size" "$ctype" "$window"
2022-02-20 22:17:51 -05:00
make_gtkrc "${dest:-$DEST_DIR}" "${_name:-$THEME_NAME}" "$theme" "$color" "$size" "$ctype" "$window"
2021-12-09 08:53:04 -05:00
done
done
done
2022-02-18 07:45:21 -05:00
if [[ "$DESKTOP_SESSION" == 'xfce' ]]; then
sed -i "s|.*menu-opacity=.*|menu-opacity=95|" "$HOME/.config/xfce4/panel/whiskermenu"*".rc"
fi
2021-12-09 08:53:04 -05:00
}
2022-08-12 03:15:53 -04:00
uninstall() {
local dest="${1}"
local name="${2}"
local theme="${3}"
local color="${4}"
local size="${5}"
local ctype="${6}"
local THEME_DIR="${1}/${2}${3}${4}${5}${6}"
if [[ -d "${THEME_DIR}" ]]; then
echo -e "Uninstall ${THEME_DIR}... "
rm -rf "${THEME_DIR}"
fi
}
uninstall_theme() {
for theme in "${themes[@]}"; do
for color in "${colors[@]}"; do
for size in "${sizes[@]}"; do
uninstall "${dest:-$DEST_DIR}" "${_name:-$THEME_NAME}" "$theme" "$color" "$size" "$ctype"
done
done
done
}
if [[ "$uninstall" == 'true' ]]; then
if [[ "$libadwaita" == 'true' ]]; then
2022-11-01 11:05:07 -04:00
echo -e "\nUninstall ${HOME}/.config/gtk-4.0 links ..."
2022-08-12 03:15:53 -04:00
uninstall_link
else
echo && uninstall_theme && uninstall_link
fi
else
2022-11-01 11:05:07 -04:00
clean_theme && install_package && tweaks_temp && gnome_shell_version && install_theme
if [[ "$libadwaita" == 'true' ]]; then
uninstall_link && link_theme
fi
2022-08-12 03:15:53 -04:00
fi
2021-12-09 08:53:04 -05:00
echo
echo Done.