mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-24 21:42:51 -05:00
system tray: Add DMS_HIDE_TRAYIDs
This commit is contained in:
@@ -17,13 +17,26 @@ Rectangle {
|
|||||||
property real widgetThickness: 30
|
property real widgetThickness: 30
|
||||||
property bool isAtBottom: false
|
property bool isAtBottom: false
|
||||||
readonly property real horizontalPadding: SettingsData.dankBarNoBackground ? 2 : Theme.spacingS
|
readonly property real horizontalPadding: SettingsData.dankBarNoBackground ? 2 : Theme.spacingS
|
||||||
readonly property int calculatedSize: SystemTray.items.values.length > 0 ? SystemTray.items.values.length * 24 + horizontalPadding * 2 : 0
|
readonly property var hiddenTrayIds: {
|
||||||
|
const envValue = Quickshell.env("DMS_HIDE_TRAYIDS") || ""
|
||||||
|
return envValue ? envValue.split(",").map(id => id.trim().toLowerCase()) : []
|
||||||
|
}
|
||||||
|
readonly property var visibleTrayItems: {
|
||||||
|
if (!hiddenTrayIds.length) {
|
||||||
|
return SystemTray.items.values
|
||||||
|
}
|
||||||
|
return SystemTray.items.values.filter(item => {
|
||||||
|
const itemId = item?.id || ""
|
||||||
|
return !hiddenTrayIds.includes(itemId.toLowerCase())
|
||||||
|
})
|
||||||
|
}
|
||||||
|
readonly property int calculatedSize: visibleTrayItems.length > 0 ? visibleTrayItems.length * 24 + horizontalPadding * 2 : 0
|
||||||
|
|
||||||
width: isVertical ? widgetThickness : calculatedSize
|
width: isVertical ? widgetThickness : calculatedSize
|
||||||
height: isVertical ? calculatedSize : widgetThickness
|
height: isVertical ? calculatedSize : widgetThickness
|
||||||
radius: SettingsData.dankBarNoBackground ? 0 : Theme.cornerRadius
|
radius: SettingsData.dankBarNoBackground ? 0 : Theme.cornerRadius
|
||||||
color: {
|
color: {
|
||||||
if (SystemTray.items.values.length === 0) {
|
if (visibleTrayItems.length === 0) {
|
||||||
return "transparent";
|
return "transparent";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,7 +47,7 @@ Rectangle {
|
|||||||
const baseColor = Theme.widgetBaseBackgroundColor;
|
const baseColor = Theme.widgetBaseBackgroundColor;
|
||||||
return Qt.rgba(baseColor.r, baseColor.g, baseColor.b, baseColor.a * Theme.widgetTransparency);
|
return Qt.rgba(baseColor.r, baseColor.g, baseColor.b, baseColor.a * Theme.widgetTransparency);
|
||||||
}
|
}
|
||||||
visible: SystemTray.items.values.length > 0
|
visible: visibleTrayItems.length > 0
|
||||||
|
|
||||||
Loader {
|
Loader {
|
||||||
id: layoutLoader
|
id: layoutLoader
|
||||||
@@ -48,7 +61,7 @@ Rectangle {
|
|||||||
spacing: 0
|
spacing: 0
|
||||||
|
|
||||||
Repeater {
|
Repeater {
|
||||||
model: SystemTray.items.values
|
model: root.visibleTrayItems
|
||||||
|
|
||||||
delegate: Item {
|
delegate: Item {
|
||||||
property var trayItem: modelData
|
property var trayItem: modelData
|
||||||
@@ -135,7 +148,7 @@ Rectangle {
|
|||||||
spacing: 0
|
spacing: 0
|
||||||
|
|
||||||
Repeater {
|
Repeater {
|
||||||
model: SystemTray.items.values
|
model: root.visibleTrayItems
|
||||||
|
|
||||||
delegate: Item {
|
delegate: Item {
|
||||||
property var trayItem: modelData
|
property var trayItem: modelData
|
||||||
|
|||||||
Reference in New Issue
Block a user