summaryrefslogtreecommitdiff
path: root/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Services/PolkitService.qml
diff options
context:
space:
mode:
Diffstat (limited to 'raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Services/PolkitService.qml')
-rw-r--r--raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Services/PolkitService.qml40
1 files changed, 40 insertions, 0 deletions
diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Services/PolkitService.qml b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Services/PolkitService.qml
new file mode 100644
index 0000000..5238d04
--- /dev/null
+++ b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Services/PolkitService.qml
@@ -0,0 +1,40 @@
+pragma Singleton
+pragma ComponentBehavior: Bound
+
+import QtQuick
+import Quickshell
+
+Singleton {
+ id: root
+
+ readonly property bool disablePolkitIntegration: Quickshell.env("DMS_DISABLE_POLKIT") === "1"
+
+ property bool polkitAvailable: false
+ property var agent: null
+
+ function createPolkitAgent() {
+ try {
+ const qmlString = `
+ import QtQuick
+ import Quickshell.Services.Polkit
+
+ PolkitAgent {
+ }
+ `
+
+ agent = Qt.createQmlObject(qmlString, root, "PolkitService.Agent")
+ polkitAvailable = true
+ console.info("PolkitService: Initialized successfully")
+ } catch (e) {
+ polkitAvailable = false
+ console.warn("PolkitService: Polkit not available - authentication prompts disabled. This requires a newer version of Quickshell.")
+ }
+ }
+
+ Component.onCompleted: {
+ if (disablePolkitIntegration) {
+ return
+ }
+ createPolkitAgent()
+ }
+}