import QtQuick import Quickshell import Quickshell.Hyprland import Quickshell.Io import "../../../colors" import "../../../config" Row { // Workspace Row id: workspacesRow required property HyprlandMonitor thisMonitor spacing: Math.floor(bar.height/4) // Get infos of Type Unknown // Repeater { // model: Hyprland.workspaces // Rectangle { // Component.onCompleted: { // console.log("roles:") // console.log("id:", modelData.id) // console.log("monitor:", modelData.monitor) // console.log("monitorId:", modelData.monitorId) // console.log("name:", modelData.name) // } // } // } Repeater { // repeats workspaces model: Hyprland.workspaces Loader { active: modelData.monitor === thisMonitor sourceComponent: Rectangle { //workspace // visible: modelData.monitor === thisMonitor width: Math.max(workspaceNum.width + workspaceText.width+Config.spacing*2, bar.height) height: workspaceNum.height + Config.spacing radius: Config.small_radius color: ( workspaceButton.containsMouse ? Colors.tertiaryContainer : modelData.active ? Colors.primaryContainer : Colors.secondaryContainer ) border.color: ( workspaceButton.containsMouse ? Colors.tertiaryContainer_fg : modelData.active ? Colors.primaryContainer_fg : Colors.secondaryContainer_fg ) border.width: Config.border_width MouseArea { id: workspaceButton hoverEnabled: true cursorShape: Qt.PointingHandCursor anchors.fill: parent onClicked: Hyprland.dispatch("workspace " + modelData.id) Row { id: workspaceRow anchors.centerIn: parent spacing: Math.floor(bar.height/8) leftPadding: Math.floor(bar.height/4) Text { id: workspaceNum text: modelData.id anchors.verticalCenter: parent.verticalCenter color: workspaceButton.containsMouse ? Colors.tertiary : modelData.active ? Colors.primary : Colors.secondary font.pixelSize: Config.medium_scaling(bar.height) font.family: Config.font font.bold: true } Text { id: workspaceText text: "" anchors.verticalCenter: parent.verticalCenter color: workspaceButton.containsMouse ? Colors.tertiary : modelData.active ? Colors.primary : Colors.secondary font.pixelSize: Config.medium_scaling(bar.height)*0.8 font.family: Config.font font.letterSpacing: Math.floor(Config.medium_scaling(bar.height) * (2 / 3)) } } } Process { id: workspaceContent command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/bar/scripts/Apps.sh " + modelData.id] running: true stdout: StdioCollector { onStreamFinished: { workspaceText.text = this.text // console.log("workspaceScript output:", this.text) } } } Timer { interval: Config.fast_reload_interval running: true repeat: true onTriggered: workspaceContent.running = true } } } } Text { visible: Hyprland.workspaces.length === 0 text: "No Workspaces" color: Colors.error font.pixelSize: Config.big_font_size(bar.height) } }