summaryrefslogtreecommitdiff
path: root/wpg-install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'wpg-install.sh')
-rwxr-xr-xwpg-install.sh262
1 files changed, 262 insertions, 0 deletions
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 "$@"