dots-hyprland/.config/quickshell/ii/services/EasyEffects.qml

61 lines
1.6 KiB
QML

import qs.modules.common
import QtQuick
import Quickshell
import Quickshell.Io
import Quickshell.Services.Pipewire
pragma Singleton
pragma ComponentBehavior: Bound
/**
* Handles EasyEffects active state and presets.
*/
Singleton {
id: root
property bool available: false
property bool active: false
function fetchAvailability() {
fetchAvailabilityProc.running = true
}
function fetchActiveState() {
fetchActiveStateProc.running = true
}
function disable() {
root.active = false
Quickshell.execDetached(["bash", "-c", "pkill easyeffects || flatpak pkill com.github.wwmm.easyeffects"])
}
function enable() {
root.active = true
Quickshell.execDetached(["bash", "-c", "easyeffects --gapplication-service || flatpak run com.github.wwmm.easyeffects --gapplication-service"])
}
function toggle() {
if (root.active) {
root.disable()
} else {
root.enable()
}
}
Process {
id: fetchAvailabilityProc
running: true
command: ["bash", "-c", "command -v easyeffects || flatpak info com.github.wwmm.easyeffects > /dev/null 2>&1"]
onExited: (exitCode, exitStatus) => {
root.available = exitCode === 0
}
}
Process {
id: fetchActiveStateProc
running: true
command: ["bash", "-c", "pidof easyeffects || flatpak ps | grep com.github.wwmm.easyeffects > /dev/null 2>&1"]
onExited: (exitCode, exitStatus) => {
root.active = exitCode === 0
}
}
}