diff --git a/src/framework/platform/x11window.cpp b/src/framework/platform/x11window.cpp index fbc4e4dd1..814411072 100644 --- a/src/framework/platform/x11window.cpp +++ b/src/framework/platform/x11window.cpp @@ -539,6 +539,11 @@ bool X11Window::internalSetupWindowInput() XSetLocaleModifiers(""); m_xim = XOpenIM(m_display, nullptr, nullptr, nullptr); + if (!m_xim) { + // Fallback to internal XIM if ibus/fcitx daemon is unavailable or incompatible + XSetLocaleModifiers("@im=none"); + m_xim = XOpenIM(m_display, nullptr, nullptr, nullptr); + } if (!m_xim) { g_logger.error("XOpenIM failed"); return false;