#!/bin/bash set -ouex pipefail ### Install packages # Packages can be installed from any enabled yum repo on the image. # RPMfusion repos are available by default in ublue main images # List of rpmfusion packages can be found here: # https://mirrors.rpmfusion.org/mirrorlist?path=free/fedora/updates/39/x86_64/repoview/index.html&protocol=https&redirect=1 # Remove system-installed Firefox as I prefer to use the Flatpak version dnf5 remove -y firefox firefox-langpacks # Remove additional repositories Fedora comes with out of the box rm \ /etc/yum.repos.d/fedora-cisco-openh264.repo \ /etc/yum.repos.d/google-chrome.repo \ /etc/yum.repos.d/rpmfusion-nonfree-nvidia-driver.repo \ /etc/yum.repos.d/rpmfusion-nonfree-steam.repo \ /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:phracek:PyCharm.repo # Add country query to all repo metalinks # shellcheck disable=SC2016 sed -i -e '/^metalink\=/s/\$releasever\&arch\=\$basearch$/\$releasever\&arch\=\$basearch\&country\=KR,JP,TW/g' /etc/yum.repos.d/*.repo # Add 1Password repo #rpmkeys --import https://downloads.1password.com/linux/keys/1password.asc cp /ctx/rpm-keys/1password.asc /etc/pki/rpm-gpg/1password.asc sh -c 'echo -e "[1password]\nname=1Password Stable Channel\nbaseurl=https://downloads.1password.com/linux/rpm/stable/\$basearch\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=\"file:///etc/pki/rpm-gpg/1password.asc\"" > /etc/yum.repos.d/1password.repo' # Add Tailscale repo #rpmkeys --import https://pkgs.tailscale.com/stable/fedora/repo.gpg #dnf5 config-manager addrepo --from-repofile=https://pkgs.tailscale.com/stable/fedora/tailscale.repo cp /ctx/rpm-keys/tailscale.gpg /etc/pki/rpm-gpg/tailscale.gpg sh -c 'echo -e "[tailscale-stable]\nname=Tailscale stable\nbaseurl=https://pkgs.tailscale.com/stable/fedora/\$basearch\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=\"file:///etc/pki/rpm-gpg/tailscale.gpg\"" > /etc/yum.repos.d/tailscale.repo' # Update all existing packages # dnf5 update -y # Install my own layered packages dnf5 install -y \ gvfs-nfs \ openssl \ gnome-shell-extension-appindicator \ 1password 1password-cli \ tailscale # Delete 1Password and Tailscale repos once packages are installed # so they don't end up in the final image. rm \ /etc/yum.repos.d/1password.repo \ /etc/yum.repos.d/tailscale.repo \ /etc/pki/rpm-gpg/1password.asc \ /etc/pki/rpm-gpg/tailscale.gpg # Or just disable: # dnf5 config-manager setopt 1password.enabled=0 tailscale-stable.enabled=0 # sed -i 's/enabled=1/enabled=0/' \ # /etc/yum.repos.d/1password.repo \ # /etc/yum.repos.d/tailscale.repo # Add Flathub #flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo #flatpak remote-modify --enable --no-filter flathub # Re-install all pre-installed (GNOME) applications from Flathub #flatpak install --reinstall flathub "$(flatpak list --app-runtime=org.fedoraproject.Platform --columns=application | tail -n +1 )" # ...and remove the fedora flatpak remotes #flatpak remote-delete --force fedora #flatpak remote-delete --force fedora-testing # TODO: Add flathub remove, enable, and remove filter # TODO: Install core GNOME Flatpak apps # TODO: Install my own commonly used Flatpak apps # IDEA: Can I set certain dconf settings, like Ptyxis config, temperature settings, etc? # IDEA: Can I set certain Flatpak system defaults (ie. no read/write anywhere by default) # Use a COPR Example: # # dnf5 -y copr enable ublue-os/staging # dnf5 -y install package # Disable COPRs so they don't end up enabled on the final image: # dnf5 -y copr disable ublue-os/staging #### Example for enabling a System Unit File # systemctl enable podman.socket systemctl enable tailscaled