Files
quickshell/modules/bar/widgets/IdleButton.qml
T

71 lines
2.3 KiB
QML

import QtQuick
import Quickshell
import Quickshell.Hyprland
import Quickshell.Io
import "../../../colors"
import "../../../config"
import "../states/Idle" as Global
MouseArea {
id: idleButton
width: Math.max(idleText.width + parent.spacing*2, bar.height)
height: bar.height
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
Component.onCompleted: {
idleStatusScript.running = true
}
Rectangle {
anchors.fill: parent
color: idleButton.containsMouse ? Colors.tertiary : Qt.alpha(Colors.tertiaryContainer, 0.25)
radius: Config.radius
border.width: Config.border_width
border.color: idleButton.containsMouse ? Colors.tertiaryContainer_fg
: Colors.secondaryContainer_fg
Item {
anchors.fill: parent
Process {
id: idleScript
command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/bar/scripts/Idle.sh"]
stdout: StdioCollector {
onStreamFinished: Global.IdleState.idle ? console.log(`Disabling Idle`) : console.log(`Enabling Idle`)
}
}
MouseArea {
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
anchors.fill: parent
onClicked: {
console.log("Running Idle Script")
idleScript.startDetached()
Global.IdleState.idle = !Global.IdleState.idle
console.log("Current Idle State: " + Global.IdleState.idle)
}
}
}
Text {
id: idleText
anchors.centerIn: parent
text: Global.IdleState.idle ? "" : ""
font.pixelSize: Config.big_font_size(bar.height)
font.family: Config.font
color: idleButton.containsMouse ? Colors.tertiary_fg : idleText.text == "" ? Colors.primary : Colors.tertiary
}
}
Process {
id: idleStatusScript
command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/bar/scripts/Idle.sh" + " --status"]
stdout: StdioCollector {
onStreamFinished: {
Global.IdleState.idle = this.text.trim() === "0" ? 1 : 0
}
}
}
}