From 8b1a2abb3bc497af04f9531db46af4b0dda42117 Mon Sep 17 00:00:00 2001 From: "Adam T. Carpenter" Date: Wed, 13 May 2020 08:19:11 -0400 Subject: updated for FreeBSD userland, included wpg scripts --- wpg-install.sh | 262 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100755 wpg-install.sh (limited to 'wpg-install.sh') diff --git a/wpg-install.sh b/wpg-install.sh new file mode 100755 index 0000000..9cf076e --- /dev/null +++ b/wpg-install.sh @@ -0,0 +1,262 @@ +#!/usr/bin/env bash + +__ScriptVersion="0.1.5"; + +if [ -n "${XDG_CONFIG_HOME}" ]; then + CONFIG="${XDG_CONFIG_HOME}" +else + CONFIG="${HOME}/.config" +fi + +if [ -n "${XDG_DATA_HOME}" ]; then + LOCAL="${XDG_DATA_HOME}" +else + LOCAL="${HOME}/.local/share" +fi + +THEMES_DIR="${HOME}/.themes"; +SRC_DIR="${PWD}/wpgtk-templates"; +TEMPLATE_DIR="${CONFIG}/wpg/templates"; + +#=== FUNCTION ================================================================ +# NAME: wpg-install.sh +# DESCRIPTION: Installs various wpgtk themes. +#=============================================================================== +usage() +{ + echo "Usage : $0 [options] [--] + + Options: + -h Display this message + -v Display script version + -o Install openbox templates + -t Install tint2 template + -g Install gtk template + -i Install icon-set + -r Install rofi template + -I Install i3 template + -p Install polybar template + -b Install bspwm template + -d Install dunst template + -H Specify hash of wpgtk-templates repository to use + " +} + +checkprogram() +{ + command -v $1 >/dev/null 2>&1; + if [[ $? -eq 1 ]]; then + echo "Please install $1 before proceeding"; + exit 1; + fi +} + +getfiles() +{ + checkprogram 'git'; + checkprogram 'wpg'; + mkdir -p "${LOCAL}/themes/color_other"; + mkdir -p "${LOCAL}/icons"; + git clone https://github.com/deviantfero/wpgtk-templates "$SRC_DIR"; + if [[ $? -eq 0 ]]; then + cd "$SRC_DIR"; + [[ ! -z "$commit" ]] && git checkout $commit; + return 0; + else + exit 1; + fi +} + +install_tint2() +{ + echo -n "This might override your tint2 config, Continue?[Y/n]: "; + read -r response; + if [[ ! "$response" == "n" ]]; then + echo "Installing tint2 config"; + echo ":: backing up current tint2 conf in tint2rc.old.bak"; + cp "${CONFIG}/tint2/tint2rc" "${CONFIG}/tint2/tint2rc.old.bak" 2>/dev/null; + cp --remove-destination ./tint2/tint2rc "${CONFIG}/tint2/tint2rc" && \ + cp --remove-destination ./tint2/tint2rc.base "${TEMPLATE_DIR}" && \ + ln -sf "${CONFIG}/tint2/tint2rc" "${TEMPLATE_DIR}/tint2rc" && \ + echo ":: tint2 template install done." + return 0; + fi + echo ":: tint2 template not installed"; +} + +install_rofi() +{ + echo -n "This might override your rofi config, Continue?[Y/n]: "; + read -r response; + if [[ ! "$response" == "n" ]]; then + echo "Installing rofi config"; + echo ":: backing up current rofi conf in rofi.bak"; + cp "${CONFIG}/rofi/config" "${CONFIG}/rofi/config.bak" 2>/dev/null; + cp --remove-destination ./rofi/config "${CONFIG}/rofi/config" && \ + cp --remove-destination ./rofi/rofi.base "${TEMPLATE_DIR}" && \ + ln -sf "${CONFIG}/rofi/config" "${TEMPLATE_DIR}/rofi" && \ + echo ":: rofi template install done." + return 0; + fi + echo ":: rofi template not installed"; +} + +install_i3() +{ + echo -n "This might override your i3 config, Continue?[Y/n]: "; + read -r response; + if [[ ! "$response" == "n" ]]; then + echo "Installing i3 config"; + echo ":: backing up current i3 conf in config.bak"; + cp "${CONFIG}/i3/config" "${CONFIG}/i3/config.bak" 2>/dev/null; + cp --remove-destination ./i3/config "${CONFIG}/i3/config" && \ + cp --remove-destination ./i3/i3.base "${TEMPLATE_DIR}" && \ + ln -sf "${CONFIG}/i3/config" "${TEMPLATE_DIR}/i3" && \ + echo ":: i3 template install done." + return 0; + fi + echo ":: i3 template not installed"; +} + +install_polybar() +{ + echo -n "This might override your polybar config, Continue?[Y/n]: "; + read -r response; + if [[ ! "$response" == "n" ]]; then + echo "Installing polybar config"; + echo ":: backing up current polybar conf in config.bak"; + cp "${CONFIG}/polybar/config" "${CONFIG}/polybar/config.bak" 2>/dev/null; + cp --remove-destination ./polybar/config "${CONFIG}/polybar/config" && \ + cp --remove-destination ./polybar/polybar.base "${TEMPLATE_DIR}" && \ + ln -sf "${CONFIG}/polybar/config" "${TEMPLATE_DIR}/polybar" && \ + echo ":: polybar template install done." + return 0; + fi + echo ":: polybar template not installed"; +} + +install_gtk() +{ + echo "Installing gtk themes"; + cp -r ./FlatColor "${LOCAL}/themes/" && \ + + cp --remove-destination ./FlatColor/gtk-2.0/gtkrc.base "${TEMPLATE_DIR}/gtk2.base" && \ + ln -sf "${LOCAL}/themes/FlatColor/gtk-2.0/gtkrc" "${TEMPLATE_DIR}/gtk2" && \ + ln -sf "${LOCAL}/themes/FlatColor" "${THEMES_DIR}/FlatColor" && \ + echo ":: gtk2 theme done" "${TEMPLATE_DIR}/gtk2"; + + cp --remove-destination ./FlatColor/gtk-3.0/gtk.css.base "${TEMPLATE_DIR}/gtk3.0.base" && \ + ln -sf "${LOCAL}/themes/FlatColor/gtk-3.0/gtk.css" "${TEMPLATE_DIR}/gtk3.0" && \ + echo ":: gtk3.0 theme done" + + cp --remove-destination ./FlatColor/gtk-3.20/gtk.css.base "${TEMPLATE_DIR}/gtk3.20.base" && \ + ln -sf "${LOCAL}/themes/FlatColor/gtk-3.20/gtk.css" "${TEMPLATE_DIR}/gtk3.20" && \ + echo ":: gtk3.20 theme done" + + echo ":: FlatColor gtk themes install done." +} + +install_icons() +{ + echo "Installing icon pack"; + cp -r flattrcolor "${LOCAL}/icons/" && \ + cp -r flattrcolor-dark "${LOCAL}/icons/" && \ + echo ":: flattr icons install done." +} + +install_openbox() +{ + echo "Installing openbox themes"; + cp --remove-destination -r ./openbox/colorbamboo/* "${LOCAL}/themes/colorbamboo" + + if [[ $? -eq 0 ]]; then + mv "${LOCAL}/themes/colorbamboo/openbox-3/themerc.base" "${TEMPLATE_DIR}/ob_colorbamboo.base" && \ + ln -sf "${LOCAL}/themes/colorbamboo/openbox-3/themerc" "${TEMPLATE_DIR}/ob_colorbamboo" && \ + ln -sf "${LOCAL}/themes/colorbamboo" "${THEMES_DIR}/colorbamboo" && \ + echo ":: colorbamboo openbox themes install done."; + fi +} + +install_bspwm() +{ + echo "Installing bspwm colors"; + mv "./bspwm/bspwm_colors.base" "${TEMPLATE_DIR}/bspwm_colors.base"; + mv "./bspwm/bspwm_colors" "${TEMPLATE_DIR}/bspwm_colors"; + ln -sf "${CONFIG}/bspwm/bspwm_colors.sh" "${TEMPLATE_DIR}/bspwm_colors" && \ + printf 'bash %s/bspwm/bspwm_colors.sh &' ${CONFIG} >> "${CONFIG}/bspwm/bspwmrc"; + echo ":: bspwm colors install done."; +} + +install_dunst() +{ + echo "Installing dunst colors"; + echo ":: backing up current dunst conf in dunstrc.bak"; + cp "${CONFIG}/dunst/dunstrc" "${CONFIG}/dunst/dunstrc.bak" 2>/dev/null; + + mv "./dunst/dunstrc.base" "${TEMPLATE_DIR}/dunstrc.base"; + mv "./dunst/dunstrc" "${TEMPLATE_DIR}/dunstrc"; + ln -sf "${CONFIG}/dunst/dunstrc" "${TEMPLATE_DIR}/dunstrc" && \ + echo ":: dunst colors install done."; +} + +clean_up() +{ + rm -rf "$SRC_DIR"; +} + + +#----------------------------------------------------------------------- +# Handle command line arguments +#----------------------------------------------------------------------- + +getargs() +{ + while getopts "H:bhvotgiIprd" opt + do + case $opt in + h) + usage; + exit 0 + ;; + v) + echo "$0 -- Version $__ScriptVersion"; + exit 0; + ;; + o) openbox="true" ;; + i) icons="true" ;; + g) gtk="true" ;; + t) tint2="true" ;; + r) rofi="true" ;; + I) i3="true" ;; + p) polybar="true" ;; + b) bspwm="true" ;; + d) dunst="true" ;; + H) commit="${OPTARG}" ;; + *) + echo -e "\n Option does not exist : $OPTARG\n" + usage; + exit 1 + ;; + + esac + done + shift "$((OPTIND - 1))" +} + +main() +{ + getargs "$@"; + getfiles; + [[ "$openbox" == "true" ]] && install_openbox; + [[ "$tint2" == "true" ]] && install_tint2; + [[ "$rofi" == "true" ]] && install_rofi; + [[ "$gtk" == "true" ]] && install_gtk; + [[ "$icons" == "true" ]] && install_icons; + [[ "$polybar" == "true" ]] && install_polybar; + [[ "$i3" == "true" ]] && install_i3; + [[ "$bspwm" == "true" ]] && install_bspwm; + [[ "$dunst" == "true" ]] && install_dunst; + clean_up; +} + +main "$@" -- cgit v1.2.3