Load only correct Workspaces not hide incorrect ones + some new apps

This commit is contained in:
Hannes
2026-02-25 17:43:57 +01:00
parent 5c979a932d
commit 56ac967679
2 changed files with 74 additions and 55 deletions
+5 -2
View File
@@ -6,7 +6,7 @@ if [[ -z "$ID" ]]; then
echo "Usage: $0 Number" echo "Usage: $0 Number"
exit 1 exit 1
fi 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 # Icons: https://www.nerdfonts.com/cheat-sheet
declare -A MAP=( declare -A MAP=(
# Youtube # Youtube
@@ -27,7 +27,7 @@ declare -A MAP=(
["mpv"]="" ["mpv"]=""
["ffplay"]="" ["ffplay"]=""
# Chats # Chats
["Discord"]="" ["discord"]=""
["vesktop"]="" ["vesktop"]=""
["Signal"]="󰭹" ["Signal"]="󰭹"
["xyz.chatboxapp.app"]="" ["xyz.chatboxapp.app"]=""
@@ -71,6 +71,7 @@ declare -A MAP=(
["libreoffice-writer"]="" ["libreoffice-writer"]=""
["com.github.flxzt.rnote"]="󱩼" ["com.github.flxzt.rnote"]="󱩼"
["com.github.xournalpp.xournalpp"]="󱩼" ["com.github.xournalpp.xournalpp"]="󱩼"
["qpdfview.local.qpdfview"]="󱩼"
# Hardware # Hardware
["Mission Center"]="" ["Mission Center"]=""
["QDirStat"]="󰋊" ["QDirStat"]="󰋊"
@@ -88,6 +89,8 @@ declare -A MAP=(
["nm-connection-editor"]="󱛆" ["nm-connection-editor"]="󱛆"
# Calculator # Calculator
["Calculator"]="󰪚" ["Calculator"]="󰪚"
# VPN
["Proton VPN"]="󰌾"
) )
# APPS=$(hyprctl clients -j | jq -r ".[] | select(.workspace.id == $ID) | .initialTitle") # APPS=$(hyprctl clients -j | jq -r ".[] | select(.workspace.id == $ID) | .initialTitle")
+68 -52
View File
@@ -10,68 +10,84 @@ Row { // Workspace Row
required property HyprlandMonitor thisMonitor required property HyprlandMonitor thisMonitor
spacing: 8 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 Repeater { // repeats workspaces
model: Hyprland.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 MouseArea {
visible: modelData.monitor === thisMonitor id: workspaceButton
width: (workspaceNum.width + 16) < (workspaceNum.height + 8) ? workspaceNum.height + 8 : workspaceNum.width + 16 hoverEnabled: true
height: workspaceNum.height + 8 cursorShape: Qt.PointingHandCursor
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 {
anchors.fill: parent anchors.fill: parent
color: "transparent" onClicked: Hyprland.dispatch("workspace " + modelData.id)
radius: 6
}
}
Text { Rectangle {
id: workspaceNum anchors.fill: parent
text: modelData.id color: "transparent"
anchors.centerIn: parent radius: 6
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 { Text {
interval: 1000 id: workspaceNum
running: true text: modelData.id
repeat: true anchors.centerIn: parent
onTriggered: workspaceContent.running = true 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 { Text {