Files
dotfiles/set_up_dev/fedora.sh
T
2025-11-07 07:50:03 +00:00

116 lines
3.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# ------------------------------------------------------------
# Fedora package bootstrap script
# Author: Jake Pullen
# Date : 2025-08-15
#
# Usage:
# chmod +x fedora-setup.sh
# sudo ./fedora-setup.sh
# ------------------------------------------------------------
# list all packages we want from dnf
package_list=(
"kitty"
"fastfetch"
"zsh"
"btop"
"steam"
"code"
"just"
)
# list all the platpaks we want to install
flatpacks_to_install=(
"com.discordapp.Discord"
"com.spotify.Client"
"app.zen_browser.zen"
)
# list all the folders we want to link from our dotifles foler to our .config folder
folders_to_link=(
# "alacritty"
"git"
"zsh"
"kitty"
"starship.toml"
)
# -------------------------------------------------
set -euo pipefail # safer shell behaviour
shopt -s expand_aliases # if you use aliases inside the script
# 1. Update system first
echo "==> Updating Fedora base packages..."
sudo dnf upgrade --refresh -y
# 2. Install RPMFusion repos (free & nonfree)
echo "==> Enabling RPM-Fusion repositories..."
sudo dnf install \
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 \
-y
# prep for vs-code install
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\nautorefresh=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" | sudo tee /etc/yum.repos.d/vscode.repo > /dev/null
# Create a string of packages
package_string=$(IFS=' ' ; echo "${package_list[@]}")
# 3. Install packages listed
echo "==> Installing dnf Packages..."
sudo dnf install $package_string -y --skip-unavailable
# 5. Install Flatpak (if not present) and set up Flathub
if ! command -v flatpak &>/dev/null; then
echo "==> Installing Flatpak..."
sudo dnf install flatpak -y
fi
echo "==> Adding Flathub repository..."
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpack_string=$(IFS=' ' ; echo "${flatpacks_to_install[@]}")
# 6. Install Flatpak Apps
echo "==> Installing Discord..."
flatpak install -y flathub $flatpack_string
# 7. Install stuff from around the web that we want
# UV for Python Dev
curl -LsSf https://astral.sh/uv/install.sh | sh
# Rust, because we all love rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Bazecore for the Dygma Keyboard
./bazecore_grab.sh
# Starship because command line
curl -sS https://starship.rs/install.sh | sh
# sim link config
for folder in "${folders_to_link[@]}"; do
config_path="$HOME/dotfiles/$folder"
target_path="$HOME/.config/$folder"
ln -s "$config_path" "$target_path"
done
# sym link other bits.
ln -s $HOME/dotfiles/git/gitconfig $HOME/.gitconfig
ln -s $HOME/dotfiles/.justfile $HOME/.justfile
# untested zshrc sym link
sudo rm -f /etc/zshrc
sudo ln -s /etc/zshrc $HOME/dotfiles/zsh/.zshrc
# nvim set up likely needs work
git clone https://github.com/Jake-Pullen/kickstart.nvim.git $HOME/.config/nvim
chsh -s /bin/zsh
# 9. Clean up (optional)
echo "==> Cleaning up package cache..."
sudo dnf clean all
echo "===================================================="
echo "All done! Give the system a reboot!"