General-Scripts/irp-fedora-ws

681 lines
No EOL
18 KiB
Bash
Executable file

#!/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