Merge pull request #257 from mkuritsu/main

Add toggle to hide unoccupied workspaces
This commit is contained in:
Lemmy 2025-09-12 16:42:36 -04:00 committed by GitHub
commit 59ce164b40
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 22 additions and 8 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
.qmlls.ini

2
.qmlformat.ini Normal file
View file

@ -0,0 +1,2 @@
[General]
IndentWidth=2

View file

@ -32,6 +32,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
@ -90,6 +92,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)
} }
} }
@ -196,8 +201,6 @@ Item {
return Color.mOnError return Color.mOnError
if (model.isActive || model.isOccupied) if (model.isActive || model.isOccupied)
return Color.mOnSecondary return Color.mOnSecondary
if (model.isUrgent)
return Color.mOnError
return Color.mOnSurface return Color.mOnSurface
} }
@ -213,8 +216,6 @@ Item {
return Color.mError return Color.mError
if (model.isActive || model.isOccupied) if (model.isActive || model.isOccupied)
return Color.mSecondary return Color.mSecondary
if (model.isUrgent)
return Color.mError
return Color.mOutline return Color.mOutline
} }

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,