diff --git a/src/main.cpp b/src/main.cpp index 84646c99ac..42ff3958b4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -383,8 +383,15 @@ void Application::setXwaylandScale(qreal scale) { if (scale != m_xwaylandScale) { m_xwaylandScale = scale; - // rerun the fonts kcm init that does the appropriate xrdb call with the new settings - QProcess::startDetached("kcminit", {"kcm_fonts", "kcm_style"}); + // change the font dpi to match + const int dpi = std::round(scale * 96); + const QByteArray input = "Xft.dpi: " + QByteArray::number(dpi); + QProcess p; + p.start(QStringLiteral("xrdb"), {QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp")}); + p.setProcessChannelMode(QProcess::ForwardedChannels); + p.write(input); + p.closeWriteChannel(); + p.waitForFinished(-1); Q_EMIT xwaylandScaleChanged(); } }