Add always show option

This commit is contained in:
Ryan Hughes
2026-05-22 16:16:48 -04:00
parent 952b33b981
commit 877bef80d0
5 changed files with 11 additions and 6 deletions
+2 -1
View File
@@ -24,7 +24,8 @@ QtObject {
{ value: "StayAwake", label: "Stay awake", description: "Idle lock and screensaver override" },
{ value: "ScreenRecording", label: "Screen recording", description: "GPU screen recorder status" },
{ value: "Dictation", label: "Dictation", description: "Voice typing status" }
] }
] },
{ key: "alwaysShow", type: "boolean", label: "Always Show", description: "Show inactive indicators without waiting for hover.", defaultValue: false }
] },
"NotificationCenter": { displayName: "Notification center", description: "Recent notifications + DND", category: "Status", allowMultiple: false },
"SystemUpdate": { displayName: "System update", description: "Indicates available system updates", category: "System", allowMultiple: false },
+1 -1
View File
@@ -76,7 +76,7 @@ Example `shell.json` (bar subtree only shown):
| `panels.bluetooth` | Bluetooth icon + popup with device list, connect/disconnect, battery | left = popup · right = toggle radio · middle = bluetoothctl TUI |
| `panels.monitor` | Brightness and laptop display controls | left = popup |
The `Indicators` widget loads individual bar indicators from `indicators/`. Omit `items` (or set it to an empty array) to show all indicators in the default order, or set `items` to a subset such as `["Dnd", "NightLight"]`. Multiple `Indicators` instances are allowed, so different sections can show different subsets. Rich panels such as `PowerPanel`, `NetworkPanel`, and `AudioPanel` live in `../panels/` above.
The `Indicators` widget loads individual bar indicators from `indicators/`. Omit `items` (or set it to an empty array) to show all indicators in the default order, or set `items` to a subset such as `["Dnd", "NightLight"]`. Set `alwaysShow` to `true` to keep inactive indicators visible instead of revealing them only on hover. Multiple `Indicators` instances are allowed, so different sections can show different subsets. Rich panels such as `PowerPanel`, `NetworkPanel`, and `AudioPanel` live in `../panels/` above.
## Orientation
+2 -1
View File
@@ -16,7 +16,8 @@ BarWidget {
property var indicatorActiveStates: ({})
property bool indicatorAreaHovered: false
property bool indicatorItemHovered: false
readonly property bool revealInactiveIndicators: indicatorAreaHovered || indicatorItemHovered
readonly property bool alwaysShowIndicators: setting("alwaysShow", false) === true
readonly property bool revealInactiveIndicators: alwaysShowIndicators || indicatorAreaHovered || indicatorItemHovered
signal refreshRequested()
+2
View File
@@ -486,6 +486,8 @@ Item {
var copy = Util.cloneJson(widgetDialogEntry)
copy[key] = value
widgetDialogEntry = copy
if (widgetDialogFormLoader.item && "entry" in widgetDialogFormLoader.item)
widgetDialogFormLoader.item.entry = widgetDialogEntry
}
FloatingWindow {
@@ -80,7 +80,7 @@ Column {
spacing: Style.spacing.labelGap
Text {
visible: text !== ""
visible: text !== "" && String(modelData && modelData.type ? modelData.type : "") !== "boolean"
text: modelData && modelData.label ? modelData.label : (modelData && modelData.key ? modelData.key : "")
color: Qt.darker(root.foreground, 1.3)
font.family: root.fontFamily
@@ -89,7 +89,7 @@ Column {
}
Text {
visible: !!(modelData && modelData.description)
visible: !!(modelData && modelData.description) && String(modelData && modelData.type ? modelData.type : "") !== "boolean"
text: modelData ? (modelData.description || "") : ""
color: Qt.darker(root.foreground, 1.6)
font.family: root.fontFamily
@@ -155,7 +155,8 @@ Column {
property var field: ({})
width: parent.width
label: "Enabled"
label: field && field.label ? String(field.label) : "Enabled"
description: field && field.description ? String(field.description) : ""
foreground: root.foreground
accent: root.accent
fontFamily: root.fontFamily