configs

configs
git clone https://git.prime8.dev/configs.git
Log | Files | Refs | README

commit 1a7e747e76fe0535d1b94c4ddf2348e03c9b44e6
parent 3da6e663f53c4aa584026392581bd0ae7073c42b
Author: Damian Myrda <damian@prime8.dev>
Date:   Wed, 27 May 2026 14:31:42 -0500

fedora: track rpm-ostree overrides

Diffstat:
Mfedora/copr.txt | 12+++++++-----
Mfedora/obs.txt | 3++-
Afedora/overrides.txt | 107+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mfedora/packages.txt | 90+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
Mfedora/repos.txt | 2++
Mfedora/rpmfusion.txt | 2++
Msetup.sh | 44++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 220 insertions(+), 40 deletions(-)

diff --git a/fedora/copr.txt b/fedora/copr.txt @@ -1,8 +1,10 @@ -relativesure/all-packages -lukenukem/asus-linux -vgaetera/extras -terjeros/eza +# COPR repositories to enable, one owner/project per line. +# setup.sh writes these under /etc/yum.repos.d/ using $releasever. + bieszczaders/kernel-cachyos -agonie/pfetch-rs +lukenukem/asus-linux quadratech188/cmark-gfm quadratech188/vicinae +relativesure/all-packages +terjeros/eza +vgaetera/extras diff --git a/fedora/obs.txt b/fedora/obs.txt @@ -1 +1,2 @@ -home:manuelschneid3r +# OBS repositories to enable, one project path per line. +# Example: home:someuser diff --git a/fedora/overrides.txt b/fedora/overrides.txt @@ -0,0 +1,107 @@ +# Base packages to remove from Fedora Silverblue with rpm-ostree override remove. + +# Kernel packages replaced by kernel-cachyos +kernel +kernel-core +kernel-modules +kernel-modules-core +kernel-modules-extra + +# Base apps replaced or not used +firefox +firefox-langpacks +gnome-tour +malcontent-control +yelp + +# VM guest agents; this host runs VMs but is not itself a guest +hyperv-daemons +hyperv-daemons-license +hypervfcopyd +hypervkvpd +hypervvssd +open-vm-tools +open-vm-tools-desktop +qemu-guest-agent +spice-vdagent +virtualbox-guest-additions + +# Printer/scanner stack +bluez-cups +c2esp +cups +cups-browsed +cups-filters +cups-filters-driverless +cups-ipptool +dymo-cups-drivers +gutenprint +gutenprint-cups +hplip +hplip-common +hplip-libs +ipp-usb +libppd +libsane-hpaio +printer-driver-brlaser +ptouch-driver +sane-airscan +sane-backends +sane-backends-drivers-cameras +sane-backends-drivers-scanners +splix +system-config-printer-udev + +# Accessibility features not used on this install +braille-printer-app +brltty +orca +python3-speechd +speech-dispatcher +speech-dispatcher-espeak-ng +speech-dispatcher-utils + +# Input methods not used on this install +ibus-anthy +ibus-anthy-python +ibus-chewing +ibus-hangul +ibus-libpinyin +ibus-m17n +ibus-typing-booster + +# GNOME Classic session/extensions not used +gnome-classic-session +gnome-shell-extension-apps-menu +gnome-shell-extension-background-logo +gnome-shell-extension-launch-new-instance +gnome-shell-extension-places-menu +gnome-shell-extension-window-list + +# WebDAV/media/file-sharing servers not hosted from this machine +fedora-logos-httpd +gnome-user-share +httpd +httpd-core +httpd-tools +mod_dnssd +mod_http2 +mod_lua +rygel + +# VPN clients/plugins not used; Tailscale is kept as the VPN +NetworkManager-openconnect +NetworkManager-openconnect-gnome +NetworkManager-openvpn +NetworkManager-openvpn-gnome +NetworkManager-vpnc +NetworkManager-vpnc-gnome +openconnect +openvpn +vpnc + +# Network filesystems/sharing clients not used +cifs-utils +cifs-utils-info +nfs-utils +samba-client diff --git a/fedora/packages.txt b/fedora/packages.txt @@ -1,56 +1,78 @@ +# RPM packages to layer on Fedora Silverblue with rpm-ostree. + +# Password manager 1password 1password-cli + +# Kernel, drivers, and hardware control akmod-nvidia asusctl +kernel-cachyos-core +kernel-cachyos-devel-matched +kernel-cachyos-modules +kernel-cachyos +supergfxctl +xorg-x11-drv-nvidia +xorg-x11-drv-nvidia-cuda + +# CLI tools and shell bat btop -cairo-devel -cairo-gobject-devel -dbus-daemon -dbus-devel eza +fd-find fish fnm gh -glib2-devel -gnome-tweaks -gobject-introspection-devel -golang -# howdy (installed from local RPM) -blas # howdy dependency -lapack # howdy dependency -java-latest-openjdk just -kernel-cachyos-core -kernel-cachyos-devel-matched -kernel-cachyos-modules +ripgrep +tailscale +trash-cli +tokei +zoxide + +# Desktop utilities +gnome-tweaks libinput-config -libxkbcommon-devel neovim +vicinae + +# Development runtimes and toolchains +cargo +clippy +cmake +golang +java-latest-openjdk nodejs -os-prober -pfetch-rs -powertop pre-commit -python-evdev python3-devel python3-pip -python3-psutil -ripgrep -rocm-smi -cargo -clippy -cmake rust rust-analyzer rustfmt -supergfxctl -tailscale -trash-cli -tokei tree-sitter-cli -vicinae -xorg-x11-drv-nvidia -xorg-x11-drv-nvidia-cuda yarnpkg -zoxide + +# Development headers and host libraries +alsa-lib-devel +cairo-devel +cairo-gobject-devel +clang-devel +dbus-daemon +dbus-devel +glib2-devel +gobject-introspection-devel +libxkbcommon-devel +wayland-devel + +# Build helpers for host-installed desktop tooling +sassc + +# Local RPM: howdy +# howdy is installed from rpms/, but these dependencies are layered. +blas +lapack +python-evdev + +# Boot, power, and GPU utilities +os-prober +powertop diff --git a/fedora/repos.txt b/fedora/repos.txt @@ -1,2 +1,4 @@ +# Vendor repositories handled explicitly by setup.sh. + 1password google-chrome diff --git a/fedora/rpmfusion.txt b/fedora/rpmfusion.txt @@ -1,2 +1,4 @@ +# RPM Fusion release repositories to install with rpm-ostree. + rpmfusion-free rpmfusion-nonfree diff --git a/setup.sh b/setup.sh @@ -147,6 +147,50 @@ else echo "All packages already installed" fi +# Remove base packages with rpm-ostree overrides +echo "Applying base package removal overrides..." +mapfile -t overrides < <(sed 's/#.*//;s/[[:space:]]*$//;/^$/d' "$FEDORA_DIR/overrides.txt") + +if [ ${#overrides[@]} -gt 0 ]; then + mapfile -t current_overrides < <( + rpm-ostree status --json | python3 -c ' +import json, sys +data = json.load(sys.stdin) +seen = set() +for deployment in data.get("deployments", []): + for pkg in deployment.get("requested-base-removals", []): + if pkg not in seen: + seen.add(pkg) + print(pkg) +' + ) + + overrides_to_apply=() + for pkg in "${overrides[@]}"; do + already_removed=false + for removed in "${current_overrides[@]}"; do + if [ "$pkg" = "$removed" ]; then + already_removed=true + break + fi + done + + if [ "$already_removed" = true ]; then + echo "Override already applied: $pkg" + else + overrides_to_apply+=("$pkg") + fi + done + + if [ ${#overrides_to_apply[@]} -gt 0 ]; then + sudo rpm-ostree override remove "${overrides_to_apply[@]}" + else + echo "All base package removal overrides already applied" + fi +else + echo "No base package removal overrides configured" +fi + # Manual installs ## bun