feat: add idle inhibitor for ipc

This commit is contained in:
JPratama7 2025-07-27 18:11:48 +07:00
parent ef1274d42b
commit c74a248e1d
No known key found for this signature in database
GPG key ID: CD3EB7D0490C5F4B
3 changed files with 58 additions and 0 deletions

View file

@ -1,11 +1,18 @@
import Quickshell.Io
import "./IdleInhibitor.qml"
IpcHandler {
property var appLauncherPanel
property var lockScreen
property IdleInhibitor idleInhibitor
target: "globalIPC"
function toggleIdleInhibitor(): void {
idleInhibitor.toggle()
}
// Toggle Applauncher visibility
function toggleLauncher(): void {
if (!appLauncherPanel) {

43
Helpers/IdleInhibitor.qml Normal file
View file

@ -0,0 +1,43 @@
import Quickshell.Io
Process {
id: idleRoot
// Example: systemd-inhibit to prevent idle/sleep
command: ["systemd-inhibit", "--what=idle:sleep", "--who=noctalia", "--why=User requested", "sleep", "infinity"]
// Keep process running in background
property bool isRunning: running
onStarted: {
console.log("[IdleInhibitor] Process started - idle inhibited")
}
onExited: function(exitCode, exitStatus) {
console.log("[IdleInhibitor] Process finished:", exitCode)
}
// Control functions
function start() {
if (!running) {
console.log("[IdleInhibitor] Starting idle inhibitor...")
running = true
}
}
function stop() {
if (running) {
// Force stop the process by setting running to false
running = false
console.log("[IdleInhibitor] Stopping idle inhibitor...")
}
}
function toggle() {
if (running) {
stop()
} else {
start()
}
}
}