From 0d4877a77ecdf7d08a8eb3cc65b33eec075b12c9 Mon Sep 17 00:00:00 2001 From: end-4 <97237370+end-4@users.noreply.github.com> Date: Sat, 7 Jun 2025 21:57:57 +0200 Subject: [PATCH] dock: display num of open windows --- .../quickshell/modules/dock/DockAppButton.qml | 40 +++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/.config/quickshell/modules/dock/DockAppButton.qml b/.config/quickshell/modules/dock/DockAppButton.qml index 7ff11bae1..65e8bf88d 100644 --- a/.config/quickshell/modules/dock/DockAppButton.qml +++ b/.config/quickshell/modules/dock/DockAppButton.qml @@ -17,6 +17,10 @@ DockButton { required property var appToplevel property var appListRoot property int lastFocused: -1 + property real iconSize: 35 + property real countDotWidth: 10 + property real countDotHeight: 4 + MouseArea { id: mouseArea anchors.fill: parent @@ -37,8 +41,38 @@ DockButton { lastFocused = (lastFocused + 1) % appToplevel.toplevels.length appToplevel.toplevels[lastFocused].activate() } - contentItem: IconImage { - id: iconImage - source: Quickshell.iconPath(AppSearch.guessIcon(appToplevel.appId), "image-missing") + contentItem: Item { + anchors.centerIn: parent + + IconImage { + id: iconImage + anchors { + left: parent.left + right: parent.right + verticalCenter: parent.verticalCenter + } + source: Quickshell.iconPath(AppSearch.guessIcon(appToplevel.appId), "image-missing") + implicitSize: appButton.iconSize + } + + RowLayout { + spacing: 3 + anchors { + top: iconImage.bottom + topMargin: 2 + horizontalCenter: parent.horizontalCenter + } + Repeater { + model: Math.min(appToplevel.toplevels.length, 3) + delegate: Rectangle { + required property int index + radius: Appearance.rounding.full + implicitWidth: (appToplevel.toplevels.length <= 3) ? + appButton.countDotWidth : appButton.countDotHeight // Circles when too many + implicitHeight: appButton.countDotHeight + color: Appearance.m3colors.m3primary + } + } + } } }