From f9c1f5b7df49e2ce3c68780ee389db74d30c1b20 Mon Sep 17 00:00:00 2001 From: Collecting Date: Sun, 4 Jan 2026 19:27:29 +0000 Subject: [PATCH] fix(adjust): STEAM_DECK Variable Signed-off-by: Collecting --- src/citron/main.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/citron/main.cpp b/src/citron/main.cpp index f1e7b39d6..7ce45a2a8 100644 --- a/src/citron/main.cpp +++ b/src/citron/main.cpp @@ -6215,13 +6215,23 @@ int main(int argc, char* argv[]) { QCoreApplication::setAttribute(Qt::AA_DontCheckOpenGLContextThreadAffinity); - const bool is_gamescope = qgetenv("XDG_CURRENT_DESKTOP") == "gamescope"; + // Gamescope/Steam Deck detection + const bool is_gamescope = qgetenv("XDG_CURRENT_DESKTOP") == "gamescope" || + !qgetenv("GAMESCOPE_WIDTH").isEmpty() || + !qgetenv("STEAM_DECK").isEmpty(); + if (is_gamescope) { + // Force the environment to ignore the Deck's high-density screen + qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "0"); qputenv("QT_ENABLE_HIGHDPI_SCALING", "0"); qputenv("QT_SCALE_FACTOR", "1"); - qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "0"); qputenv("QT_FONT_DPI", "96"); + // Force Qt to use a 1:1 pixel ratio + // These MUST be set before the QApplication app(...) line + QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling); + QCoreApplication::setAttribute(Qt::AA_Use96Dpi); + QCoreApplication::setAttribute(Qt::AA_DontUseNativeMenuBar); QCoreApplication::setAttribute(Qt::AA_DontUseNativeDialogs); qputenv("QT_WAYLAND_SHELL_INTEGRATION", "xdg-shell");