#!/usr/bin/env bash

bold=$(tput bold)      # ${bold}
normal=$(tput sgr0)    # ${normal}
yellow=$(tput setaf 3) # ${yellow}

# Zenity ablak megjelenítése
user_choice=$(zenity --list --radiolist --width='650' --height='370' \
  --title="Válaszd ki a nyelvet és a GPU-t!" \
  --text="Válassz az alábbi opciók közül:" \
  --column="Válassz" --column="GPU - Rendszer nyelv" \
   FALSE "AMD GPU - Angol Nyelv - Xwaylandvideobridge AutoStart"  \
   FALSE "AMD GPU - Angol Nyelv - Xwaylandvideobridge Manual Start"  \
   FALSE "AMD GPU - Magyar Nyelv - Xwaylandvideobridge AutoStart"  \
   FALSE "AMD GPU - Magyar Nyelv - Xwaylandvideobridge Manual Start"  \
   FALSE "Nvidia GPU - Angol Nyelv - Xwaylandvideobridge AutoStart"  \
   FALSE "Nvidia GPU - Angol Nyelv - Xwaylandvideobridge Manual Start"  \
   FALSE "Nvidia GPU - Magyar Nyelv - Xwaylandvideobridge AutoStart"  \
   FALSE "Nvidia GPU - Magyar Nyelv - Xwaylandvideobridge Manual Start")
if [[ $? -eq 1 ]]; then
   echo ${bold}${yellow}A script futása leállítva. Kilépés!${normal}
   exit 1
fi

# Nala telepítés
  echo ---------------------------------------------
  echo Installing ${bold}${yellow}NALA - DEB Pkg${normal}
  echo
    sudo apt install nala -y
    sudo apt purge ubuntu-advantage-tools -y
    flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
    # Debloater Script by DanyHolder
    #sudo nala purge gnome-calendar gucharmap* geary* seahorse libreoffice-draw* libreoffice-math* libreoffice-impress* imagemagick vinagre* gnome-font-viewer gnome-power-manager cinnamon* touchegg aisleriot deja-dup celluloid drawing hexchat redshift redshift-gtk rhythmbox xed timeshift yelp warpinator simple-scan hypnotix bulky transmission* usb-creator* mintstick* mintwelcome mintbackup mint-backgrounds-* mint-cursor* thunderbird* mintlocale mintupdate* mintmenu mintdrivers* mintinstall* onboard* pix* mintreport* webapp-manager mint-themes lightdm* gnome-online-accounts libreoffice-base* gnome-mahjongg gnome-maps gnome-mines cheese gnome-contacts gnome-sudoku gnome-todo gnome-color-manager gnome-music totem totem-plugins thingy* xreader -y
  echo
  echo ${bold}${yellow}NALA - DEB Pkg ${normal}installed.
  echo ---------------------------------------------

# Creating autostart folder
  echo ---------------------------------------------
  echo Installing ${bold}${yellow}Creating autostart folder${normal}
  echo
    mkdir -p /home/$USER/.config/autostart
    sudo chown -R $USER:$GROUP /home/$USER/.config/autostart
  echo
  echo ${bold}${yellow}Autostart folder ${normal}created.
  echo ---------------------------------------------
  
# Autostarting ProgramScript after restart
echo ---------------------------------------------
  echo Installing ${bold}${yellow}ProgramScript Autostart${normal}
  echo
    sudo cp -a 3progs.sh.desktop /home/$USER/.config/autostart
    echo Exec=/home/$USER/.progs/3progs.sh >> /home/$USER/.config/autostart/3progs.sh.desktop
    sudo mkdir -p /home/$USER/.progs
    sudo chown -R $USER:$GROUP /home/$USER/.progs
    sudo cp -a 3progs.sh /home/$USER/.progs
    sudo chmod +x /home/$USER/.progs/3progs.sh
    sudo cp -a content-*/. /home/$USER/.progs
  echo
  echo ${bold}${yellow}ProgramScript Autostart ${normal}installed.
  echo ---------------------------------------------

# Adding Custom rave command
echo ---------------------------------------------
  echo Installing ${bold}${yellow}rave command.${normal}
  echo
    sudo cp -a rave /usr/local/bin/
    sudo chmod +x /usr/local/bin/rave
    sudo cp -a rave-comp.sh /etc/bash_completion.d/
    sudo chmod +x /etc/bash_completion.d/rave-comp.sh
  echo
  echo ${bold}${yellow}Rave command with bash completion ${normal}installed.
  echo --------------------------------------------

  # Installing Custom Rave Wallpapers made by DanyHolder & Pacuka
  echo ---------------------------------------------
  echo Installing ${bold}${yellow}Custom Rave Wallpapers${normal}
  echo
    sudo mkdir -p /usr/share/backgrounds/rave
    sudo tar -xvf RP_Wallpapers.tar.xz -C /usr/share/backgrounds/rave/
  echo
  echo ${bold}${yellow}Custom Rave Wallpapers ${normal}installed.
  echo ---------------------------------------------

# Enable x86
  echo ---------------------------------------------
  echo Enabling ${bold}${yellow}x86 architecture${normal}
  echo
     sudo dpkg --add-architecture i386
  echo
  echo ${bold}${yellow}x86 architecture ${normal}enabled.
  echo ---------------------------------------------

# Dependencies
  echo ---------------------------------------------
  echo Installing ${bold}${yellow}Dependencies${normal}
  echo
    sudo nala install python3-pydbus gettext lm-sensors libgtksourceview-4-dev python3-psutil libgconf-2-4 libappindicator1 libc++1 gconf2 libsystemd-dev pkg-config ninja-build git libdbus-1-dev libinih-dev build-essential python3-dev libgirepository1.0-dev appstream-util python3 python3-pip gir1.2-appindicator3-0.1 libdazzle-1.0-dev debhelper debugedit dh-autoreconf dh-strip-nondeterminism dwz fp-compiler fp-compiler-3.2.2 fp-docs-3.2.2 fp-ide-3.2.2 fp-units-base-3.2.2 fp-units-db-3.2.2 fp-units-fcl-3.2.2 fp-units-fv-3.2.2 fp-units-gfx-3.2.2 fp-units-gtk2-3.2.2 fp-units-math-3.2.2 fp-units-misc-3.2.2 fp-units-multimedia-3.2.2 fp-units-net-3.2.2 fp-units-rtl-3.2.2 fp-utils-3.2.2 fpc fpc-3.2.2 fpc-source-3.2.2 gdb gir1.2-gtk-2.0 intltool-debian lcl-2.2 lcl-gtk2-2.2 lcl-nogui-2.2 lcl-units-2.2 lcl-utils-2.2 liba52-0.7.4 liba52-0.7.4-dev libarchive-cpio-perl libarchive-zip-perl libasound2-dev libbabeltrace1 libc6-dbg libcaca-dev libdebhelper-perl libdebuginfod-common libdebuginfod1 libfile-stripnondeterminism-perl libflac-dev libfluidsynth3 libforms-dev libforms2 libgd-dev libgl1-mesa-dev libglu1-mesa-dev libgmp-dev libgmpxx4ldbl libgraphviz-dev libgtk2.0-dev libgvc6-plugins-gtk libinstpatch-1.0-2 libipt2 libltdl-dev libmad0 libmad0-dev libmail-sendmail-perl libmikmod-dev libmodplug-dev libmodplug1 libogg-dev libproxy-tools libpulse-dev libsdl-mixer1.2 libsdl-mixer1.2-dev libsdl1.2-dev libslang2-dev libsource-highlight-common libsource-highlight4v5 libsub-override-perl libsys-hostname-long-perl libtool libvlc-bin libvlc-dev libvlc5 libvlccore9 libvorbis-dev libvpx-dev libxdot4 libxpm-dev libxt-dev libxxf86dga-dev libxxf86vm-dev m4 po-debconf gcc-multilib g++-multilib mesa-common-dev libxnvctrl-dev python3-evdev python3-decorator python3-pyte libpython3-dev python3-setuptools python3-pydantic meson v4l2loopback-dkms v4l-utils v4l2loopback-utils libqt5sql5 libqt5svg5 libqt5xml5 libspeexdsp1 ffmpeg -y
  echo
  echo ${bold}${yellow}Dependencies ${normal}installed.
  echo ---------------------------------------------
  
  echo
  echo ---------------------------------------------
  echo Installing ${bold}${yellow}XanMod - Gaming Kernel AMD - DEB Pkg${normal}

  wget -qO - https://dl.xanmod.org/archive.key | sudo gpg --dearmor -o /usr/share/keyrings/xanmod-archive-keyring.gpg
  echo 'deb [signed-by=/usr/share/keyrings/xanmod-archive-keyring.gpg] http://deb.xanmod.org releases main' | sudo tee /etc/apt/sources.list.d/xanmod-release.list
  sudo apt update && sudo nala install linux-xanmod-edge-x64v4 -y

  echo ${bold}${yellow}XanMod - Gaming Kernel AMD ${normal}installed.
  echo ---------------------------------------------
  echo

# Flatseal - Flatpak app jogosultság beállító
echo
  echo ---------------------------------------------
  echo Installing ${bold}${yellow}Flatseal - flatpak${normal}

  flatpak install flathub com.github.tchx84.Flatseal --user -y
  sudo cp -a overrides /home/$USER/.local/share/flatpak

  echo ${bold}${yellow}Flatseal ${normal}installed.
  echo ---------------------------------------------
  echo

# All Updates
  echo ---------------------------------------------
  echo ${bold}${yellow}Upgrading the System${normal}
  echo
    sudo nala upgrade -y
  echo
  echo ${bold}${yellow}System upgraded!${normal}
  echo ---------------------------------------------
  

# DEBUG: Redirect output to a log file
#exec > >(tee xwvb_output.log)
#exec 2>&1

# Check the Linux distribution
check_distro() {
    if [ -f "/etc/os-release" ] && grep -qi "debian" /etc/os-release; then
        echo "Debian detected."
    elif [ -f "/etc/os-release" ] && grep -qi "ubuntu" /etc/os-release; then
        echo "Ubuntu detected."
    elif [ -f "/etc/os-release" ] && grep -qi "mint" /etc/os-release; then
        echo "Linux Mint detected."
    elif [ -f "/etc/os-release" ] && grep -qi "fedora" /etc/os-release; then
        echo "Fedora detected."
    elif [ -f "/etc/os-release" ] && grep -qi "opensuse" /etc/os-release; then
        echo "openSUSE detected."
    elif [ -f "/etc/os-release" ] && grep -qi "arch" /etc/os-release; then
        echo "Arch Linux detected."
    elif [ -f "/etc/os-release" ] && grep -qi "gentoo" /etc/os-release; then
        echo "Gentoo detected."
    elif [ -f "/etc/os-release" ] && grep -qi "void" /etc/os-release; then
        echo "Void Linux detected."
    else
        echo "Unsupported distribution. Flatpak installation won't work!"
    fi
}

# Check if Flatpak is installed and install it if not
inst_flatpak() {
    if ! command -v flatpak &>/dev/null; then
        echo "Flatpak is not installed. Installing..."
        # Check the package manager used by the distro and install Flatpak accordingly
        if [ -f "/etc/os-release" ] && grep -qi "debian" /etc/os-release; then
            sudo apt update
            sudo apt install -y flatpak
        elif [ -f "/etc/os-release" ] && grep -qi "ubuntu" /etc/os-release; then
            sudo apt update
            sudo apt install -y flatpak
        elif [ -f "/etc/os-release" ] && grep -qi "mint" /etc/os-release; then
            sudo apt update
            sudo apt install -y flatpak
        elif [ -f "/etc/os-release" ] && grep -qi "fedora" /etc/os-release; then
            sudo dnf install -y flatpak
        elif [ -f "/etc/os-release" ] && grep -qi "opensuse" /etc/os-release; then
            sudo zypper in flatpak
        elif [ -f "/etc/os-release" ] && grep -qi "arch" /etc/os-release; then
            sudo pacman -Syu --noconfirm flatpak
        elif [ -f "/etc/os-release" ] && grep -qi "gentoo" /etc/os-release; then
            echo "sys-apps/flatpak X policykit seccomp systemd" | sudo tee /etc/portage/package.use/flatpak-xwvb-script
            sudo emerge -q sys-apps/flatpak
        elif [ -f "/etc/os-release" ] && grep -qi "void" /etc/os-release; then
            sudo xbps-install -S flatpak
        else
            echo "Unsupported distribution. Can't install Flatpak. Install Flatpak on your system and try again!"
            exit 1
        fi
        echo "Flatpak has been installed successfully."
    else
        echo "Flatpak is already installed."
    fi
}

# Add Flatpak repositories
add_repos() {
    echo "Adding repositories..."
    sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
    sudo flatpak remote-add --if-not-exists kdeapps https://distribute.kde.org/kdeapps.flatpakrepo
}

# Install the XWayland Video Bridge
inst_xwvb() {
    echo "Installing XWayland Video Bridge..."
    flatpak install kdeapps org.kde.xwaylandvideobridge -y
}

# Executing all functions
check_distro

inst_flatpak

add_repos

inst_xwvb

# It's done, yay!
echo "XWayland Video Bridge installed successfully. Have fun!"

fwupdmgr update

# User beállítások 
  echo
  echo ---------------------------------------------
  echo Installing ${bold}${yellow}User settings${normal}

  sudo rsync -ap --info=progress2 raveos-bg.png /usr/share/backgrounds/
  sudo nala install git -y
  echo ${bold}${yellow}User settings ${normal}installed.
  echo ---------------------------------------------
  

if [[ $user_choice = *"AMD GPU - Angol Nyelv - Xwaylandvideobridge AutoStart"* ]]; then

# Wayland Auto-Enable
  echo
  echo ---------------------------------------------
  echo Enabling ${bold}${yellow}Wayland Window Manager${normal}
  echo
    sudo cp -a rave-pp /usr/share/pixmaps/faces/
    sudo sed -i '7 i Icon=/usr/share/pixmaps/faces/rave-pp' /var/lib/AccountsService/users/$USER
    sudo cp -a .mozilla /home/$USER/
  echo
  echo ${bold}${yellow}Wayland Window Manager ${normal}enabled.
  echo ---------------------------------------------
  echo

fi

if [[ $user_choice = *"AMD GPU - Angol Nyelv - Xwaylandvideobridge Manual Start"* ]]; then

# Wayland Auto-Enable
  echo
  echo ---------------------------------------------
  echo Enabling ${bold}${yellow}Wayland Window Manager${normal}
  echo
    sudo cp -a rave-pp /usr/share/pixmaps/faces/
    sudo sed -i '7 i Icon=/usr/share/pixmaps/faces/rave-pp' /var/lib/AccountsService/users/$USER
    sudo cp -a .mozilla /home/$USER/
  echo
  echo ${bold}${yellow}Wayland Window Manager ${normal}enabled.
  echo ---------------------------------------------
  echo

fi

if [[ $user_choice = *"AMD GPU - Magyar Nyelv - Xwaylandvideobridge AutoStart"* ]]; then
# Wayland Auto-Enable
  echo
  echo ---------------------------------------------
  echo Enabling ${bold}${yellow}Wayland Window Manager${normal}
  echo
    sudo cp -a rave-pp /usr/share/pixmaps/faces/
    sudo sed -i 's/WaylandEnable=false/WaylandEnable=true/' /etc/gdm3/custom.conf
    sudo sed -i '7d' /var/lib/AccountsService/users/$USER
    sudo sed -i '7 i Icon=/usr/share/pixmaps/faces/rave-pp' /var/lib/AccountsService/users/$USER
    sudo sed -i 's/Session=/Session=wayland' /var/lib/AccountsService/users/$USER
    sudo cp -a .themes /home/$USER/
    sudo cp -a .icons /home/$USER/
    sudo cp -a .mozilla /home/$USER/
  echo
  echo ${bold}${yellow}Wayland Window Manager ${normal}enabled.
  echo ---------------------------------------------
  echo

  echo
  echo ---------------------------------------------
  echo Downloading ${bold}${yellow}Hungarian LangPack${normal}
  echo
    sudo nala install language-pack-hu language-pack-hu-base -y
  echo
  echo ${bold}${yellow}Hungarian LangPack ${normal}downloaded.
  echo ---------------------------------------------

  echo
  echo ---------------------------------------------
  echo Downloading ${bold}${yellow}Hungarian LangPack${normal}
  echo
    sudo nala install language-pack-hu language-pack-hu-base -y
  echo
  echo ${bold}${yellow}Hungarian LangPack ${normal}downloaded.
  echo ---------------------------------------------

fi

if [[ $user_choice = *"AMD GPU - Magyar Nyelv - Xwaylandvideobridge Manual Start"* ]]; then
# Wayland Auto-Enable
  echo
  echo ---------------------------------------------
  echo Enabling ${bold}${yellow}Wayland Window Manager${normal}
  echo
    sudo cp -a rave-pp /usr/share/pixmaps/faces/
    sudo sed -i 's/WaylandEnable=false/WaylandEnable=true/' /etc/gdm3/custom.conf
    sudo sed -i '7d' /var/lib/AccountsService/users/$USER
    sudo sed -i '7 i Icon=/usr/share/pixmaps/faces/rave-pp' /var/lib/AccountsService/users/$USER
    sudo sed -i 's/Session=/Session=wayland' /var/lib/AccountsService/users/$USER
    sudo cp -a .themes /home/$USER/
    sudo cp -a .icons /home/$USER/
    sudo cp -a .mozilla /home/$USER/
  echo
  echo ${bold}${yellow}Wayland Window Manager ${normal}enabled.
  echo ---------------------------------------------
  echo

  echo
  echo ---------------------------------------------
  echo Downloading ${bold}${yellow}Hungarian LangPack${normal}
  echo
    sudo nala install language-pack-hu language-pack-hu-base -y
  echo
  echo ${bold}${yellow}Hungarian LangPack ${normal}downloaded.
  echo ---------------------------------------------

fi

if [[ $user_choice = *"Nvidia GPU - Angol Nyelv - Xwaylandvideobridge AutoStart"* ]]; then
  
  cp -a /var/lib/flatpak/app/org.kde.xwaylandvideobridge/x86_64/master/57c956ce29f61cdc8822aae58c71bf4466db8ba94e8d0649f5eb949304ba4051/export/share/applications/org.kde.xwaylandvideobridge.desktop ~/.config/autostart
    echo
  echo ${bold}${yellow}Xwaylandvideobridge autostart set${normal}
  echo ---------------------------------------------

fi

if [[ $user_choice = *"Nvidia GPU - Angol Nyelv - Xwaylandvideobridge Manual Start"* ]]; then
  echo
  echo ${bold}${yellow}Xwaylandvideobridge keyboard shortcuts set${normal}
  echo ---------------------------------------------
  
fi

if [[ $user_choice = *"Nvidia GPU - Magyar Nyelv - Xwaylandvideobridge AutoStart"* ]]; then
  echo
  echo ---------------------------------------------
  echo Downloading ${bold}${yellow}Hungarian LangPack${normal}
  echo
    sudo nala install language-pack-hu language-pack-hu-base -y
  echo
  echo ${bold}${yellow}Hungarian LangPack ${normal}downloaded.
  echo ---------------------------------------------
  echo
  echo
  echo ---------------------------------------------
  cp -a /var/lib/flatpak/app/org.kde.xwaylandvideobridge/x86_64/master/57c956ce29f61cdc8822aae58c71bf4466db8ba94e8d0649f5eb949304ba4051/export/share/applications/org.kde.xwaylandvideobridge.desktop ~/.config/autostart
  echo
  echo ${bold}${yellow}Xwaylandvideobridge autostart set${normal}
  echo ---------------------------------------------
  
fi

if [[ $user_choice = *"Nvidia GPU - Magyar Nyelv - Xwaylandvideobridge Manual Start"* ]]; then
  echo
  echo ---------------------------------------------
  echo Downloading ${bold}${yellow}Hungarian LangPack${normal}
  echo
    sudo nala install language-pack-hu language-pack-hu-base -y
  echo
  echo ${bold}${yellow}Hungarian LangPack ${normal}downloaded.
  echo ---------------------------------------------
  echo
  
fi

sudo chown -R $USER:$GROUP ~/

# Script end

echo ${bold}${yellow}The system will restart in 3 seconds...${normal}
echo ${bold}${yellow}3...${normal}
sleep 1
echo ${bold}${yellow}2...${normal}
sleep 1
echo ${bold}${yellow}1...${normal}
sleep 1

sudo reboot