1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-25 05:52:50 -05:00

dock: add isolate runninig apps by display option

This commit is contained in:
bbedward
2025-12-22 14:34:06 -05:00
parent a4492b90e7
commit 0b60da3d6d
4 changed files with 28 additions and 3 deletions

View File

@@ -305,6 +305,7 @@ Singleton {
property string dockBorderColor: "surfaceText"
property real dockBorderOpacity: 1.0
property int dockBorderThickness: 1
property bool dockIsolateDisplays: false
property bool notificationOverlayEnabled: false
property int overviewRows: 2

View File

@@ -204,6 +204,7 @@ var SPEC = {
dockBorderColor: { def: "surfaceText" },
dockBorderOpacity: { def: 1.0, coerce: percentToUnit },
dockBorderThickness: { def: 1 },
dockIsolateDisplays: { def: false },
notificationOverlayEnabled: { def: false },
overviewRows: { def: 2, persist: false },

View File

@@ -65,10 +65,21 @@ Item {
Component.onCompleted: updateModel()
function isOnScreen(toplevel, screenName) {
if (!toplevel.screens)
return false;
for (let i = 0; i < toplevel.screens.length; i++) {
if (toplevel.screens[i].name === screenName)
return true;
}
return false;
}
function updateModel() {
const items = [];
const pinnedApps = [...(SessionData.pinnedApps || [])];
const sortedToplevels = CompositorService.sortedToplevels;
const allToplevels = CompositorService.sortedToplevels;
const sortedToplevels = (SettingsData.dockIsolateDisplays && root.dockScreen) ? allToplevels.filter(t => isOnScreen(t, root.dockScreen.name)) : allToplevels;
if (root.groupByApp) {
const appGroups = new Map();
@@ -296,7 +307,12 @@ Item {
}
}
onGroupByAppChanged: {
repeater.updateModel();
onGroupByAppChanged: repeater.updateModel()
Connections {
target: SettingsData
function onDockIsolateDisplaysChanged() {
repeater.updateModel();
}
}
}

View File

@@ -96,6 +96,13 @@ Item {
iconName: "apps"
title: I18n.tr("Behavior")
SettingsToggleRow {
text: I18n.tr("Isolate Displays")
description: I18n.tr("Only show windows from the current monitor on each dock")
checked: SettingsData.dockIsolateDisplays
onToggled: checked => SettingsData.set("dockIsolateDisplays", checked)
}
SettingsToggleRow {
text: I18n.tr("Group by App")
description: I18n.tr("Group multiple windows of the same app together with a window count indicator")