Add toggle to hide unoccupied workspaces

This commit is contained in:
mkuritsu 2025-09-12 11:50:07 +01:00
parent 722a59da80
commit 3a2bb40117
3 changed files with 19 additions and 4 deletions

View file

@ -33,6 +33,8 @@ Item {
} }
readonly property string labelMode: (widgetSettings.labelMode !== undefined) ? widgetSettings.labelMode : widgetMetadata.labelMode readonly property string labelMode: (widgetSettings.labelMode !== undefined) ? widgetSettings.labelMode : widgetMetadata.labelMode
readonly property bool hideUnoccupied: (widgetSettings.hideUnoccupied !== undefined) ? widgetSettings.hideUnoccupied : widgetMetadata.hideUnoccupied
onHideUnoccupiedChanged: refreshWorkspaces()
property bool isDestroying: false property bool isDestroying: false
property bool hovered: false property bool hovered: false
@ -91,6 +93,9 @@ Item {
for (var i = 0; i < WorkspaceService.workspaces.count; i++) { for (var i = 0; i < WorkspaceService.workspaces.count; i++) {
const ws = WorkspaceService.workspaces.get(i) const ws = WorkspaceService.workspaces.get(i)
if (ws.output.toLowerCase() === screen.name.toLowerCase()) { if (ws.output.toLowerCase() === screen.name.toLowerCase()) {
if (hideUnoccupied && !ws.isOccupied && !ws.isFocused) {
continue
}
localWorkspaces.append(ws) localWorkspaces.append(ws)
} }
} }

View file

@ -14,9 +14,10 @@ ColumnLayout {
property var widgetMetadata: null property var widgetMetadata: null
function saveSettings() { function saveSettings() {
var settings = Object.assign({}, widgetData || {}) var settings = Object.assign({}, widgetData || {});
settings.labelMode = labelModeCombo.currentKey settings.labelMode = labelModeCombo.currentKey;
return settings settings.hideUnoccupied = hideUnoccupiedToggle.checked;
return settings;
} }
NComboBox { NComboBox {
@ -41,4 +42,12 @@ ColumnLayout {
onSelected: key => labelModeCombo.currentKey = key onSelected: key => labelModeCombo.currentKey = key
minimumWidth: 200 * scaling minimumWidth: 200 * scaling
} }
NToggle {
id: hideUnoccupiedToggle
label: "Hide unoccupied"
description: "Don't display workspaces without windows."
checked: widgetData.hideUnoccupied
onToggled: checked => hideUnoccupiedToggle.checked = checked
}
} }

View file

@ -87,7 +87,8 @@ Singleton {
}, },
"Workspace": { "Workspace": {
"allowUserSettings": true, "allowUserSettings": true,
"labelMode": "index" "labelMode": "index",
"hideUnoccupied": false
}, },
"MediaMini": { "MediaMini": {
"allowUserSettings": true, "allowUserSettings": true,