diff options
Diffstat (limited to 'wpg-install.sh')
| -rwxr-xr-x | wpg-install.sh | 262 | 
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 "$@"  |