diff options
Diffstat (limited to 'raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/RunningAppsTab.qml')
| -rw-r--r-- | raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/RunningAppsTab.qml | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/RunningAppsTab.qml b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/RunningAppsTab.qml new file mode 100644 index 0000000..022e131 --- /dev/null +++ b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/RunningAppsTab.qml @@ -0,0 +1,175 @@ +import QtQuick +import qs.Common +import qs.Widgets +import qs.Modules.Settings.Widgets + +Item { + id: root + + DankFlickable { + anchors.fill: parent + clip: true + contentHeight: mainColumn.height + Theme.spacingXL + contentWidth: width + + Column { + id: mainColumn + topPadding: 4 + width: Math.min(550, parent.width - Theme.spacingL * 2) + anchors.horizontalCenter: parent.horizontalCenter + spacing: Theme.spacingXL + + SettingsCard { + width: parent.width + iconName: "find_replace" + title: I18n.tr("App ID Substitutions") + settingKey: "appIdSubstitutions" + tags: ["app", "icon", "substitution", "replacement", "pattern", "window", "class", "regex"] + + headerActions: [ + DankActionButton { + buttonSize: 36 + iconName: "restart_alt" + iconSize: 20 + visible: JSON.stringify(SettingsData.appIdSubstitutions) !== JSON.stringify(SettingsData.getDefaultAppIdSubstitutions()) + backgroundColor: Theme.surfaceContainer + iconColor: Theme.surfaceVariantText + onClicked: SettingsData.resetAppIdSubstitutions() + }, + DankActionButton { + buttonSize: 36 + iconName: "add" + iconSize: 20 + backgroundColor: Theme.surfaceContainer + iconColor: Theme.primary + onClicked: SettingsData.addAppIdSubstitution("", "", "exact") + } + ] + + Column { + width: parent.width + spacing: Theme.spacingS + + StyledText { + text: I18n.tr("Map window class names to icon names for proper icon display") + font.pixelSize: Theme.fontSizeSmall + color: Theme.surfaceVariantText + wrapMode: Text.WordWrap + width: parent.width + bottomPadding: Theme.spacingS + } + + Repeater { + model: SettingsData.appIdSubstitutions + + delegate: Rectangle { + id: subItem + width: parent.width + height: subColumn.implicitHeight + Theme.spacingM + radius: Theme.cornerRadius + color: Theme.withAlpha(Theme.surfaceContainer, 0.5) + + Column { + id: subColumn + anchors.fill: parent + anchors.margins: Theme.spacingS + spacing: Theme.spacingS + + Row { + width: parent.width + spacing: Theme.spacingS + + Column { + width: (parent.width - deleteBtn.width - Theme.spacingS) / 2 + spacing: 2 + + StyledText { + text: I18n.tr("Pattern") + font.pixelSize: Theme.fontSizeSmall - 1 + color: Theme.surfaceVariantText + } + + DankTextField { + id: patternField + width: parent.width + text: modelData.pattern + font.pixelSize: Theme.fontSizeSmall + onEditingFinished: SettingsData.updateAppIdSubstitution(index, text, replacementField.text, modelData.type) + } + } + + Column { + width: (parent.width - deleteBtn.width - Theme.spacingS) / 2 + spacing: 2 + + StyledText { + text: I18n.tr("Replacement") + font.pixelSize: Theme.fontSizeSmall - 1 + color: Theme.surfaceVariantText + } + + DankTextField { + id: replacementField + width: parent.width + text: modelData.replacement + font.pixelSize: Theme.fontSizeSmall + onEditingFinished: SettingsData.updateAppIdSubstitution(index, patternField.text, text, modelData.type) + } + } + + Item { + id: deleteBtn + width: 32 + height: 40 + anchors.verticalCenter: parent.verticalCenter + + Rectangle { + anchors.fill: parent + radius: Theme.cornerRadius + color: deleteArea.containsMouse ? Theme.withAlpha(Theme.error, 0.2) : "transparent" + } + + DankIcon { + anchors.centerIn: parent + name: "delete" + size: 18 + color: deleteArea.containsMouse ? Theme.error : Theme.surfaceVariantText + } + + MouseArea { + id: deleteArea + anchors.fill: parent + hoverEnabled: true + cursorShape: Qt.PointingHandCursor + onClicked: SettingsData.removeAppIdSubstitution(index) + } + } + } + + Column { + width: 120 + spacing: 2 + + StyledText { + text: I18n.tr("Type") + font.pixelSize: Theme.fontSizeSmall - 1 + color: Theme.surfaceVariantText + } + + DankDropdown { + width: parent.width + compactMode: true + dropdownWidth: 120 + currentValue: modelData.type + options: ["exact", "contains", "regex"] + onValueChanged: value => SettingsData.updateAppIdSubstitution(index, modelData.pattern, modelData.replacement, value) + } + } + } + } + } + } + } + } + } +} |