diff -urNr keepassxc-2.7.4-orig/src/main.cpp keepassxc-2.7.4/src/main.cpp --- keepassxc-2.7.4-orig/src/main.cpp 2022-10-29 21:07:50.000000000 +0200 +++ keepassxc-2.7.4/src/main.cpp 2022-11-01 13:04:08.394545249 +0100 @@ -48,8 +48,24 @@ #include #endif +#ifdef Q_OS_LINUX +void wayland_hacks() +{ + QByteArray currentDesktop = qgetenv("XDG_CURRENT_DESKTOP").toLower(); + QByteArray sessionDesktop = qgetenv("XDG_SESSION_DESKTOP").toLower(); + QByteArray sessionType = qgetenv("XDG_SESSION_TYPE").toLower(); + if ((sessionType.contains("wayland") && qEnvironmentVariableIsEmpty("QT_QPA_PLATFORM")) && (currentDesktop.contains("gnome") || sessionDesktop.contains("gnome"))) + { + qputenv("QT_QPA_PLATFORM", "xcb"); + } +} +#endif + int main(int argc, char** argv) { +#ifdef Q_OS_LINUX + wayland_hacks(); +#endif QT_REQUIRE_VERSION(argc, argv, QT_VERSION_STR) #if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)