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

View file

@ -14,9 +14,10 @@ ColumnLayout {
property var widgetMetadata: null
function saveSettings() {
var settings = Object.assign({}, widgetData || {})
settings.labelMode = labelModeCombo.currentKey
return settings
var settings = Object.assign({}, widgetData || {});
settings.labelMode = labelModeCombo.currentKey;
settings.hideUnoccupied = hideUnoccupiedToggle.checked;
return settings;
}
NComboBox {
@ -41,4 +42,12 @@ ColumnLayout {
onSelected: key => labelModeCombo.currentKey = key
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": {
"allowUserSettings": true,
"labelMode": "index"
"labelMode": "index",
"hideUnoccupied": false
},
"MediaMini": {
"allowUserSettings": true,