diff --git a/modules/bar/scripts/Apps.sh b/modules/bar/scripts/Apps.sh index 53c85c4..5490365 100755 --- a/modules/bar/scripts/Apps.sh +++ b/modules/bar/scripts/Apps.sh @@ -6,7 +6,7 @@ if [[ -z "$ID" ]]; then echo "Usage: $0 Number" exit 1 fi -# Command Helper: hyprctl clients -j | jq '.[] | select(.workspace.id == 4)' +# Command Helper: hyprctl clients -j | jq '.[] | select(.workspace.id == 1)' # Icons: https://www.nerdfonts.com/cheat-sheet declare -A MAP=( # Youtube @@ -27,7 +27,7 @@ declare -A MAP=( ["mpv"]="" ["ffplay"]="" # Chats - ["Discord"]="" + ["discord"]="" ["vesktop"]="" ["Signal"]="󰭹" ["xyz.chatboxapp.app"]="" @@ -71,6 +71,7 @@ declare -A MAP=( ["libreoffice-writer"]="" ["com.github.flxzt.rnote"]="󱩼" ["com.github.xournalpp.xournalpp"]="󱩼" + ["qpdfview.local.qpdfview"]="󱩼" # Hardware ["Mission Center"]="" ["QDirStat"]="󰋊" @@ -88,6 +89,8 @@ declare -A MAP=( ["nm-connection-editor"]="󱛆" # Calculator ["Calculator"]="󰪚" + # VPN + ["Proton VPN"]="󰌾" ) # APPS=$(hyprctl clients -j | jq -r ".[] | select(.workspace.id == $ID) | .initialTitle") diff --git a/modules/bar/widgets/Workspaces.qml b/modules/bar/widgets/Workspaces.qml index 1e2e8ce..7db004b 100644 --- a/modules/bar/widgets/Workspaces.qml +++ b/modules/bar/widgets/Workspaces.qml @@ -10,68 +10,84 @@ Row { // Workspace Row required property HyprlandMonitor thisMonitor spacing: 8 + // 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: (workspaceNum.width + 16) < (workspaceNum.height + 8) ? workspaceNum.height + 8 : workspaceNum.width + 16 + height: workspaceNum.height + 8 + radius: 4 + 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: 2 - Rectangle { //workspace - visible: modelData.monitor === thisMonitor - width: (workspaceNum.width + 16) < (workspaceNum.height + 8) ? workspaceNum.height + 8 : workspaceNum.width + 16 - height: workspaceNum.height + 8 - radius: 4 - 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: 2 - - MouseArea { - id: workspaceButton - hoverEnabled: true - cursorShape: Qt.PointingHandCursor - anchors.fill: parent - onClicked: Hyprland.dispatch("workspace " + modelData.id) - - Rectangle { + MouseArea { + id: workspaceButton + hoverEnabled: true + cursorShape: Qt.PointingHandCursor anchors.fill: parent - color: "transparent" - radius: 6 - } - } - - Text { - id: workspaceNum - text: modelData.id - anchors.centerIn: parent - color: workspaceButton.containsMouse ? Colors.tertiary - : modelData.active ? Colors.primary - : Colors.secondary - font.pixelSize: 18 - font.family: "Inter, sans-serif" - } - - Process { - id: workspaceContent - command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/bar/scripts/Apps.sh " + modelData.id] - running: true - - stdout: StdioCollector { - onStreamFinished: { - workspaceNum.text = this.text - console.log("networkScript output:", this.text) + onClicked: Hyprland.dispatch("workspace " + modelData.id) + + Rectangle { + anchors.fill: parent + color: "transparent" + radius: 6 } } - } - Timer { - interval: 1000 - running: true - repeat: true - onTriggered: workspaceContent.running = true + Text { + id: workspaceNum + text: modelData.id + anchors.centerIn: parent + color: workspaceButton.containsMouse ? Colors.tertiary + : modelData.active ? Colors.primary + : Colors.secondary + font.pixelSize: 18 + font.family: "Inter, sans-serif" + } + + Process { + id: workspaceContent + command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/bar/scripts/Apps.sh " + modelData.id] + running: true + + stdout: StdioCollector { + onStreamFinished: { + workspaceNum.text = this.text + console.log("networkScript output:", this.text) + } + } + } + + Timer { + interval: 1000 + running: true + repeat: true + onTriggered: workspaceContent.running = true + } } } - } Text {