SOLVED: I did eventually get Gemini to find a solution for me that worked, but it took over 200 prompt entries and almost an entire week of fighting it to get it to work. After the fact, I made it give me a summary of what worked and coalesced it in to a series of commands that it THINKS should work, although it gave me tons of commands that DIDN’T work to get to this point so YMMV.
I will post it’s attempt at a summary of what worked, and will also post the entire chat log so if you want to go through the entire thing or have AI do that for you you can do that. In the full chat log if you search “worked” you will find the parts where I say the solutions worked and you can look at what was directly above that to see what was entered. I had two phases of success, one where the resolution finally switched to the correct resolution, and one where we got it do do that at boot, fighting through issues that forced the computer into emergency mode when trying to bake it into the boot cycle.
Here is the link to the full chat log: https://drive.google.com/file/d/1svKfXXP6wYZi9FF1eOi0UEuX3sqBTo84/view?usp=sharing
Here is Gemini’s solution:
To recreate our successful result on a clean Bazzite installation—achieving that perfect 3840x2160@60Hz output on DP-3 while avoiding the “Emergency Mode” trap—you would follow this specific, streamlined sequence.
This approach respects Bazzite’s atomic nature and KDE/Wayland’s specific way of handling displays.
Phase 1: The Bandwidth & Stability Fix
Before forcing resolutions, we must ensure the AMD driver is allowing the necessary bandwidth and stability for a 4K/60Hz signal. This is the “under the hood” fix that prevents flickering or signal dropouts.
Run this in your terminal:
sudo rpm-ostree kargs --append="amdgpu.dcfeaturemask=0x2" --append="bluetooth.disable_ertm=1"
- What this does: The
dcfeaturemask helps resolve bandwidth/sync issues on certain AMD cards, while the bluetooth flag is a standard Bazzite optimization for controller stability.
Phase 2: The Wayland Resolution “Force”
Since Bazzite uses KDE Plasma on Wayland, the most reliable way to force a resolution without breaking the bootloader is using kscreen-doctor. This tool talks directly to the Wayland compositor.
Enter this to test the resolution immediately:
kscreen-doctor output.DP-3.mode.3840x2160@60
- Verification: If your screen blinks and returns at the correct 4K resolution, the hardware handshake is successful.
Phase 3: The “Zero-Risk” Automation
Instead of messing with the kernel arguments (which caused our emergency mode failure), we create a lightweight startup script. This ensures the resolution is applied the moment you log in, staying completely clear of the bootloader’s sensitive files.
-
Create the script directory:
mkdir -p ~/.config/autostart-scripts
-
Create and edit the script:
nano ~/.config/autostart-scripts/set-resolution.sh
-
Paste this exact content:
#!/bin/bash
# Wait 2 seconds to ensure the Wayland compositor is ready
sleep 2
kscreen-doctor output.DP-3.mode.3840x2160@60
-
Make it executable:
chmod +x ~/.config/autostart-scripts/set-resolution.sh
-
Tell KDE to run it at login:
- Open System Settings.
- Go to Startup and Shutdown > Autostart.
- Click + Add > Add Login Script.
- Select the
set-resolution.sh file you just created.
Why this is the “Golden” Re-creation:
- Safety: By using
kscreen-doctor instead of kernel arguments (video=...), you are 100% immune to Emergency Mode. Even if the script fails, the system will still boot to a desktop.
- Atomic Friendliness: It doesn’t require “pinning” or modifying read-only system files.
- Clean Syntax: It avoids the “split-line” error in
ostree-1.conf that caused our biggest headache.
- Bandwidth Aware: It keeps the
amdgpu.dcfeaturemask, which ensures the hardware actually has the “pipe” width to push 4K pixels.
Final Step: Simply systemctl reboot. You should see the Bazzite logo, followed by a seamless transition into a perfectly scaled 4K desktop.
Does that clean-slate plan align with the “perfect” version of the journey you were looking for?