You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Orchis-theme/install.sh

344 lines
8.5 KiB
Bash

#! /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)
-t, --theme VARIANT Specify theme color variant(s) [default|purple|pink|red|orange|yellow|green|teal|grey|nord|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)
-l, --libadwaita Link installed Orchis gtk-4.0 theme to config folder for all libadwaita app use Orchis theme
--tweaks Specify versions for tweaks [solid|compact|black|primary|macos|submenu|(nord/dracula)] (Options can mix [nord and dracula can not mix use!])
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)
5. macos: Change window buttons to MacOS style
6. submenu: Theme sub-menus, by Default submenus contrast
7. [nord|dracula]: Nord/dracula colorscheme themes
--round Change theme round corner border-radius [Input the px value you want] (Suggested: 2px < value < 16px)
1. 3px
2. 4px
3. 5px
...
13. 15px
--shell install gnome-shell version [38|40|42|44]
1. 38: Gnome-shell version < 40.0
2. 40: Gnome-shell version = 40.0
3. 42: Gnome-shell version = 42.0
4. 44: Gnome-shell version >= 44.0
-r, --remove,
-u, --uninstall Uninstall/Remove installed themes
-h, --help Show help
EOF
}
themes=()
colors=()
sizes=()
othemes=()
ocolors=()
osizes=()
lcolors=()
while [[ "$#" -gt 0 ]]; do
case "${1:-}" in
-d|--dest)
dest="$2"
mkdir -p "$dest"
shift 2
;;
-n|--name)
_name="$2"
shift 2
;;
-r|--remove|-u|--uninstall)
remove="true"
shift
;;
-l|--libadwaita)
libadwaita="true"
shift
;;
--round)
round="true"
corner="$2"
echo -e "Change round corner ${corner} value ..."
shift 2
;;
--shell)
shift
for variant in $@; do
case "$variant" in
38)
shell="32-8"
shift
;;
40)
shell="40-0"
shift
;;
42)
shell="42-0"
shift
;;
44)
shell="44-0"
shift
;;
-*)
break
;;
*)
echo "ERROR: Unrecognized shell variant '$1'."
echo "Try '$0 --help' for more information."
exit 1
;;
esac
done
;;
--tweaks)
shift
for variant in $@; do
case "$variant" in
solid)
opacity="solid"
echo -e "Install solid version ..."
shift
;;
compact)
panel="compact"
echo -e "Install compact panel version ..."
shift
;;
black)
blackness="true"
echo -e "Install black version ..."
shift
;;
primary)
primary="true"
echo "Change radio and check assets color ..."
shift
;;
macos)
macstyle="true"
echo -e "Install MacOS style window button version ..."
shift
;;
submenu)
submenu="true"
echo -e "Install with themed sub-menus ..."
shift
;;
nord)
nord="true"
ctype="-Nord"
echo -e "Install nord colorscheme ..."
shift
;;
dracula)
dracula="true"
ctype="-Dracula"
echo -e "Install dracula colorscheme ..."
shift
;;
-*)
break
;;
*)
echo "ERROR: Unrecognized tweaks 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
;;
-c|--color)
shift
for variant in "$@"; do
case "$variant" in
standard)
colors+=("${COLOR_VARIANTS[0]}")
lcolors+=("${COLOR_VARIANTS[0]}")
shift
;;
light)
colors+=("${COLOR_VARIANTS[1]}")
lcolors+=("${COLOR_VARIANTS[1]}")
shift
;;
dark)
colors+=("${COLOR_VARIANTS[2]}")
lcolors+=("${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 [[ "${#themes[@]}" -eq 0 ]] ; then
themes=("${THEME_VARIANTS[0]}")
fi
if [[ "${#colors[@]}" -eq 0 ]] ; then
colors=("${COLOR_VARIANTS[@]}")
fi
if [[ "${#sizes[@]}" -eq 0 ]] ; then
sizes=("${SIZE_VARIANTS[@]}")
fi
if [[ "${#othemes[@]}" -eq 0 ]] ; then
othemes=("${OLD_THEME_VARIANTS[@]}")
fi
if [[ "${#ocolors[@]}" -eq 0 ]] ; then
ocolors=("${OLD_COLOR_VARIANTS[@]}")
fi
if [[ "${#osizes[@]}" -eq 0 ]] ; then
osizes=("${OLD_SIZE_VARIANTS[@]}")
fi
if [[ "${#lcolors[@]}" -eq 0 ]] ; then
lcolors=("${COLOR_VARIANTS[1]}")
fi
clean_theme
if [[ ${remove} == 'true' ]]; then
if [[ "$libadwaita" == 'true' ]]; then
uninstall_link
elif [[ "$all" == 'true' ]]; then
uninstall_theme && uninstall_link
else
uninstall_theme
fi
else
if [[ "$libadwaita" == 'true' && "$UID" == "$ROOT_UID" ]]; then
echo -e "Do not run -l with sudo, that will link libadwaita theme to root folder !"
exit 0
fi
install_theme
if [[ "$libadwaita" == 'true' && "$UID" != "$ROOT_UID" ]]; then
link_theme
fi
fi
echo
echo "Done."