Gnome UI Scaling & Pi-CarPlay Full Screen Issues
Hey there! So, you're running into a bit of a snag with UI scaling in Gnome when using pi-CarPlay in full screen on Fedora 42 with Gnome 48 and a touchscreen. It sounds like a classic case of scaling incompatibility, where your set scaling (like 150%) is causing headaches when you try to switch apps from within pi-CarPlay. When you pull down from the top left corner to open another app, the CarPlay image gets blown up to that 150%, pushing crucial content right off the screen. This forces you to close and reopen pi-CarPlay to get things back to normal. You're looking for a way to make pi-CarPlay ignore these Gnome scaling settings, while still appreciating that the settings page itself scales nicely. Let's dive into this and see what we can figure out.
Understanding Gnome UI Scaling and Touchscreen Interactions
Gnome UI scaling is a fantastic feature designed to make interfaces more readable and usable, especially on high-resolution displays or for users who prefer larger elements. When you set scaling above 100% in Gnome's display settings, the entire desktop environment, including applications, attempts to render elements at a larger size. This usually works seamlessly, ensuring that text, icons, and interactive elements are comfortably sized. However, the challenge arises with applications that have their own rendering or fullscreen modes, like pi-CarPlay. These apps might not always play nice with the system-wide scaling, leading to the kind of issues you're experiencing. The fullscreen mode of pi-CarPlay, in particular, seems to be taking over the display rendering in a way that clashes with Gnome's dynamic scaling adjustments when you invoke app switching. It's like pi-CarPlay is saying, "I'll handle the display!" and then it gets a bit too enthusiastic with the zoom.
The Challenge with Fullscreen Applications and Scaling
When an application goes into fullscreen mode, it often takes direct control over how its content is presented on the screen. This is especially true for media-focused or immersive applications like pi-CarPlay, which aims to replicate the CarPlay experience. Normally, this is great for a focused, distraction-free interface. However, when you combine this with Gnome's UI scaling that's applied at the system level, you can get conflicts. Gnome expects applications to respect its scaling factor when they are displayed, whether in a window or fullscreen. But if pi-CarPlay's fullscreen implementation renders its content before or independently of Gnome's scaling, it can lead to a situation where the app's internal resolution or rendering target is scaled, and then Gnome tries to scale it again, or the app incorrectly interprets the available screen real estate. The specific issue you're seeing—where pulling down the app switcher causes the CarPlay image to scale up excessively—suggests that pi-CarPlay might be re-evaluating its display dimensions or drawing area when the system hints at a change (like when the app switcher overlay appears), and it's doing so based on an assumption that doesn't account for the active Gnome scaling. This results in the content being stretched beyond the usable screen area. It's a complex interaction between how Gnome manages display output and how pi-CarPlay renders its own user interface in a demanding mode.
Investigating pi-CarPlay and Gnome Scaling Interaction
Let's break down why this might be happening with pi-CarPlay and Gnome UI scaling. pi-CarPlay is essentially a web-based or application-based interface that mirrors the CarPlay experience. When it runs in fullscreen, it's trying to occupy your entire display. The issue seems to stem from how pi-CarPlay handles its rendering context, especially when it needs to adapt to changes like app switching. Normally, applications should receive information about the display's DPI and scaling factor from the operating system and adjust their rendering accordingly. However, sometimes applications, particularly those that might be older, cross-platform, or rely on specific rendering libraries, don't perfectly integrate with modern desktop environment features like dynamic scaling. In your case, when you trigger the app switcher in Gnome, the system might be sending signals or changing the available display space in a way that pi-CarPlay misinterprets. Instead of simply adjusting its window or overlay within the scaled environment, it seems to be reapplying its own scaling logic, possibly defaulting to a 1:1 pixel mapping of its internal scaled content to the currently available screen space, which is already scaled by Gnome. This double-scaling effect, or incorrect scaling application, is what pushes content off-screen. It's frustrating because you want the scaling on the settings page—that indicates the app can respect Gnome's scaling to some degree—but the fullscreen, dynamic aspect is where it falters.
Potential Workarounds and Solutions
While there might not be a direct "ignore Gnome scaling" switch within pi-CarPlay itself, we can explore a few avenues. One common approach is to try and force applications to behave differently regarding scaling. This can sometimes be done through environment variables or specific application launch commands. For example, some toolkits (like GTK or Qt) have environment variables that can influence scaling behavior. You might need to research if pi-CarPlay uses a specific toolkit and if there are known variables for it. Another strategy involves looking at Gnome's own settings or extensions. While you want pi-CarPlay to ignore scaling, perhaps there's a way to selectively apply scaling or a specific scaling mode for certain applications or windows. This is less common for fullscreen apps but worth investigating in advanced Gnome settings or community extensions. A more direct, albeit less elegant, solution could be to run pi-CarPlay in a windowed mode instead of fullscreen. While this defeats the purpose of a fully immersive experience, it might allow Gnome's window manager to handle the scaling more predictably, and you could manually resize the window to a comfortable size. You might also want to check the pi-CarPlay project's documentation or forums. It's possible other users have encountered this exact issue, and there might be a known fix, a configuration file tweak, or a specific version that behaves better. Sometimes, a simple update to pi-CarPlay or even Gnome itself can resolve such compatibility issues as developers work to improve integration.
Exploring Gnome Tweaks and Application-Specific Settings
When dealing with Gnome UI scaling and applications like pi-CarPlay, sometimes the solution lies in digging a bit deeper into system settings or how the application itself is configured. Gnome offers a utility called