forked from Shinonome/dots-hyprland
56 lines
1.3 KiB
QML
56 lines
1.3 KiB
QML
pragma Singleton
|
|
import qs.modules.common
|
|
import QtQuick
|
|
import Quickshell
|
|
import Quickshell.Wayland
|
|
|
|
/**
|
|
* A nice wrapper for date and time strings.
|
|
*/
|
|
Singleton {
|
|
id: root
|
|
|
|
property alias inhibit: idleInhibitor.enabled
|
|
inhibit: false
|
|
|
|
Connections {
|
|
target: Persistent
|
|
function onReadyChanged() {
|
|
if (!Persistent.isNewHyprlandInstance) {
|
|
root.inhibit = Persistent.states.idle.inhibit;
|
|
} else {
|
|
Persistent.states.idle.inhibit = root.inhibit;
|
|
}
|
|
}
|
|
}
|
|
|
|
function toggleInhibit(active = null) {
|
|
if (active !== null) {
|
|
root.inhibit = active;
|
|
} else {
|
|
root.inhibit = !root.inhibit;
|
|
}
|
|
Persistent.states.idle.inhibit = root.inhibit;
|
|
}
|
|
|
|
IdleInhibitor {
|
|
id: idleInhibitor
|
|
window: PanelWindow {
|
|
// Inhibitor requires a "visible" surface
|
|
// Actually not lol
|
|
implicitWidth: 0
|
|
implicitHeight: 0
|
|
color: "transparent"
|
|
// Just in case...
|
|
anchors {
|
|
right: true
|
|
bottom: true
|
|
}
|
|
// Make it not interactable
|
|
mask: Region {
|
|
item: null
|
|
}
|
|
}
|
|
}
|
|
}
|