Updated script
This commit is contained in:
@@ -0,0 +1,325 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# #
|
||||||
|
# Fedora Post-Install Setup Script #
|
||||||
|
# #
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# --- Function Declarations ---
|
||||||
|
|
||||||
|
# Option 1: Install Media Codecs
|
||||||
|
install_media_codecs() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Installing multimedia codecs..."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 2
|
||||||
|
sudo dnf group install multimedia
|
||||||
|
echo "Multimedia codecs installation complete."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Option 2: Modify DNF Configuration
|
||||||
|
modify_dnf() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Modifying /etc/dnf/dnf.conf for faster downloads."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 2
|
||||||
|
# Text that will be added to the file
|
||||||
|
text_to_append="max_parallel_downloads=10
|
||||||
|
defaultyes=True
|
||||||
|
keepcache=True"
|
||||||
|
|
||||||
|
#File path
|
||||||
|
file_path="/etc/dnf/dnf.conf"
|
||||||
|
|
||||||
|
# Append the text to the end of the file
|
||||||
|
echo "$text_to_append" | sudo tee -a "$file_path"
|
||||||
|
|
||||||
|
echo "Modification has been completed"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Option 3: Install Fonts
|
||||||
|
install_fonts() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Installing Microsoft Core Fonts and Meslo Nerd Font."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 2
|
||||||
|
echo "Installing prerequisites..."
|
||||||
|
sudo dnf upgrade --refresh
|
||||||
|
sudo dnf install -y curl cabextract xorg-x11-font-utils fontconfig
|
||||||
|
|
||||||
|
echo "Installing Microsoft Core Fonts..."
|
||||||
|
sudo rpm -i https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
|
||||||
|
|
||||||
|
echo "Downloading and installing MesloLGS Nerd Font for Powerlevel10k..."
|
||||||
|
# Create a temporary directory to work in
|
||||||
|
mkdir -p ~/.tmp-fonts
|
||||||
|
cd ~/.tmp-fonts || exit
|
||||||
|
|
||||||
|
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
|
||||||
|
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf
|
||||||
|
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf
|
||||||
|
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf
|
||||||
|
|
||||||
|
sudo mkdir -p /usr/local/share/fonts/MesloLGS
|
||||||
|
sudo mv ./*.ttf /usr/local/share/fonts/MesloLGS/
|
||||||
|
|
||||||
|
# Clean up temporary directory
|
||||||
|
cd ~
|
||||||
|
rm -rf ~/.tmp-fonts
|
||||||
|
|
||||||
|
echo "Updating font cache..."
|
||||||
|
sudo fc-cache -fv
|
||||||
|
echo "Font installation complete."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Option 4: Core System Setup
|
||||||
|
core_setup() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Performing core system setup."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 2
|
||||||
|
sudo dnf groupupdate -y core
|
||||||
|
sudo dnf install -y "kernel-devel-$(uname -r)" rust-libudev-devel distrobox
|
||||||
|
|
||||||
|
#Not need at the moment
|
||||||
|
#echo "Adding Flathub remote for Flatpak..."
|
||||||
|
#sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||||
|
|
||||||
|
echo "Core setup complete."
|
||||||
|
echo "A restart or logout may be required for all changes to take effect."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Option 5: Install Zsh and Oh My Zsh
|
||||||
|
install_zsh() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Installing Zsh and Oh My Zsh."
|
||||||
|
echo "Make sure you have installed the fonts from option 3."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
echo "Installing zsh package..."
|
||||||
|
sudo dnf install -y zsh
|
||||||
|
|
||||||
|
echo "Installing Oh My Zsh. Please follow the prompts."
|
||||||
|
echo "The script will continue after Oh My Zsh is installed."
|
||||||
|
sleep 3
|
||||||
|
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
|
||||||
|
|
||||||
|
echo "Oh My Zsh installation finished."
|
||||||
|
echo "Please proceed with option 5.5 to install themes and plugins."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Option 5.5: Setup Zsh Theme and Plugins
|
||||||
|
setup_zsh_themes() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Installing Zsh themes and plugins."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 2
|
||||||
|
# Define ZSH_CUSTOM if it's not already set
|
||||||
|
ZSH_CUSTOM=${ZSH_CUSTOM:-~/.oh-my-zsh/custom}
|
||||||
|
|
||||||
|
echo "Cloning Powerlevel10k theme..."
|
||||||
|
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM}/themes/powerlevel10k"
|
||||||
|
|
||||||
|
echo "Cloning plugins..."
|
||||||
|
git clone https://github.com/zsh-users/zsh-autosuggestions "${ZSH_CUSTOM}/plugins/zsh-autosuggestions"
|
||||||
|
git clone https://github.com/zsh-users/zsh-history-substring-search "${ZSH_CUSTOM}/plugins/zsh-history-substring-search"
|
||||||
|
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "${ZSH_CUSTOM}/plugins/zsh-syntax-highlighting"
|
||||||
|
git clone https://github.com/MichaelAquilina/zsh-you-should-use.git "${ZSH_CUSTOM}/plugins/you-should-use"
|
||||||
|
|
||||||
|
echo "Copying .zshrc to home folder..."
|
||||||
|
cp .zshrc ~/.zshrc
|
||||||
|
echo ".zshrc copied successfully."
|
||||||
|
source ~/.zshrc
|
||||||
|
}
|
||||||
|
|
||||||
|
# Option 6: Add Extra Repos
|
||||||
|
add_repos() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Adding RPM Fusion repositories."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 2
|
||||||
|
sudo dnf install -y \
|
||||||
|
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
|
||||||
|
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
|
||||||
|
echo "Repositories have been added."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Option 7: Install WineHQ
|
||||||
|
install_wine() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Installing WineHQ Staging."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 2
|
||||||
|
# Note: Fedora version is hardcoded to 39. Update if necessary.
|
||||||
|
sudo dnf config-manager --add-repo https://dl.winehq.org/wine-builds/fedora/39/winehq.repo
|
||||||
|
sudo dnf install -y winehq-staging --allowerasing
|
||||||
|
|
||||||
|
echo "Verifying Wine installation..."
|
||||||
|
wine --version
|
||||||
|
echo "WineHQ installation complete."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Option 8: Install Software
|
||||||
|
install_software() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Installing most used software."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
echo "--- Installing RPM Packages ---"
|
||||||
|
sudo dnf install -y gnome-tweaks steam lutris btop fastfetch jstest-gtk
|
||||||
|
|
||||||
|
echo "--- Installing Visual Studio Code ---"
|
||||||
|
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
|
||||||
|
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
|
||||||
|
sudo dnf check-update
|
||||||
|
sudo dnf install -y code
|
||||||
|
|
||||||
|
echo "--- Installing Flatpak Packages ---"
|
||||||
|
flatpak install flathub -y com.discordapp.Discord
|
||||||
|
flatpak install flathub -y com.github.tchx84.Flatseal
|
||||||
|
flatpak install flathub -y net.nokyan.Resources
|
||||||
|
flatpak install flathub -y com.mattjakeman.ExtensionManager
|
||||||
|
flatpak install flathub -y io.github.realmazharhussain.GdmSettings
|
||||||
|
flatpak install flathub -y io.github.dvlv.boxbuddyrs
|
||||||
|
flatpak install flathub -y it.mijorus.gearlever
|
||||||
|
flatpak install flathub -y io.github.fastrizwaan.WineZGUI
|
||||||
|
flatpak install flathub -y com.vysp3r.ProtonPlus
|
||||||
|
flatpak install flathub -y io.missioncenter.MissionCenter
|
||||||
|
flatpak install flathub -y io.github.peazip.PeaZip
|
||||||
|
flatpak install flathub -y io.github.fastrizwaan.WineZGUI
|
||||||
|
flatpak install flathub -y app.devsuite.Ptyxis
|
||||||
|
flatpak install flathub -y re.sonny.Junction
|
||||||
|
flatpak install flathub -y com.github.rafostar.Clapper
|
||||||
|
flatpak install flathub -y io.github.flattool.Ignition
|
||||||
|
flatpak install flathub -y io.github.debasish_patra_1987.linuxthemestore
|
||||||
|
flatpak install flathub -y codes.merritt.Nyrna
|
||||||
|
flatpak install flathub -y page.tesk.Refine
|
||||||
|
flatpak install flathub -y io.gitlab.adhami3310.Converter
|
||||||
|
flatpak install flathub -y com.bitwarden.desktop
|
||||||
|
flatpak install flathub -y com.modrinth.ModrinthApp
|
||||||
|
flatpak install flathub -y com.usebottles.bottles
|
||||||
|
|
||||||
|
echo "Software installation complete."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Option 9: Install Homebrew
|
||||||
|
install_brew() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Installing Homebrew."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 2
|
||||||
|
echo "Installing prerequisites (Development Tools)..."
|
||||||
|
sudo dnf groupinstall -y 'Development Tools'
|
||||||
|
|
||||||
|
echo "Running Homebrew installation script..."
|
||||||
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||||
|
|
||||||
|
echo "Homebrew installation script finished."
|
||||||
|
echo "Please follow the on-screen instructions to add Homebrew to your PATH."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Option 10: Install CoolerControl
|
||||||
|
install_coolercontrol() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Installing CoolerControl."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 2
|
||||||
|
sudo dnf install -y dnf-plugins-core
|
||||||
|
sudo dnf copr enable -y codifryed/CoolerControl
|
||||||
|
sudo dnf install -y coolercontrol
|
||||||
|
sudo systemctl enable --now coolercontrold
|
||||||
|
echo "CoolerControl installation and service activation complete."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Option 11: Install Fish Shell
|
||||||
|
install_fish() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Installing Fish shell, Oh My Fish, and theme."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 2
|
||||||
|
echo "Installing fish package..."
|
||||||
|
sudo dnf install -y fish
|
||||||
|
|
||||||
|
echo "Installing Oh My Fish..."
|
||||||
|
# Run the install script within a fish shell
|
||||||
|
fish -c "curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install | source"
|
||||||
|
|
||||||
|
echo "Installing 'bobthefish' theme..."
|
||||||
|
fish -c "omf install bobthefish"
|
||||||
|
|
||||||
|
echo "Fish shell setup complete."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Option 12: Run Chris Titus Linux Script
|
||||||
|
run_titus_script() {
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
echo "Running the Chris Titus Tech Linux Utility Script."
|
||||||
|
echo "----------------------------------------------------"
|
||||||
|
sleep 2
|
||||||
|
curl -fsSL https://christitus.com/linux | sh
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# --- Main Menu and Script Logic ---
|
||||||
|
main_menu() {
|
||||||
|
while true; do
|
||||||
|
clear
|
||||||
|
echo "========================================================"
|
||||||
|
echo " Fedora Post-Install Setup Script"
|
||||||
|
echo "========================================================"
|
||||||
|
echo " SYSTEM SETUP"
|
||||||
|
echo "--------------------------------------------------------"
|
||||||
|
echo " 1. Install Media Codecs"
|
||||||
|
echo " 2. Modify DNF Configuration (for speed)"
|
||||||
|
echo " 3. Install Fonts (Microsoft & Nerd Fonts)"
|
||||||
|
echo " 4. Core System Setup (Kernel-Devel, Flatpak, etc.)"
|
||||||
|
echo " 6. Add RPM Fusion Repositories"
|
||||||
|
echo " "
|
||||||
|
echo " SHELL & TERMINAL"
|
||||||
|
echo "--------------------------------------------------------"
|
||||||
|
echo " 5. Install Zsh & Oh My Zsh"
|
||||||
|
echo " 5.5 Install Zsh Theme (Powerlevel10k) & Plugins"
|
||||||
|
echo " 11. Install Fish Shell & Oh My Fish"
|
||||||
|
echo " "
|
||||||
|
echo " SOFTWARE & TOOLS"
|
||||||
|
echo "--------------------------------------------------------"
|
||||||
|
echo " 7. Install WineHQ"
|
||||||
|
echo " 8. Install Common Software (Steam, Discord, etc.)"
|
||||||
|
echo " 9. Install Homebrew"
|
||||||
|
echo " 10. Install CoolerControl"
|
||||||
|
echo " "
|
||||||
|
echo " EXTERNAL SCRIPTS"
|
||||||
|
echo "--------------------------------------------------------"
|
||||||
|
echo " 12. Run Chris Titus Linux Utility Script"
|
||||||
|
echo " "
|
||||||
|
echo " 0. Exit"
|
||||||
|
echo "========================================================"
|
||||||
|
read -rp "Enter your choice: " choice
|
||||||
|
|
||||||
|
case $choice in
|
||||||
|
1) install_media_codecs ;;
|
||||||
|
2) modify_dnf ;;
|
||||||
|
3) install_fonts ;;
|
||||||
|
4) core_setup ;;
|
||||||
|
5) install_zsh ;;
|
||||||
|
5.5) setup_zsh_themes ;;
|
||||||
|
6) add_repos ;;
|
||||||
|
7) install_wine ;;
|
||||||
|
8) install_software ;;
|
||||||
|
9) install_brew ;;
|
||||||
|
10) install_coolercontrol ;;
|
||||||
|
11) install_fish ;;
|
||||||
|
12) run_titus_script ;;
|
||||||
|
0) echo "Exiting script. Goodbye!"; exit 0 ;;
|
||||||
|
*) echo "Invalid choice. Please try again." ;;
|
||||||
|
esac
|
||||||
|
echo ""
|
||||||
|
read -rp "Task complete. Press Enter to return to the menu..."
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# --- Script Execution ---
|
||||||
|
main_menu
|
||||||
Reference in New Issue
Block a user