#! /bin/bash

Info () {
local app
title="Info"
author="Peter Starfinger"
mail="E-Mail: info@die-starfingers.de"
year="2023"
app="$(basename $0)"
msgid="The Starbuntu application
<i>\$app</i>
was written by"
info="$(gettext "$msgid" | (export PATH `envsubst --variables "$msgid"`; envsubst "$msgid"))"

yad --center --fixed --title="$title" --window-icon="info" --image="info" --borders=20 --text="$info"$'\n'$'\n'"$author"$'\n'"$mail"$'\n'$'\n'"$year"$'\n' --text-align=center --selectable-labels --button="OK" &
wunwa "$title" > /dev/null; xdotool key Home key Down
}

gtk="$@"
[ "$1" = "info" ] && Info && exit 0

if [ -z "$gtk" ] || [ "$gtk" = '%f' ]; then
    button=$"Cancel"
    button2=$"Help"
    [ "$LANGUAGE" != "en" ] && lang_dir="$LANGUAGE" || lang_dir="C"
    list=(gtk2 gtk3 gtk4 gtk2/3/4)
    gtk=`yad --center --title="GTK: "$"Settings" --window-icon="/usr/share/icons/gnome/48x48/apps/preferences-desktop-theme.png" --height=50 --width=350 --borders=10 --list --editable --no-headers --column="GTK" ${list[@]} --entry --button="$button":1 --button="$button2":"yelp /usr/share/help/$lang_dir/Starbuntu/starbuntu-apps-details.page#appearance" --button="Info":"$0 info" --button="OK":0`
    button=$?
    if [ -z "$gtk" ] || [ $button -gt 0 ]; then exit $button; fi
fi

if [ "$gtk" = "gtk2" ]; then
    mv $HOME/.config/gtk-3.0/settings.ini $HOME/.config/gtk-3.0/settings.ini.bak
    IFS=$'\n'
    gtk3=($(cat $HOME/.gtkrc-2.0))
    unset gtk3[0] gtk3[1] gtk3[2]
    for ((l=0; l<${#gtk3[@]}; l++)); do
	gtk3[$l]="${gtk3[$l]//\"/}" # }"
    done
    echo "[Settings]" > $HOME/.config/gtk-3.0/settings.ini
    echo "${gtk3[*]}" >> $HOME/.config/gtk-3.0/settings.ini
elif [ "$gtk" = "gtk3" ]; then
    cp $HOME/.gtkrc-2.0 $HOME/.gtkrc-2.0.bak
elif [ "$gtk" = "gtk4" ]; then
    cp $HOME/.gtkrc-2.0 $HOME/.gtkrc-2.0.bak
    mv $HOME/.config/gtk-3.0/settings.ini $HOME/.config/gtk-3.0/settings.ini.bak
    cp $HOME/.config/gtk-4.0/settings.ini $HOME/.config/gtk-3.0/settings.ini
fi

xseticon -id $(wunwa $"Feel") /usr/share/icons/gnome/48x48/apps/preferences-desktop-theme.png & lxappearance
sleep 0.5

if [ "$gtk" = "gtk2" ]; then
    mv $HOME/.config/gtk-3.0/settings.ini.bak $HOME/.config/gtk-3.0/settings.ini
elif [ "$gtk" = "gtk3" ]; then
    mv $HOME/.gtkrc-2.0.bak $HOME/.gtkrc-2.0
elif [[ "$gtk" =~ "4" ]]; then
    cp $HOME/.config/gtk-3.0/settings.ini $HOME/.config/gtk-4.0/settings.ini
    sed -i '/toolbar/d; /images/d' $HOME/.config/gtk-4.0/settings.ini
    theme="$(grep gtk-theme-name $HOME/.gtkrc-2.0 | cut -d= -f2)"
    if [ "$gtk" = "gtk4" ]; then
	mv $HOME/.config/gtk-3.0/settings.ini.bak $HOME/.config/gtk-3.0/settings.ini
	mv $HOME/.gtkrc-2.0.bak $HOME/.gtkrc-2.0
    fi
fi
