diff --git a/scripts/stoa-doctor.sh b/scripts/stoa-doctor.sh index 4dac535..88b4328 100755 --- a/scripts/stoa-doctor.sh +++ b/scripts/stoa-doctor.sh @@ -127,8 +127,19 @@ _check_optional bluetoothctl "Bluetooth (bluetoothctl)" _check_bin thunar "File manager (Thunar)" # ── Terminal ── -_check_optional kitty "Terminal (kitty)" -_check_optional alacritty "Terminal (alacritty)" +_terminal_found="" +for _t in kitty alacritty foot wezterm ghostty xterm konsole gnome-terminal xfce4-terminal; do + if command -v "$_t" &>/dev/null; then + _terminal_found="$_t" + break + fi +done +if [ -n "$_terminal_found" ]; then + _ok "Terminal ($_terminal_found)" +else + _warn "Terminal — no terminal emulator found" +fi +unset _t _terminal_found # ── Utilities ── _check_bin curl "HTTP client (curl)" diff --git a/theme/noctalia-plugins/stoa-doctor-pill/BarWidget.qml b/theme/noctalia-plugins/stoa-doctor-pill/BarWidget.qml index f6ba946..c5f2a36 100644 --- a/theme/noctalia-plugins/stoa-doctor-pill/BarWidget.qml +++ b/theme/noctalia-plugins/stoa-doctor-pill/BarWidget.qml @@ -8,6 +8,7 @@ import Quickshell import Quickshell.Io import qs.Commons import qs.Widgets +import qs.Services.UI Item { id: root @@ -25,7 +26,7 @@ Item { : warnings > 0 ? warnings + " warning" + (warnings > 1 ? "s" : "") : "All systems nominal" - implicitWidth: pill.implicitWidth + Style.marginM * 2 + implicitWidth: capsule.implicitWidth + Style.marginM * 2 implicitHeight: parent ? parent.height : 32 // ── Polled state ── @@ -45,14 +46,25 @@ Item { return "doctor" } + // ── Capsule background ── + Rectangle { + anchors.centerIn: parent + width: capsule.implicitWidth + Style.marginS * 2 + height: 22 + radius: 11 + color: Color.mSurfaceVariant + opacity: 0.55 + Behavior on color { ColorAnimation { duration: 400 } } + } + // ── Pill ── RowLayout { - id: pill + id: capsule anchors.centerIn: parent spacing: Style.marginXS Rectangle { - width: 10; height: 10; radius: 5 + width: 8; height: 8; radius: 4 color: root.pillColor Behavior on color { ColorAnimation { duration: 400 } } } @@ -75,7 +87,7 @@ Item { if (mouse.button === Qt.LeftButton) { if (pluginApi) pluginApi.togglePanel(root.screen, root) } else if (mouse.button === Qt.RightButton) { - contextMenu.openAtItem(root, screen) + PanelService.showContextMenu(contextMenu, root, screen) } } } diff --git a/theme/noctalia-plugins/stoa-drive-pill/BarWidget.qml b/theme/noctalia-plugins/stoa-drive-pill/BarWidget.qml index 3ef3ce3..ca5e897 100644 --- a/theme/noctalia-plugins/stoa-drive-pill/BarWidget.qml +++ b/theme/noctalia-plugins/stoa-drive-pill/BarWidget.qml @@ -8,6 +8,7 @@ import Quickshell import Quickshell.Io import qs.Commons import qs.Widgets +import qs.Services.UI Item { id: root @@ -26,7 +27,7 @@ Item { : "No drives mounted — click to manage" visible: _available - implicitWidth: visible ? pill.implicitWidth + Style.marginM * 2 : 0 + implicitWidth: visible ? capsule.implicitWidth + Style.marginM * 2 : 0 implicitHeight: parent ? parent.height : 32 // ── Polled state ── @@ -41,14 +42,25 @@ Item { return Color.mOnSurfaceVariant } + // ── Capsule background ── + Rectangle { + anchors.centerIn: parent + width: capsule.implicitWidth + Style.marginS * 2 + height: 22 + radius: 11 + color: Color.mSurfaceVariant + opacity: 0.55 + Behavior on color { ColorAnimation { duration: 400 } } + } + // ── Pill ── RowLayout { - id: pill + id: capsule anchors.centerIn: parent spacing: Style.marginXS Rectangle { - width: 10; height: 10; radius: 5 + width: 8; height: 8; radius: 4 color: root.pillColor Behavior on color { ColorAnimation { duration: 400 } } } @@ -71,7 +83,7 @@ Item { if (mouse.button === Qt.LeftButton) { if (pluginApi) pluginApi.togglePanel(root.screen, root) } else if (mouse.button === Qt.RightButton) { - contextMenu.openAtItem(root, screen) + PanelService.showContextMenu(contextMenu, root, screen) } } }