summaryrefslogtreecommitdiff
path: root/modules/IdleMonitors.qml
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-09-17 23:15:47 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-09-17 23:15:47 +1000
commit24922be5e9261f78ef6f0f2b57815880a889ebf7 (patch)
tree8b3c405019d8118c33fec27a8721f081ee6f8e3f /modules/IdleMonitors.qml
parentidleinhibitor: use qs idleinhibitor (diff)
downloadcaelestia-shell-24922be5e9261f78ef6f0f2b57815880a889ebf7.tar.gz
caelestia-shell-24922be5e9261f78ef6f0f2b57815880a889ebf7.tar.bz2
caelestia-shell-24922be5e9261f78ef6f0f2b57815880a889ebf7.zip
feat: add idle monitor
Replaces hypridle
Diffstat (limited to 'modules/IdleMonitors.qml')
-rw-r--r--modules/IdleMonitors.qml37
1 files changed, 37 insertions, 0 deletions
diff --git a/modules/IdleMonitors.qml b/modules/IdleMonitors.qml
new file mode 100644
index 0000000..ed929c4
--- /dev/null
+++ b/modules/IdleMonitors.qml
@@ -0,0 +1,37 @@
+import "lock"
+import qs.config
+import qs.services
+import Quickshell
+import Quickshell.Wayland
+
+Scope {
+ id: root
+
+ required property Lock lock
+
+ IdleMonitor {
+ timeout: Config.general.idle.lockTimeout
+ onIsIdleChanged: {
+ if (isIdle)
+ root.lock.lock.locked = true;
+ }
+ }
+
+ IdleMonitor {
+ timeout: Config.general.idle.dpmsTimeout
+ onIsIdleChanged: {
+ if (isIdle)
+ Hypr.dispatch("dpms off");
+ else
+ Hypr.dispatch("dpms on");
+ }
+ }
+
+ IdleMonitor {
+ timeout: Config.general.idle.sleepTimeout
+ onIsIdleChanged: {
+ if (isIdle)
+ Quickshell.execDetached(["systemctl", "suspend-then-hibernate"]);
+ }
+ }
+}