Compare commits

..

2 commits

Author SHA1 Message Date
Benjamin Palko
97c40a7302 caffeine persist 2025-08-25 22:11:04 -04:00
Benjamin Palko
705465e7b1 set bar to top level 2025-08-25 16:53:23 -04:00
3 changed files with 41 additions and 17 deletions

View file

@ -1,12 +1,13 @@
import qs.config
import QtQuick
import QtQuick.Layouts
import Quickshell
import "components" import "components"
import "components/bluetooth" import "components/bluetooth"
import "components/hyprland" import "components/hyprland"
import "components/notifications" import "components/notifications"
import "components/tray" import "components/tray"
import qs.config
import QtQuick
import QtQuick.Layouts
import Quickshell
import Quickshell.Wayland
PanelWindow { PanelWindow {
id: parentWindow id: parentWindow
@ -18,6 +19,8 @@ PanelWindow {
implicitHeight: Dimensions.bar.height implicitHeight: Dimensions.bar.height
color: 'transparent' color: 'transparent'
WlrLayershell.layer: WlrLayer.Top
Item { Item {
anchors.fill: parent anchors.fill: parent

View file

@ -1,21 +1,16 @@
import qs.config import qs.config
import qs.constants import qs.constants
import qs.services
import qs.widgets import qs.widgets
import Quickshell.Io
StyledButton { StyledButton {
id: root id: root
border.color: process.running ? Theme.palette.secondary : 'transparent' border.color: Caffeine.enabled ? Theme.palette.secondary : 'transparent'
border.width: 2 border.width: 2
onClicked: { onClicked: {
if (process.running) { Caffeine.toggle();
process.signal(888);
process.running = false;
} else {
process.running = true;
}
} }
content: StyledText { content: StyledText {
@ -28,9 +23,4 @@ StyledButton {
color: root.containsMouse ? Theme.palette.base300 : Theme.palette.basecontent color: root.containsMouse ? Theme.palette.base300 : Theme.palette.basecontent
} }
Process {
id: process
command: ["sh", "-c", "systemd-inhibit --what=idle --who=Caffeine --why='Caffeine module is active' --mode=block sleep inf"]
}
} }

31
services/Caffeine.qml Normal file
View file

@ -0,0 +1,31 @@
pragma Singleton
import Quickshell
import Quickshell.Io
Singleton {
property alias enabled: properties.enabled
PersistentProperties {
id: properties
reloadableId: "Caffeine"
property bool enabled: false
}
function toggle() {
if (properties.enabled) {
process.signal(888);
properties.enabled = false;
} else {
properties.enabled = true;
}
}
Process {
id: process
running: properties.enabled
command: ["sh", "-c", "systemd-inhibit --what=idle --who=Caffeine --why='Caffeine module is active' --mode=block sleep inf"]
}
}