rework of IdleButton

This commit is contained in:
Hannes
2026-08-22 21:35:43 +02:00
parent 896264c062
commit 9f8d774efd
6 changed files with 24 additions and 47 deletions
+1 -1
View File
@@ -24,7 +24,7 @@ QtObject {
readonly property int border_width: 2 readonly property int border_width: 2
readonly property string font: "CodeNewRoman Nerd Font" readonly property string font: "CodeNewRoman Nerd Font"
readonly property string jfont: "CodeNewRoman Nerd Font" readonly property string jfont: "Noto Sans JP"
function big_font_size(value) { function big_font_size(value) {
return value * 0.6 return value * 0.6
+1 -1
View File
@@ -70,7 +70,7 @@ PanelWindow {
Tray{} Tray{}
Battery{} Battery{}
Network {} Network {}
IdleButton {} IdleButton { panelWindow: panel }
PowerButton {} PowerButton {}
} }
-14
View File
@@ -1,14 +0,0 @@
if [ "$1" = "--status" ]; then
if pgrep -x "hypridle" >/dev/null; then
echo 1
else
echo 0
fi
exit 0
fi
if pgrep -x "hypridle" >/dev/null; then
killall hypridle
else
hypridle &
fi
+2 -20
View File
@@ -5,24 +5,6 @@ import Quickshell.Io
import "../../../../config" import "../../../../config"
Item { Item {
property int idle: 0 // true = inhibit idle (prevent hypridle/lock/dpms), false = allow idle
property bool idle: false
Process {
id: statusScript
command: ["sh", "-c", Config.configDir + "/modules/bar/scripts/Idle.sh --status"]
running: true
stdout: StdioCollector {
onStreamFinished: {
idle = this.text.trim() === "0" ? 1 : 0
}
}
}
Timer {
interval: 5000
running: true
repeat: true
triggeredOnStart: true
onTriggered: statusScript.running = true
}
} }
+19 -11
View File
@@ -1,6 +1,7 @@
import QtQuick import QtQuick
import Quickshell import Quickshell
import Quickshell.Hyprland import Quickshell.Hyprland
import Quickshell.Wayland
import Quickshell.Io import Quickshell.Io
import "../../../config" import "../../../config"
import "../states/Idle" import "../states/Idle"
@@ -12,16 +13,29 @@ MouseArea {
hoverEnabled: true hoverEnabled: true
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
required property PanelWindow panelWindow
IdleInhibitor {
id: idleInhibitor
window: panelWindow
enabled: IdleState.idle
}
IdleMonitor {
id: idleMonitor
enabled: true
timeout: 30
respectInhibitors: true
}
onClicked: { onClicked: {
var newState = IdleState.idle ? 0 : 1 IdleState.idle = !IdleState.idle
console.log("[IdleButton] Toggling idle: " + (newState ? "enabled" : "disabled")) console.log("[IdleButton] Toggling idle: " + (IdleState.idle ? "enabled" : "disabled"))
idleToggleProc.startDetached()
IdleState.idle = newState
} }
Rectangle { Rectangle {
anchors.fill: parent anchors.fill: parent
color: idleButton.containsMouse ? Colors.tertiary : Qt.alpha(Colors.tertiaryContainer, 0.25) color: idleButton.containsMouse ? Colors.tertiary : idleMonitor.isIdle ? Qt.alpha(Colors.secondary, 0.25) : Qt.alpha(Colors.tertiaryContainer, 0.25)
radius: Config.radius_fun(idleButton.height) radius: Config.radius_fun(idleButton.height)
border.width: Config.border_width border.width: Config.border_width
border.color: ( border.color: (
@@ -42,10 +56,4 @@ MouseArea {
) )
} }
} }
Process {
id: idleToggleProc
command: ["sh", "-c", Config.configDir + "/modules/bar/scripts/Idle.sh"]
running: false
}
} }
+1
View File
@@ -74,6 +74,7 @@ Rectangle {
} else { } else {
Hyprland.dispatch("workspace " + workspaceData.id) Hyprland.dispatch("workspace " + workspaceData.id)
} }
Hyprland.refreshWorkspaces()
} }
Row { Row {