#!/usr/bin/env bash ver="2.1.2_2025_git.tyleo.dev" wget scr.tyleo.dev/irp-fedora-ws -O ./irp-fedora-ws &>/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 } update-personnal-packages() { 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 fedora-workstation-repositories gnome-boxes ptyxis timeshift pwgen ncdu htop btop glances figlet fish zsh gimp openshot google-chrome-stable google-chrome-canary 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 \ io.github.dweymouth.supersonic \ 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 \ 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-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 } update-wlcm() { SCR_SOURCE="https://scr.tyleo.dev/runner/exec_wlcm" SCR_LOCALS="/usr/bin/wlcm" echo "> Downloading Script ..." sudo wget "https://scr.tyleo.dev/runner/exec_wlcm" -O "/usr/bin/wlcm" echo "> Allowing direct execution ... (+x)" sudo chmod +x -v /usr/bin/wlcm echo "> Finished, add 'wlcm' or 'bash /usr/bin/wlcm' to RC files for autorun !" } 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 "$On_White $BBlack Procedure in progress : $title $Color_Off" } reload-script() { chmod +x $PWD/$(basename $0) bash -c "$PWD/$(basename $0)" && exit } wait-3s() { echo "Wait 3 Seconds... Use CTRL+C to cancel procedure." sleep 3 } 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 } ################################################################################################################# ################################################################################################################# ################################################################################################################# ################################################################################################################# ################################################################################################################# ################################################################################################################# echo -e "$On_Green $BBlack Tyleo Deploy Script - Version $ver $Color_Off" echo -e "$On_Green $BBlack PhoenixProject Fedora Script to Customize Fedora Systems - https://tyleo.dev $Color_Off" echo -e "$BGreen------------------------------------------------ |$BCyan A. Execute All Jobs (Full Deploy)$BGreen | |$BGray G. Show Gnome Extensions URLs $BGreen | | | | 1. Update System Packages & Configuration | | 2. Update Flatpak Packages & Configurationw | | 3. Update Fontpack Configuration | | 4. Update Theming Configuration | | 5. Update System Hostname | | 6. Update Usermod Configuration | | | |$BBlue V. Install/Update VPN Client $BGreen | |$BBlue K. Install/Update Keyguard Client $BGreen | |$BBlue S. Install/Update Subsonic Client $BGreen | |$BBlue M. Install/Update Gaming Packages $BGreen | |$BBlue B. Install/Update BgGame Packages $BGreen | |$BBlue E. Install/Update Emulators Packages $BGreen | | | |$BRed R. Reboot System $BGreen | |$BRed Q. Exit Deployer $BGreen | ------------------------------------------------$Color_Off" echo -e -n "$BGreen 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 update-wlcm 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 = 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 = R ]] 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