From 126f69936cad13e96cddb3480a1ed061ab5e3a1c Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Thu, 17 Jul 2025 14:22:31 -0700 Subject: [PATCH] Shared mem file monitoring --- kwin/src/breezydesktopeffect.cpp | 10 ++++++---- kwin/src/breezydesktopeffect.h | 3 ++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/kwin/src/breezydesktopeffect.cpp b/kwin/src/breezydesktopeffect.cpp index 5568547..f56afa1 100644 --- a/kwin/src/breezydesktopeffect.cpp +++ b/kwin/src/breezydesktopeffect.cpp @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -53,10 +54,11 @@ BreezyDesktopEffect::BreezyDesktopEffect() setSource(QUrl::fromLocalFile(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("kwin/effects/breezy_desktop/qml/main.qml")))); - m_xrRotationTimer = new QTimer(this); - m_xrRotationTimer->setInterval(16); // ~60Hz - connect(m_xrRotationTimer, &QTimer::timeout, this, &BreezyDesktopEffect::updateXrRotation); - m_xrRotationTimer->start(); + // Monitor the IMU file for changes + const QString shmPath = QStringLiteral("/dev/shm/breezy_desktop_imu"); + m_xrRotationFileWatcher = new QFileSystemWatcher(this); + m_xrRotationFileWatcher->addPath(shmPath); + connect(m_xrRotationFileWatcher, &QFileSystemWatcher::fileChanged, this, &BreezyDesktopEffect::updateXrRotation); m_cursorUpdateTimer = new QTimer(this); connect(m_cursorUpdateTimer, &QTimer::timeout, this, &BreezyDesktopEffect::updateCursorPos); diff --git a/kwin/src/breezydesktopeffect.h b/kwin/src/breezydesktopeffect.h index 3f56426..e357876 100644 --- a/kwin/src/breezydesktopeffect.h +++ b/kwin/src/breezydesktopeffect.h @@ -3,6 +3,7 @@ #include #include +#include #include #include #include @@ -86,7 +87,7 @@ namespace KWin bool m_isMouseHidden = false; QQuaternion m_xrRotation; - QTimer *m_xrRotationTimer = nullptr; + QFileSystemWatcher *m_xrRotationFileWatcher = nullptr; QPointF m_cursorPos; QTimer *m_cursorUpdateTimer = nullptr; };