#!/usr/bin/env bash
# --------------------------------------------------------------------------------
SCRIPT=$(basename $0)
DEST=/root
PLASMA_LOOKANDFEEL="$1"
GTK_ICON_THEME="$2"
# --------------------------------------------------------------------------------
function _m { t="$1"; shift 1; echo -e " $t) $*"; }
function _e { _m "ERROR!" "$*"; exit; }
function _w { _m "warning!" "$*\n   ..> [ENTER] to proceed, [CTRL+C] to quit."; read; }
# --------------------------------------------------------------------------------
[ $UID -eq 0 ] &&
  _e "please run as a normal user."

[ $# -eq 0 ] &&
  _e "usage: ${SCRIPT} LOOK_AND_FEEL [ROOT GTK_ICON_THEME]\n PLASMA look-and-feel) themes available:\n$(plasma-apply-lookandfeel -l)"
# --------------------------------------------------------------------------------
PLASMA_ICON_THEME=$( kreadconfig5 \
                     --group kdeglobals --group Icons \
                     --key Theme \
                     --file /usr/share/plasma/look-and-feel/${PLASMA_LOOKANDFEEL}/contents/defaults )

[ ${#GTK_ICON_THEME} -eq 0 ] &&
  GTK_ICON_THEME="${PLASMA_ICON_THEME}"

_m user "setting PLASMA look-and-feel (${PLASMA_LOOKANDFEEL})"
plasma-apply-lookandfeel -a ${PLASMA_LOOKANDFEEL} --resetLayout
# --------------------------------------------------------------------------------
_w "set ROOT theme?"
cat <<EOF | sudo bash
function _m { t="\$1"; shift 1; echo -e " \$t) \$*"; }

_m ROOT "copying gtk/qt theme/assets (${HOME} => ${DEST})"
for config in .gtkrc-2.0 .config/{gtkrc{,-2.0},Trolltech.conf}; do
  cp -f {${HOME},${DEST}}/\${config}
done
rsync -a --delete ${HOME}/.config/gtk-3.0/ ${DEST}/.config/gtk-3.0/
rsync -a --delete ${HOME}/.config/gtk-4.0/ ${DEST}/.config/gtk-4.0/

_m ROOT "configuring ${DEST}/.config/kdeglobals (icon-theme/look-and-feel)"
kwc5="kwriteconfig5 --file ${DEST}/.config/kdeglobals --group"
\$kwc5 Icons --key Theme "${PLASMA_ICON_THEME}"
\$kwc5 KDE --key LookAndFeelPackage "${PLASMA_LOOKANDFEEL}"

_m ROOT "setting gtk icon theme (${GTK_ICON_THEME})"
sed -res",(gtk-icon-theme-name=).*,\1\"${GTK_ICON_THEME}\"," -i ${DEST}/.gtkrc-2.0
sed -res",(gtk-icon-theme-name=).*,\1${GTK_ICON_THEME}," -i ${DEST}/.config/gtk-{3,4}.0/settings.ini

_m ROOT "fixing /root permissions"
chmod 0600 ${DEST}/.config/{Trolltech.conf,gtkrc*,kdeglobals} ${DEST}/.gtkrc-2.0
find ${DEST}/.config/gtk-{3,4}.0 -type f -exec chmod 0600 {} \;

chmod 0700 ${DEST}/.config/gtk-{3,4}.0
find ${DEST}/.config/gtk-{3,4}.0 -type d -exec chmod 0700 {} \;

chown -Rf 0:0 ${DEST}
_m ROOT "done"
EOF
_m user "all DONE."
# --------------------------------------------------------------------------------
