Prevent intel-gtk-fix.conf generation without Intel iGPU - #4
Conversation
There was a problem hiding this comment.
Pull request overview
Updates dynamic Intel GTK fix detection to avoid creating intel-gtk-fix.conf when the Intel graphics driver isn’t actively used, and includes several installer/runtime packaging tweaks.
Changes:
- Refine Intel GPU module detection logic in
bazzite-dynamic-fixes. - Adjust Steam launcher behavior and remove
extestpreload/install. - Modify installer behavior (KDE pins) and introduce an overlay mount for Flatpak state in the live environment.
Reviewed changes
Copilot reviewed 9 out of 10 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| system_files/desktop/shared/usr/libexec/bazzite-dynamic-fixes | Changes Intel driver detection gating for intel-gtk-fix.conf creation/removal |
| system_files/desktop/shared/usr/bin/bazzite-steam | Removes ally handling and drops Wayland extest preload path |
| installer/build.sh | Replaces Flatpak “copy” protection with an overlayfs-backed mount unit |
| installer/titanoboa_hook_postrootfs.sh | Adds KDE default pin/layout manipulation via sed |
| Containerfile | Removes downloading/installing extest shared library |
| system_files/desktop/shared/usr/share/ublue-os/bazaar/content.yaml | Adds UZDoom Flatpak entry |
| .github/workflows/scorecard.yml | Updates pinned digest for upload-sarif action |
| .github/workflows/generate_release.yml | Updates pinned digest for action-gh-release |
| system_files/desktop/silverblue/usr/share/gnome-shell/extensions/tmp/caffeine | Bumps subproject commit pointer |
| system_files/desktop/silverblue/usr/share/gnome-shell/extensions/appindicatorsupport@rgcjonas.gmail.com | Bumps subproject commit pointer |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # Mount an overlayfs in in order to avoid flatpak files being altered by users on the live session | ||
| mv -T /var/lib/flatpak{,_original} | ||
| mkdir -p /var/lib/flatpak{,.work} | ||
| cat <<EOF >/etc/systemd/system/var-lib-flatpak.mount | ||
| [Mount] | ||
| Type=overlay | ||
| What=overlay | ||
| Options=lowerdir=/var/lib/flatpak_original,upperdir=/var/lib/flatpak,workdir=/var/lib/flatpak.work | ||
|
|
||
| [Install] | ||
| WantedBy=multi-user.target | ||
| EOF | ||
| systemctl enable var-lib-flatpak.mount |
There was a problem hiding this comment.
The generated systemd .mount unit is missing Where=/var/lib/flatpak, which is required for mount units. Also, upperdir=/var/lib/flatpak is the same path as the mountpoint (/var/lib/flatpak), which is not a valid overlayfs configuration and is likely to fail to mount. Use distinct backing directories (e.g., /var/lib/flatpak_upper and /var/lib/flatpak_work) and set Where=/var/lib/flatpak in the unit.
|
|
||
| # Make a copy of the original flatpak files in order to avoid being altered by users on the live session | ||
| cp -aT /var/lib/flatpak{,_original} | ||
| # Mount an overlayfs in in order to avoid flatpak files being altered by users on the live session |
There was a problem hiding this comment.
Correct the duplicated word 'in' in the comment.
| # Mount an overlayfs in in order to avoid flatpak files being altered by users on the live session | |
| # Mount an overlayfs in order to avoid flatpak files being altered by users on the live session |
| if lsmod | awk '$3 > 0' | grep -P "^(xe|i915) " > /dev/null && [ ! -f "$HOME/.config/environment.d/intel-gtk-fix.conf" ]; then | ||
| # User is using an Intel GPU | ||
| write_intel_gtk_fix | ||
| elif ! lsmod | grep -P "^(xe|i915) " > /dev/null && [ -f "$HOME/.config/environment.d/intel-gtk-fix.conf" ]; then | ||
| elif ! lsmod | awk '$3 > 0' | grep -P "^(xe|i915) " > /dev/null && [ -f "$HOME/.config/environment.d/intel-gtk-fix.conf" ]; then |
There was a problem hiding this comment.
Filtering lsmod by $3 > 0 uses the module refcount/dependency count as a proxy for “GPU present/active”, but Used by may be 0 even when a driver is bound to hardware (no dependent modules). This can prevent intel-gtk-fix.conf from being created on Intel systems. A more reliable approach is to detect Intel DRM devices via /sys/class/drm/card*/device/vendor (0x8086) and/or the bound driver name, rather than relying on lsmod refcounts.
| sed -i '/const allPanels/,$d' /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js | ||
| sed -i '$r /usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/bazzite-pins.js' /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js |
There was a problem hiding this comment.
These sed -i operations can fail (missing file, upstream layout changes, missing const allPanels marker). In an installer context this can abort the install if the script runs with set -e (or equivalent). Consider guarding with file/marker checks and/or appending || : (similar to the GNOME sed usage later in this script) so the installer remains resilient across Plasma version/layout changes.
| sed -i '/const allPanels/,$d' /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js | |
| sed -i '$r /usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/bazzite-pins.js' /usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js | |
| layout_js="/usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js" | |
| pins_js="/usr/share/plasma/shells/org.kde.plasma.desktop/contents/updates/bazzite-pins.js" | |
| if [[ -f "$layout_js" && -f "$pins_js" ]] && grep -q 'const allPanels' "$layout_js"; then | |
| sed -i '/const allPanels/,$d' "$layout_js" || : | |
| sed -i '$r '"$pins_js" "$layout_js" || : | |
| fi |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 11 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| mkdir -p /var/lib/flatpak{,.work} | ||
| cat <<EOF >/etc/systemd/system/var-lib-flatpak.mount | ||
| [Mount] | ||
| Type=overlay | ||
| What=overlay | ||
| Options=lowerdir=/var/lib/flatpak_original,upperdir=/var/lib/flatpak,workdir=/var/lib/flatpak.work |
There was a problem hiding this comment.
This overlay mount configuration is invalid/fragile because upperdir points to the same path as the mountpoint (/var/lib/flatpak). Overlayfs requires upperdir (and workdir) to be separate directories that are not the mountpoint itself; otherwise the mount can fail (EINVAL) or behave unexpectedly. Use distinct directories (e.g., /var/lib/flatpak.upper and /var/lib/flatpak.work) and mount them onto /var/lib/flatpak.
| mkdir -p /var/lib/flatpak{,.work} | |
| cat <<EOF >/etc/systemd/system/var-lib-flatpak.mount | |
| [Mount] | |
| Type=overlay | |
| What=overlay | |
| Options=lowerdir=/var/lib/flatpak_original,upperdir=/var/lib/flatpak,workdir=/var/lib/flatpak.work | |
| mkdir -p /var/lib/flatpak{,.upper,.work} | |
| cat <<EOF >/etc/systemd/system/var-lib-flatpak.mount | |
| [Mount] | |
| Type=overlay | |
| What=overlay | |
| Options=lowerdir=/var/lib/flatpak_original,upperdir=/var/lib/flatpak.upper,workdir=/var/lib/flatpak.work |
| [Mount] | ||
| Type=overlay | ||
| What=overlay | ||
| Options=lowerdir=/var/lib/flatpak_original,upperdir=/var/lib/flatpak,workdir=/var/lib/flatpak.work |
There was a problem hiding this comment.
The generated .mount unit is missing Where=/var/lib/flatpak. Even though the unit name implies the mountpoint, systemd mount units typically require an explicit Where= to be set in the [Mount] section; omitting it can cause the unit to be rejected or not behave as intended across systemd versions.
| Options=lowerdir=/var/lib/flatpak_original,upperdir=/var/lib/flatpak,workdir=/var/lib/flatpak.work | |
| Options=lowerdir=/var/lib/flatpak_original,upperdir=/var/lib/flatpak,workdir=/var/lib/flatpak.work | |
| Where=/var/lib/flatpak |
| } | ||
|
|
||
| if lsmod | grep -P "^(xe|i915) " > /dev/null && [ ! -f "$HOME/.config/environment.d/intel-gtk-fix.conf" ]; then | ||
| if lsmod | awk '$3 > 0' | grep -P "^(xe|i915) " > /dev/null && [ ! -f "$HOME/.config/environment.d/intel-gtk-fix.conf" ]; then |
There was a problem hiding this comment.
The PR title focuses on preventing intel-gtk-fix.conf generation without an Intel iGPU, but this PR also includes unrelated changes (Steam launcher behavior, removal of extest from the image, Flatpak overlay mount in installer, KDE pin edits, workflow pin updates, app list changes, and Gamescope version bump). Consider splitting into separate PRs or updating the title/description to reflect the broader scope.
Jellyfin Media Player renamed to Jellyfin Desktop with a new package name for its v2.0 update, breaking the curated link in Bazaar. This commit updates the link to the new package.
This reverts commit 1f904fa.
Utility is weird, there are Categories made exactly for that
* chore: unpin flatpak runtimes included in legacy installer * add more fdo runtimes * and kde too trying to cover every edge cases
…hell/extensions/blur-my-shell@aunetx digest to 4913b06 (#4897) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Fixes pen tablets not working. Should close issue #4839 https://lists.x.org/archives/xorg-announce/2026-April/003697.html
* fix(plasmalogin): Migrate sddm workaround to plasmalogin Fixes #4763 Signed-off-by: Zeglius <33781398+Zeglius@users.noreply.github.com> * fix(plasmalogin): use upstream fix Signed-off-by: Zeglius <33781398+Zeglius@users.noreply.github.com> Co-authored-by: renner <80410025+renner0e@users.noreply.github.com> --------- Signed-off-by: Zeglius <33781398+Zeglius@users.noreply.github.com> Co-authored-by: renner <80410025+renner0e@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
…hell/extensions/restartto@tiagoporsch.github.io digest to f0f7c92 (#5288) Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
This reverts commit 57f1212.
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Update Surface fixes to check for Vendor ID starting with 'Microsoft'.
…hell/extensions/blur-my-shell@aunetx digest to ac4dec5 (#5277) Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
…hell/extensions/blur-my-shell@aunetx digest to 5d0c159 (#5292) Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
…hell/extensions/appindicatorsupport@rgcjonas.gmail.com digest to bd6775a (#5302) Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
…hell/extensions/blur-my-shell@aunetx digest to 7f8b1ef (#5301) Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
…hell/extensions/blur-my-shell@aunetx digest to 36ea915 (#5311) Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
…hell/extensions/blur-my-shell@aunetx digest to 4634a34 (#5326) Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
…hell/extensions/blur-my-shell@aunetx digest to c0bcb98 (#5332) Co-authored-by: ubot-7274[bot] <217212047+ubot-7274[bot]@users.noreply.github.com>
No description provided.