You've already forked fedora-bootc
Some checks failed
Build container image / Build and push image (pull_request) Has been cancelled
98 lines
3.8 KiB
Bash
Executable File
98 lines
3.8 KiB
Bash
Executable File
#!/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
|
|
|
|
# Install Niri, the scrollable-tiling window compositor
|
|
# https://yalter.github.io/niri/
|
|
dnf5 -y copr enable avengemedia/dms
|
|
dnf5 -y install niri dms
|
|
systemctl --user add-wants niri.service dms
|
|
dnf5 -y copr disable avengemedia/dms
|
|
|
|
## CLEANUP
|
|
|
|
# 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
|
|
|
|
# Enable Tailscale service
|
|
systemctl enable tailscaled
|