#!/usr/bin/env bash
ver="2.7.0_deb_rhinolinux_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 apt makecache
sudo apt 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 apt update
sudo apt upgrade -y
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -O /tmp/chrome_latest.deb
sudo apt update
sudo apt install -y /tmp/chrome_latest.deb
rm -f /tmp/chrome_latest.deb
sudo apt remove  -y gnome-text-editor
sudo apt install -y gedit
sudo apt install      -y "https://hst.tyleo.dev/packages/rpm/ocs-url_fc20.rpm"
sudo apt install      -y nala lshw 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 distrobox docker.io docker-compose gnome-software
sudo apt install      -y gnome-tweaks
sudo apt install      -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 \
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
}

install_xrdp() {
    sudo apt install xrdp xorgxrdp -y
    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/apt/sources.list.d/pritunl.list << EOF
deb https://repo.pritunl.com/stable/apt noble main
EOF

sudo apt --assume-yes install gnupg
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A
gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A | sudo tee /etc/apt/trusted.gpg.d/pritunl.asc
sudo apt update
sudo apt 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 apt install -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
}

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 K2 | Install XRDP Service                                               $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="Service - Remote Desktop Service (XRDP) with X11"
    header-show
    wait-3s
    enable-cmd-mode
    install_xrdp
    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