#!/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 in "https://hst.tyleo.dev/packages/rpm/ocs-url_fc20.rpm" -y sudo dnf in flatpak nmap nmtui gparted duf alien aria2 ffmpeg micro fedora-workstation-repositories gnome-boxes ptyxis timeshift pwgen ncdu htop btop glances figlet fish zsh gimp openshot google-chrome-stable google-chrome-canary gnome-tweaks distrobox docker docker-compose -y sudo dnf up flatpak nmap nmtui gparted duf alien aria2 ffmpeg micro fedora-workstation-repositories gnome-boxes ptyxis timeshift pwgen ncdu htop btop glances figlet fish zsh gimp openshot google-chrome-stable google-chrome-canary gnome-tweaks distrobox docker docker-compose -y } 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.jeffshee.Hidamari \ io.github.dvlv.boxbuddyrs \ io.github.flattool.Ignition \ com.visualstudio.code \ com.hunterwittenborn.Celeste \ md.obsidian.Obsidian \ io.gitlab.news_flash.NewsFlash \ org.cockpit_project.CockpitClient \ org.sqlitebrowser.sqlitebrowser \ io.missioncenter.MissionCenter \ io.github.realmazharhussain.GdmSettings \ com.mattjakeman.ExtensionManager \ org.dupot.easyflatpak \ com.atlauncher.ATLauncher \ 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 \ com.github.phase1geo.minder \ ca.desrt.dconf-editor \ page.codeberg.libre_menu_editor.LibreMenuEditor \ org.gnome.Geary \ com.github.hugolabe.Wike \ org.nickvision.tagger \ io.github.ronniedroid.concessio \ net.codelogistics.webapps \ io.freetubeapp.FreeTube \ com.vivaldi.Vivaldi \ 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 \ io.github.spacingbat3.webcord sudo flatpak update -y fi } update-flatpak-keyguard() { sudo wget "https://github.com/AChep/keyguard-app/releases/download/r20250112/Keyguard.flatpak" -O /tmp/keyguard.flatpak sudo flatpak install "/tmp/keyguard.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() { NGnomeBinary="gnome-session" if [ -x /usr/bin/$NGnomeBinary ]; then echo "> Preparing Theming Packs..." gsettings set org.gnome.mutter check-alive-timeout 240000 sudo dnf remove gnome-text-editor -y sudo dnf install gedit -y # Automatic Theming GTK to Fluent Design Purple Theme mkdir $HOME/.themes mkdir -p $HOME/.local/icons wget "https://res.tyleo.dev/gtk/fluent/Fluent-Icons.tar.xz" -O /tmp/icontheme_fluent.tar.xz wget "https://res.tyleo.dev/gtk/fluent/Fluent-Theme.tar.xz" -O /tmp/gtktheme_fluent.tar.xz sudo tar -xvf /tmp/icontheme_fluent.tar.xz -C /usr/share/icons sudo tar -xvf /tmp/gtktheme_fluent.tar.xz -C /usr/share/themes sudo tar -xvf /tmp/icontheme_fluent.tar.xz -C $HOME/.local/share/icons sudo tar -xvf /tmp/gtktheme_fluent.tar.xz -C $HOME/.themes sudo gsettings set org.gnome.desktop.interface gtk-theme Fluent-purple-Dark sudo gsettings set org.gnome.desktop.wm.preferences theme Fluent-purple-Dark sudo gsettings set org.gnome.desktop.interface icon-theme "Fluent-purple-dark" gsettings set org.gnome.desktop.interface gtk-theme Fluent-purple-Dark gsettings set org.gnome.desktop.wm.preferences theme Fluent-purple-Dark gsettings set org.gnome.desktop.interface icon-theme "Fluent-purple-dark" flatpak override --user --env=GTK_THEME=Fluent-purple-Dark sudo flatpak override --env=GTK_THEME=Fluent-purple-Dark 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='Fluent-purple-Dark'" | sudo tee /etc/environment echo "export GTK_THEME='Fluent-purple-Dark'"| sudo tee -a /etc/environment fi } 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 | | | |$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 install-vpn-client update-flatpak-packages update-flatpak-keyguard update-fonts-package update-theming-pack update-usermod 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 = 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 = 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 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