#!/usr/bin/env bash
ver="2.7.0_fedora_git.tyleo.dev"

Arg1=$1

wget scr.tyleo.dev/setup/fedora -O ./fedora &>/dev/null
clear

# Functions

update-system-hostname() {
echo -n "Set a new Hostname : "
read NHostname
sudo hostnamectl set-hostname --static $NHostname    
}

update-system-packages() {
sudo dnf makecache
sudo dnf up -y
}

inject-wlcm-reg() {
    wget scr.tyleo.dev/runner/reg -O /tmp/tyleo_reg
    wget scr.tyleo.dev/runner/wlcm-v2 -O /tmp/tyleo_wlcm
    echo "/usr/bin/wlcm" > /tmp/wlcm_profile
    sudo cp /tmp/tyleo_wlcm /usr/bin/wlcm
    sudo cp /tmp/tyleo_reg /usr/bin/reg
    sudo chmod +x /usr/bin/reg
    sudo chmod +x /usr/bin/wlcm
    sudo cp /tmp/wlcm_profile /etc/profile.d/wlcm.sh
    sudo chmod +x /etc/profile.d/wlcm.sh
}

update-personnal-packages() {
sudo dnf in      -y fedora-workstation-repositories
sudo fedora-third-party enable
sudo fedora-third-party refresh
sudo dnf remove  -y gnome-text-editor
sudo dnf install -y gedit
sudo dnf in      -y "https://hst.tyleo.dev/packages/rpm/ocs-url_fc20.rpm"
sudo dnf in      -y lshw switchdesk switchdesk-gui go ruby subfinder engrampa flatpak nmap nmtui gparted duf alien aria2 micro gnome-boxes ptyxis timeshift pwgen ncdu htop btop glances figlet fish zsh gimp openshot google-chrome-stable distrobox docker docker-compose gnome-software
sudo dnf in      -y gnome-tweaks
sudo dnf in      -y ffmpeg
}

update-flatpak-games-bigs-packages() {
if [ -x /usr/bin/flatpak ]; then
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo >>/dev/null
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo >>/dev/null
# sudo flatpak install flathub -y \
echo "No Big Games registered."
sudo flatpak update -y
fi
}

update-flatpak-emulators-packages() {
if [ -x /usr/bin/flatpak ]; then
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo >>/dev/null
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo >>/dev/null
sudo flatpak install flathub -y \
com.github.Rosalie241.RMG \
org.DolphinEmu.dolphin-emu \
net.kuribo64.melonDS \
io.mgba.mGBA \
org.ppsspp.PPSSPP \
net.pcsx2.PCSX2 \
org.duckstation.DuckStation \
app.xemu.xemu \
com.snes9x.Snes9x \
org.purei.Play \
org.mamedev.MAME \
io.github.sameboy.SameBoy \
com.vba_m.visualboyadvance-m
sudo flatpak update -y
fi
}

update-flatpak-games-packages() {
if [ -x /usr/bin/flatpak ]; then
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo >>/dev/null
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo >>/dev/null
### WAIT LIST
# 
###
sudo flatpak install flathub -y \
io.gitlab.stone_kingdoms.StoneKingdoms \
io.openrct2.OpenRCT2 \
uk.co.powdertoy.tpt \
net.hhoney.rota \
net.hhoney.tinycrate \
org.gnome.Sudoku \
com.atlauncher.ATLauncher \
org.kartkrew.RingRacers \
com.github.Anuken.Mindustry \
org.srb2.SRB2Kart \
net.sourceforge.ExtremeTuxRacer \
io.sourceforge.trigger_rally.TriggerRally \
net.sourceforge.torcs \
dev.tchx84.Gameeky \
com.github.juzzlin.DustRacing2D \
com.simutrans.Simutrans \
ca.victorz.acr.AssaultCubeReloaded \
com.adilhanney.ricochlime \
io.sourceforge.YSoccer \
io.thp.numptyphysics \
de.blobbyvolley.BlobbyVolley2
sudo flatpak update -y
fi
}

update-flatpak-packages() {
if [ -x /usr/bin/flatpak ]; then
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo >>/dev/null
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo >>/dev/null
sudo flatpak install flathub -y \
com.github.tchx84.Flatseal \
com.google.Chrome \
io.github.dweymouth.supersonic \
io.github.ungoogled_software.ungoogled_chromium \
com.bitwarden.desktop \
xyz.armcord.ArmCord \
io.github.revisto.drum-machine \
io.github.jeffshee.Hidamari \
io.github.dvlv.boxbuddyrs \
io.github.flattool.Ignition \
com.visualstudio.code \
org.kde.calligra \
com.hunterwittenborn.Celeste \
io.github.giantpinkrobots.varia \
md.obsidian.Obsidian \
io.gitlab.news_flash.NewsFlash \
org.cockpit_project.CockpitClient \
org.sqlitebrowser.sqlitebrowser \
com.github.finefindus.eyedropper \
io.missioncenter.MissionCenter \
org.gnome.design.Lorem \
io.github.lo2dev.Echo \
io.github.realmazharhussain.GdmSettings \
com.mattjakeman.ExtensionManager \
io.gitlab.elescoute.password \
org.dupot.easyflatpak \
com.konstantintutsch.Lock \
io.github.vikdevelop.SaveDesktop \
io.github.plrigaux.sysd-manager \
io.github.vemonet.EmojiMart \
com.github.fabiocolacio.marker \
org.gnome.DejaDup \
de.schmidhuberj.DieBahn \
dev.zelikos.rollit \
im.bernard.Memorado \
app/com.github.iwalton3.jellyfin-media-player \
it.mijorus.gearlever \
io.github.flattool.Warehouse \
io.gitlab.adhami3310.Impression \
com.jgraph.drawio.desktop \
org.gabmus.swatch \
io.github.wiiznokes.fan-control \
io.github.fsobolev.TimeSwitch \
ca.vlacroix.Tally \
dev.qwery.AddWater \
org.gnome.World.PikaBackup \
com.gitlab.davem.ClamTk \
com.github.alecaddd.sequeler \
it.fabiodistasio.AntaresSQL \
io.gitlab.elescoute.spacelaunch \
me.iepure.devtoolbox \
com.github.phase1geo.minder \
ca.desrt.dconf-editor \
page.codeberg.libre_menu_editor.LibreMenuEditor \
pl.youkai.nscan \
app.drey.Dialect \
org.gnome.Geary \
com.github.hugolabe.Wike \
com.rafaelmardojai.Blanket \
ca.edestcroix.Recordbox \
org.nickvision.tagger \
io.github.nokse22.asciidraw \
net.nokyan.Resources \
org.easycoding.TunedSwitcher \
io.github.halfmexican.Mingle \
org.gnome.Firmware \
io.github.ronniedroid.concessio \
net.codelogistics.webapps \
io.freetubeapp.FreeTube \
io.github.amit9838.mousam \
org.gabmus.whatip \
com.quexten.Goldwarden \
info.smplayer.SMPlayer \
io.github.kukuruzka165.materialgram \
com.usebottles.bottles
# Removing Blacklisted Packs
sudo flatpak remove -y \
app.zen_browser.zen \
com.vivaldi.Vivaldi \
io.github.spacingbat3.webcord
sudo flatpak update -y
fi
}

update-flatpak-keyguard() {
sudo wget "https://github.com/AChep/keyguard-app/releases/download/r20250128/Keyguard.flatpak" -O /tmp/keyguard.flatpak
sudo flatpak install "/tmp/keyguard.flatpak" -y
}

update-flatpak-sublime-music() {
sudo wget "https://hst.tyleo.dev/flatpaks/sublime-music.flatpak" -O /tmp/sublime-music.flatpak
sudo flatpak install "/tmp/sublime-music.flatpak" -y
}

kde_install_xrdp() {
    sudo dnf in xrdp plasma-workspace-x11 -y
    echo "> Configuring FirewallD for XRDP Service on 0.0.0.0:3389..."
    sudo firewall-cmd --permanent --add-port=3389/tcp
    sudo firewall-cmd --reload
    echo "> Autorizing XRDP Processes..."
    sudo chcon --type=bin_t /usr/sbin/xrdp
    sudo chcon --type=bin_t /usr/sbin/xrdp-sesman
    echo "> Enabling and Starting XRDP Services Daemons..."
    sudo systemctl enable xrdp --now
    sudo systemctl enable xrdp-sesman --now
}

invoke-reg-script() {
    wget scr.tyleo.dev/setup/wr -O /tmp/wr
    sudo bash /tmp/wr
    sudo reg
}

unreg-reg-script() {
    wget scr.tyleo.dev/setup/wr -O /tmp/wr
    sudo bash /tmp/wr
    sudo reg --cleanup
}

install-vpn-client() {
sudo tee /etc/yum.repos.d/pritunl.repo << EOF
[pritunl]
name=Pritunl Repository
baseurl=https://repo.pritunl.com/stable/yum/fedora/41/
gpgcheck=1
enabled=1
gpgkey=https://raw.githubusercontent.com/pritunl/pgp/master/pritunl_repo_pub.asc
EOF
sudo dnf install pritunl-client-electron -y
}

update-fonts-package() {
# Sourcing and Parameters
SOURCE_FONT_PACKFILE="https://res.tyleo.dev/fonts/fontpack.tar.gz"
TEMP_FONT_PACKFILE="/tmp/fontpack.tar.gz"
FONTDIR="/usr/share/fonts/custom"

# Preparing Font Directory
sudo rm -rfv $FONTDIR >/dev/null
sudo mkdir -pv $FONTDIR

# Downloading Assets and Placing Them
sudo wget $SOURCE_FONT_PACKFILE -O $TEMP_FONT_PACKFILE
sudo tar -xvf $TEMP_FONT_PACKFILE -C $FONTDIR

# Refreshing FC Cache
sudo fc-cache -r
}

update-theming-pack() {
echo "> Preparing Theming Packs..."
gsettings set org.gnome.mutter check-alive-timeout 240000

# Graphite Theme Settings
## Color Chooser ##
clear
title="Theme Color and Mode Selection"
header-show
echo -n "> Theme Mode (default is Dark) :
1. Dark Mode (default)
2. Light Mode

> Choice : "
read thememode
if [[ $thememode = $null ]]; then
    ThemeModeSet="-Dark"
fi
if [[ $thememode = 1 ]]; then
    ThemeModeSet="-Dark"
fi
if [[ $thememode = 2 ]]; then
    ThemeModeSet=""
fi
echo -n "> Make color choice (default is Red) :
1. Red
2. Blue
3. Pink
4. Purple
5. Teal
6. White
7. Green
8. Orange
9. Yellow

> Choice : "
read colorchoice
if [[ $colorchoice = $null ]]; then
    ThemeColor="-red"
fi
if [[ $colorchoice = 1 ]]; then
    ThemeColor="-red"
fi
if [[ $colorchoice = 2 ]]; then
    ThemeColor="-blue"
fi
if [[ $colorchoice = 3 ]]; then
    ThemeColor="-pink"
fi
if [[ $colorchoice = 4 ]]; then
    ThemeColor="-purple"
fi
if [[ $colorchoice = 5 ]]; then
    ThemeColor="-teal"
fi
if [[ $colorchoice = 6 ]]; then
    ThemeColor=""
fi
if [[ $colorchoice = 7 ]]; then
    ThemeColor="-green"
fi
if [[ $colorchoice = 8 ]]; then
    ThemeColor="-orange"
fi
if [[ $colorchoice = 9 ]]; then
    ThemeColor="-yellow"
fi
###################

# Automatic Theming GTK to Fluent Design Purple Theme

mkdir $HOME/.themes
mkdir -p $HOME/.local/icons

wget "https://res.tyleo.dev/gtk/gz/Colloid-Grey.tar.xz"       -O /tmp/icontheme.tar.xz
wget "https://res.tyleo.dev/gtk/gz/Graphite-Dark.tar.xz" -O /tmp/gtktheme.tar.xz

sudo tar -xvf /tmp/icontheme.tar.xz -C  /usr/share/icons
sudo tar -xvf /tmp/gtktheme.tar.xz -C   /usr/share/themes

sudo tar -xvf /tmp/icontheme.tar.xz -C  $HOME/.local/share/icons
sudo tar -xvf /tmp/gtktheme.tar.xz -C   $HOME/.themes

sudo gsettings set org.gnome.desktop.interface gtk-theme Graphite$ThemeColor$ThemeModeSet
sudo gsettings set org.gnome.desktop.wm.preferences theme Graphite$ThemeColor$ThemeModeSet
sudo gsettings set org.gnome.desktop.interface icon-theme "Colloid-Grey$ThemeModeSet"
gsettings set org.gnome.desktop.interface gtk-theme Graphite$ThemeColor$ThemeModeSet
gsettings set org.gnome.desktop.wm.preferences theme Graphite$ThemeColor$ThemeModeSet
gsettings set org.gnome.desktop.interface icon-theme "Colloid-Grey$ThemeModeSet"
dconf write /org/gnome/shell/extensions/user-theme/name "'Graphite$ThemeColor$ThemeModeSet'"
flatpak override --user --env=GTK_THEME=Graphite$ThemeColor$ThemeModeSet
sudo flatpak override --env=GTK_THEME=Graphite$ThemeColor$ThemeModeSet


flatpak override --user --filesystem=~/.themes
sudo flatpak override --filesystem=~/.themes
flatpak override --user --filesystem=~/.local/share/icons
sudo flatpak override --filesystem=~/.local/share/icons

sudo cp /etc/environment /etc/environment.bak
echo "GTK_THEME='Graphite$ThemeColor$ThemeModeSet'"       | sudo tee /etc/environment
echo "export GTK_THEME='Graphite$ThemeColor$ThemeModeSet'"| sudo tee -a /etc/environment
}

update-usermod() {
sudo dnf in -y fish
sudo usermod --shell /usr/bin/fish root
sudo usermod --shell /usr/bin/fish $USER
}

show-gnome-extensions-list() {
echo https://extensions.gnome.org/extension/19/user-themes
echo https://extensions.gnome.org/extension/3628/arcmenu
echo https://extensions.gnome.org/extension/2890/tray-icons-reloaded/
echo https://extensions.gnome.org/extension/1160/dash-to-panel/
}

execute-reboot() {
    sudo /usr/sbin/reboot
}

## FEDORA BASEOS FILES
osrel="/etc/fedora-release"
######################

## COLORS
# Reset
Color_Off='\033[0m'       # Text Reset

# Regular Colors
Black='\033[0;30m'        # Black
Red='\033[0;31m'          # Red
Green='\033[0;32m'        # Green
Yellow='\033[0;33m'       # Yellow
Blue='\033[0;34m'         # Blue
Purple='\033[0;35m'       # Purple
Cyan='\033[0;36m'         # Cyan
White='\033[0;37m'        # White

# Bold
BBlack='\033[1;30m'       # Black
BRed='\033[1;31m'         # Red
BGreen='\033[1;32m'       # Green
BYellow='\033[1;33m'      # Yellow
BBlue='\033[1;34m'        # Blue
BPurple='\033[1;35m'      # Purple
BCyan='\033[1;36m'        # Cyan
BWhite='\033[1;37m'       # White

# Underline
UBlack='\033[4;30m'       # Black
URed='\033[4;31m'         # Red
UGreen='\033[4;32m'       # Green
UYellow='\033[4;33m'      # Yellow
UBlue='\033[4;34m'        # Blue
UPurple='\033[4;35m'      # Purple
UCyan='\033[4;36m'        # Cyan
UWhite='\033[4;37m'       # White

# Background
On_Black='\033[40m'       # Black
On_Red='\033[41m'         # Red
On_Green='\033[42m'       # Green
On_Yellow='\033[43m'      # Yellow
On_Blue='\033[44m'        # Blue
On_Purple='\033[45m'      # Purple
On_Cyan='\033[46m'        # Cyan
On_White='\033[47m'       # White

# High Intensity
IBlack='\033[0;90m'       # Black
IRed='\033[0;91m'         # Red
IGreen='\033[0;92m'       # Green
IYellow='\033[0;93m'      # Yellow
IBlue='\033[0;94m'        # Blue
IPurple='\033[0;95m'      # Purple
ICyan='\033[0;96m'        # Cyan
IWhite='\033[0;97m'       # White

# Bold High Intensity
BIBlack='\033[1;90m'      # Black
BIRed='\033[1;91m'        # Red
BIGreen='\033[1;92m'      # Green
BIYellow='\033[1;93m'     # Yellow
BIBlue='\033[1;94m'       # Blue
BIPurple='\033[1;95m'     # Purple
BICyan='\033[1;96m'       # Cyan
BIWhite='\033[1;97m'      # White

# High Intensity backgrounds
On_IBlack='\033[0;100m'   # Black
On_IRed='\033[0;101m'     # Red
On_IGreen='\033[0;102m'   # Green
On_IYellow='\033[0;103m'  # Yellow
On_IBlue='\033[0;104m'    # Blue
On_IPurple='\033[0;105m'  # Purple
On_ICyan='\033[0;106m'    # Cyan
On_IWhite='\033[0;107m'   # White
######################

header-show() {
    clear
    echo -e "$BIGreen> Starting WS Protocol..., Name : $title"
}

reload-script() {
    chmod +x $PWD/$(basename $0)
    bash -c "$PWD/$(basename $0)" && exit
}

wait-3s() {
    echo "> Waiting 3 Seconds... Use CTRL+C to cancel procedure."
    sleep 1
    header-show
    echo "> Waiting 2 Seconds... Use CTRL+C to cancel procedure."
    sleep 1
    header-show
    echo "> Waiting 1 Seconds... Use CTRL+C to cancel procedure."
    sleep 1
    header-show
    echo -e "  Started !$Color_Off"
}

wait-for-keypress() {
    echo -n -e $On_White $BBlack
    read -p " Press any key to continue... " -n1 -s
    echo -n -e $Color_Off
}

enable-cmd-mode() {
    echo -e -n $IYellow
}

disable-cmd-mode() {
    echo -e -n $Color_Off
}

kde_install_pmobile() {
    sudo dnf in -y plasma-mobile
    echo "!> Use login screen to switch to Mobile UI. /!\ Mobile UI is Wayland only /!\^"
}

kde_install_px11() {
    sudo dnf in -y plasma-workspace-x11
    echo "!> Use login screen to switch to X11, reboot is required for multi monitors setup."
}

show_script_version() {
    echo -e "$BIWhite Script Version : $ver $Color_Off"
    echo -e "$BICyan---------------------------------------------------------------------------"
}

show_licence(){
    clear
    show_header
    echo "              DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                      Version 2, December 2004

            Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>

    Everyone is permitted to copy and distribute verbatim or modified
   copies of this license document, and changing it is allowed as long
                      as the name is changed.

              DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
     TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

 0. You just DO WHAT THE FUCK YOU WANT TO."
 echo -e "$BICyan---------------------------------------------------------------------------"
 exit
}

show_header(){
    echo -e "${BICyan}---------------------------------------------------------------------------${Color_Off}"
echo -e "${BICyan}|${Color_Off}${BIGreen} ___         __    _____ __     __  ${BICyan}|${Color_Off}$BIPurple  _                 _               ${BICyan}|${Color_Off}
${BICyan}|${Color_Off}${BIGreen}  |   | _ _ (_ \_/(_  | |_ |\/|(_   ${BICyan}|${Color_Off}$BIPurple |_)|_  _  _ ._ o  |_).__ o _  __|_ ${BICyan}|${Color_Off}
${BICyan}|${Color_Off}${BIGreen}  | \/|(-(_)__) | __) | |__|  |__)  ${BICyan}|${Color_Off}$BIPurple |  | |(_)(/_| ||><|  |(_)|(/_(_ |_ ${BICyan}|${Color_Off}
${BICyan}|${Color_Off}${BIGreen}    /    Make IT Happening          ${BICyan}|${Color_Off}$BIPurple            Just Do It!  _|  GEN4   ${BICyan}|${Color_Off}${Color_Off}"
echo -e "$BICyan---------------------------------------------------------------------------$Color_Off"
}

if [[ $Arg1 = "--version" ]]||[[ $Arg1 = "-v" ]]; then
    show_header
    show_script_version
    exit
fi

if [[ $Arg1 = "--register" ]]||[[ $Arg1 = "-r" ]]; then
    show_header
    invoke-reg-script
    exit
fi

if [[ $Arg1 = "--unregister" ]]||[[ $Arg1 = "-u" ]]; then
    show_header
    unreg-reg-script
    exit
fi

if [[ $Arg1 = "--licence" ]]||[[ $Arg1 = "-l" ]]; then
    show_header
    show_licence
    exit
fi

if [[ $Arg1 = "--version" ]]||[[ $Arg1 = "-v" ]]; then
    show_header
    show_script_version
    exit
fi

if [[ $Arg1 = "--help" ]]||[[ $Arg1 = "-h" ]]; then
    show_header
    echo -e "$BIYellow Guide du Débutant, non je déconne, je suis un expert.
-----------------------------------------------------------------------------------
 -a/--auto     : Déclancher le Deploiement Automatique (Full).
 -h/--help     : Afficher cette superbe aide faite main.
 -r/--register : Enregistrer le système avec le script reg (installe aussi WLCMv2)
 -v/--version  : Affiche la version du script. Voir git.tyleo.dev pour les détails
 -l/--licence  : Voir la licence de ce script. Faut croire, qu'il y'en a une.
-----------------------------------------------------------------------------------$Color_Off"
    exit
fi

if [[ $Arg1 = "--auto" ]]||[[ $Arg1 = "-a" ]]; then
    show_header
    echo "$BICyan > Mode Automatique Invoqué. Lancement de la tâche Full Deploy dans 3 secondes."
    sleep 3
    clear
    title="Full Deploy/Update/Setup - From CLI (-a/--auto)"
    header-show
    wait-3s
    enable-cmd-mode
    update-system-hostname
    update-system-packages
    update-personnal-packages
    install-vpn-client
    update-flatpak-packages
    update-flatpak-keyguard
    update-fonts-package
    update-theming-pack
    update-usermod
    inject-wlcm-reg
    disable-cmd-mode
    wait-for-keypress
    reload-script
    exit
fi

#################################################################################################################
#################################################################################################################
#################################################################################################################
#################################################################################################################
#################################################################################################################
#################################################################################################################

show_header
echo -e "$BCyan------------------------------------------------------------------GENERAL--
|$BCyan A  | Execute All Jobs (Full Deploy                                      $BCyan|
|$BCyan G  | Show Gnome Extensions URLs                                         $BCyan|
|$BCyan W  | Install/Update WLCM & RegScript                                    $BCyan|
|$BCyan R  | Register this system                                               $BCyan|
------------------------------------------------------------------ACTIONS--$Color_Off$BCyan
|$BIPurple 1  | Update System Packages & Configuration                             $BCyan|
|$BIPurple 2  | Update Flatpak Packages & Configurationw                           $BCyan|
|$BIPurple 3  | Update Fontpack Configuration                                      $BCyan|
|$BIPurple 4  | Update Theming Configuration                                       $BCyan|
|$BIPurple 5  | Update System Hostname                                             $BCyan|
|$BIPurple 6  | Update Usermod Configuration                                       $BCyan|
--------------------------------------------------------------------PACKS--$Color_Off$BCyan
|$BIYellow V  | Install/Update VPN Client                                          $BCyan|
|$BIYellow K  | Install/Update Keyguard Client                                     $BCyan|
|$BIYellow S  | Install/Update Subsonic Client                                     $BCyan|
|$BIYellow M  | Install/Update Gaming Packages                                     $BCyan|
|$BIYellow B  | Install/Update BgGame Packages                                     $BCyan|
|$BIYellow E  | Install/Update Emulators Packages                                  $BCyan|
--------------------------------------------------------------KDE-DESKTOP--$Color_Off$BCyan
|$BBlue K0 | Install Plasma X11 Workspace                                       $BCyan|
|$BBlue K1 | Install Plasma Mobile Workspace                                    $BCyan|
|$BBlue K2 | Install XRDP on Plasma Desktop (This enable X11 Support)           $BCyan|
-------------------------------------------------------------------SYSTEM--$Color_Off$BCyan
|$BRed Q  | Reboot System                                                      $BCyan|
---------------------------------------------------------------------------$Color_Off"
echo -e -n "$BCyan  Procedure to start (CAPS) : "
read choice
echo -e $Color_Off

if [[ $choice = $null ]]; then
    reload-script
fi

if [[ $choice = A ]]; then
    title="Full Deploy/Update/Setup"
    header-show
    wait-3s
    enable-cmd-mode
    update-system-hostname
    update-system-packages
    update-personnal-packages
    install-vpn-client
    update-flatpak-packages
    update-flatpak-keyguard
    update-fonts-package
    update-theming-pack
    update-usermod
    inject-wlcm-reg
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = W ]]; then
    title="Registering Script & WLCMv2"
    header-show
    wait-3s
    enable-cmd-mode
    inject-wlcm-reg
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = R ]]; then
    title="Register my system"
    header-show
    wait-3s
    enable-cmd-mode
    invoke-reg-script
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = K ]]; then
    title="Installation or Update of Keyguard Vaultwarden Client"
    header-show
    wait-3s
    enable-cmd-mode
    update-flatpak-keyguard
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = E ]]; then
    title="Installation or Update of Emulators"
    header-show
    wait-3s
    enable-cmd-mode
    update-flatpak-emulators-packages
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = S ]]; then
    title="Installation or Update of Subsonic Music Client"
    header-show
    wait-3s
    enable-cmd-mode
    update-flatpak-sublime-music
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = 2 ]]; then
    title="Flatpak Updates Packages & Configuration"
    header-show
    wait-3s
    enable-cmd-mode
    update-flatpak-packages
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = M ]]; then
    title="Games - Flatpak Updates Packages & Configuration"
    header-show
    wait-3s
    enable-cmd-mode
    update-flatpak-games-packages
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = B ]]; then
    title="Big Games - Flatpak Updates Packages & Configuration"
    header-show
    wait-3s
    enable-cmd-mode
    update-flatpak-games-bigs-packages
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = K2 ]]; then
    title="KDE DE - Remote Desktop Service (XRDP) with X11"
    header-show
    wait-3s
    enable-cmd-mode
    kde_install_xrdp
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = K1 ]]; then
    title="KDE DE - Mobile UI"
    header-show
    wait-3s
    enable-cmd-mode
    kde_install_pmobile
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = K0 ]]; then
    title="KDE DE - X11 Workspace (For NVIDIA Environnements)"
    header-show
    wait-3s
    enable-cmd-mode
    kde_install_px11
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = 3 ]]; then
    title="Fontpack Updates and Installation"
    header-show
    wait-3s
    enable-cmd-mode
    update-fonts-package
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = 4 ]]; then
    title="Theming for Gnome Desktop Updates and Installation"
    header-show
    wait-3s
    enable-cmd-mode
    update-theming-pack
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = 5 ]]; then
    title="System Hostname Configuration"
    header-show
    wait-3s
    enable-cmd-mode
    update-system-hostname
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = 6 ]]; then
    title="User Modifications Configurations"
    header-show
    wait-3s
    enable-cmd-mode
    update-usermod
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = V ]]; then
    title="VPN Client Installation or Updates (Pritunl Client Electron)"
    header-show
    wait-3s
    enable-cmd-mode
    install-vpn-client
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = 1 ]]; then
    title="System Packages Updates and Configurations"
    header-show
    wait-3s
    enable-cmd-mode
    update-system-packages
    update-personnal-packages
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = G ]]; then
    title="Gnome Extensions List"
    header-show
    wait-3s
    enable-cmd-mode
    show-gnome-extensions-list
    disable-cmd-mode
    wait-for-keypress
    reload-script
fi

if [[ $choice = Q ]]
then
    title="Rebooting System"
    header-show
    wait-3s
    enable-cmd-mode
    echo "System Will Reboot after 3s..."
    disable-cmd-mode
    execute-reboot
    wait-3s
    reload-script
fi

if [[ $choice = T ]]
then
    title="Test Procedure"
    header-show
    wait-3s 
    reload-script
fi

$Color_Off