diff --git a/debian/changelog b/debian/changelog index 771be7a9..b2f8e522 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +deepin-fcitx5configtool-plugin (6.0.23) unstable; urgency=medium + + * Non-maintainer upload. + + -- wangyu Sun, 04 Jan 2026 17:10:33 +0800 + deepin-fcitx5configtool-plugin (6.0.22) unstable; urgency=medium * chore: Update compiler flags for security enhancements diff --git a/src/fcitx5helper/processmonitor.cpp b/src/fcitx5helper/processmonitor.cpp index 11ee06e7..ff48ca36 100644 --- a/src/fcitx5helper/processmonitor.cpp +++ b/src/fcitx5helper/processmonitor.cpp @@ -86,7 +86,24 @@ ProcessMonitor::ProcessMonitor(QObject *parent) : QObject(parent) { // qCDebug(procMon) << "Entering ProcessMonitor constructor"; connect(&m_timer, &QTimer::timeout, this, &ProcessMonitor::checkFcitx5Process); - // qCDebug(procMon) << "Exiting ProcessMonitor constructor"; + + QString output, error; + exeCommand("pgrep", QStringList() << "-u" << getCurrentUserName() << "-x" << "fcitx5", output, error); + if (!output.isEmpty()) { + QStringList pids = output.trimmed().split('\n', Qt::SkipEmptyParts); + for (const QString &pid : pids) { + qCDebug(procMon) << "Killing existing fcitx5 process with PID:" << pid; + QString killOutput, killError; + exeCommand("kill", QStringList() << pid.trimmed(), killOutput, killError); + } + } + QProcess process; + bool started = process.startDetached(PROCESS_NAME, QStringList() << "-d"); + if (started) { + qCDebug(procMon) << "Successfully started fcitx5 process in constructor"; + } else { + qCWarning(procMon) << "Failed to start fcitx5 process in constructor"; + } } void ProcessMonitor::startMonitoring() {