From b83c39c8afd58c86af1c49a7c0e081b30c86d823 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Mon, 30 Mar 2026 21:41:10 -0700 Subject: [PATCH 1/2] services/pipewire: add -fno-strict-overflow to fix PCH with pipewire Unclear how this should be handled long term. --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1226342..4ed8374 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,8 +87,9 @@ include(cmake/util.cmake) add_compile_options(-Wall -Wextra -Wno-vla-cxx-extension) -# pipewire defines this, breaking PCH +# pipewire defines these, breaking PCH add_compile_definitions(_REENTRANT) +add_compile_options(-fno-strict-overflow) if (FRAME_POINTERS) add_compile_options(-fno-omit-frame-pointer) From d6122277409783377059be6399004eb090a6008e Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Tue, 24 Mar 2026 19:21:20 +1100 Subject: [PATCH 2/2] core/qmlglobal: add shellId, instanceId, appId and launchTime props --- src/core/qmlglobal.cpp | 17 +++++++++++++++++ src/core/qmlglobal.hpp | 20 ++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/src/core/qmlglobal.cpp b/src/core/qmlglobal.cpp index 35504f6..6cac3aa 100644 --- a/src/core/qmlglobal.cpp +++ b/src/core/qmlglobal.cpp @@ -26,6 +26,7 @@ #include "../io/processcore.hpp" #include "generation.hpp" #include "iconimageprovider.hpp" +#include "instanceinfo.hpp" #include "paths.hpp" #include "qmlscreen.hpp" #include "rootwrapper.hpp" @@ -153,6 +154,22 @@ qint32 QuickshellGlobal::processId() const { // NOLINT return getpid(); } +QString QuickshellGlobal::instanceId() const { // NOLINT + return InstanceInfo::CURRENT.instanceId; +} + +QString QuickshellGlobal::shellId() const { // NOLINT + return InstanceInfo::CURRENT.shellId; +} + +QString QuickshellGlobal::appId() const { // NOLINT + return InstanceInfo::CURRENT.appId; +} + +QDateTime QuickshellGlobal::launchTime() const { // NOLINT + return InstanceInfo::CURRENT.launchTime; +} + qsizetype QuickshellGlobal::screensCount(QQmlListProperty* /*unused*/) { return QuickshellTracked::instance()->screens.size(); } diff --git a/src/core/qmlglobal.hpp b/src/core/qmlglobal.hpp index 94b42f6..72055df 100644 --- a/src/core/qmlglobal.hpp +++ b/src/core/qmlglobal.hpp @@ -17,6 +17,7 @@ #include "../io/processcore.hpp" #include "doc.hpp" +#include "instanceinfo.hpp" #include "qmlscreen.hpp" ///! Accessor for some options under the Quickshell type. @@ -83,6 +84,21 @@ class QuickshellGlobal: public QObject { // clang-format off /// Quickshell's process id. Q_PROPERTY(qint32 processId READ processId CONSTANT); + /// A unique identifier for this Quickshell instance + Q_PROPERTY(QString instanceId READ instanceId CONSTANT) + /// The shell ID, used to differentiate between different shell configurations. + /// + /// Defaults to a stable value derived from the config path. + /// Can be overridden with `//@ pragma ShellId ` in the root qml file. + Q_PROPERTY(QString shellId READ shellId CONSTANT) + /// The desktop application ID. + /// + /// Defaults to `org.quickshell`. + /// Can be overridden with `//@ pragma AppId ` in the root qml file + /// or the `QS_APP_ID` environment variable. + Q_PROPERTY(QString appId READ appId CONSTANT) + /// The time at which this Quickshell instance was launched. + Q_PROPERTY(QDateTime launchTime READ launchTime CONSTANT) /// All currently connected screens. /// /// This property updates as connected screens change. @@ -149,6 +165,10 @@ class QuickshellGlobal: public QObject { public: [[nodiscard]] qint32 processId() const; + [[nodiscard]] QString instanceId() const; + [[nodiscard]] QString shellId() const; + [[nodiscard]] QString appId() const; + [[nodiscard]] QDateTime launchTime() const; QQmlListProperty screens();