summaryrefslogtreecommitdiff
path: root/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/WidgetsTab.qml
diff options
context:
space:
mode:
authorAlexanderCurl <alexc@alexc.hu>2026-04-18 17:46:06 +0100
committerAlexanderCurl <alexc@alexc.hu>2026-04-18 17:46:06 +0100
commit70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 (patch)
treeab1123d4067c1b086dd6faa7ee4ea643236b565a /raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/WidgetsTab.qml
parent5d94c0a7d44a2255b81815a52a7056a94a39842d (diff)
downloadRaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.tar.gz
RaveOS-PKGBUILD-70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69.zip
Replaced file structures for themes in the correct format
Diffstat (limited to 'raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/WidgetsTab.qml')
-rw-r--r--raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/WidgetsTab.qml1145
1 files changed, 0 insertions, 1145 deletions
diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/WidgetsTab.qml b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/WidgetsTab.qml
deleted file mode 100644
index 86bc391..0000000
--- a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Modules/Settings/WidgetsTab.qml
+++ /dev/null
@@ -1,1145 +0,0 @@
-import QtQuick
-import QtQuick.Layouts
-import Quickshell
-import qs.Common
-import qs.Services
-import qs.Widgets
-
-Item {
- id: widgetsTab
-
- property var parentModal: null
- property string selectedBarId: "default"
-
- property var selectedBarConfig: {
- selectedBarId;
- SettingsData.barConfigs;
- const index = SettingsData.barConfigs.findIndex(cfg => cfg.id === selectedBarId);
- return index !== -1 ? SettingsData.barConfigs[index] : SettingsData.barConfigs[0];
- }
-
- property bool selectedBarIsVertical: {
- selectedBarId;
- const pos = selectedBarConfig?.position ?? SettingsData.Position.Top;
- return pos === SettingsData.Position.Left || pos === SettingsData.Position.Right;
- }
-
- property bool hasMultipleBars: SettingsData.barConfigs.length > 1
-
- DankTooltipV2 {
- id: sharedTooltip
- }
-
- property var baseWidgetDefinitions: {
- var coreWidgets = [
- {
- "id": "layout",
- "text": I18n.tr("Layout"),
- "description": I18n.tr("Display and switch DWL layouts"),
- "icon": "view_quilt",
- "enabled": CompositorService.isDwl && DwlService.dwlAvailable,
- "warning": !CompositorService.isDwl ? I18n.tr("Requires DWL compositor") : (!DwlService.dwlAvailable ? I18n.tr("DWL service not available") : undefined)
- },
- {
- "id": "launcherButton",
- "text": I18n.tr("App Launcher"),
- "description": I18n.tr("Quick access to application launcher"),
- "icon": "apps",
- "enabled": true
- },
- {
- "id": "workspaceSwitcher",
- "text": I18n.tr("Workspace Switcher"),
- "description": I18n.tr("Shows current workspace and allows switching"),
- "icon": "view_module",
- "enabled": true
- },
- {
- "id": "focusedWindow",
- "text": I18n.tr("Focused Window"),
- "description": I18n.tr("Display currently focused application title"),
- "icon": "window",
- "enabled": true
- },
- {
- "id": "runningApps",
- "text": I18n.tr("Running Apps"),
- "description": I18n.tr("Shows all running applications with focus indication"),
- "icon": "apps",
- "enabled": true
- },
- {
- "id": "appsDock",
- "text": I18n.tr("Apps Dock"),
- "description": I18n.tr("Pinned and running apps with drag-and-drop"),
- "icon": "dock_to_bottom",
- "enabled": true
- },
- {
- "id": "clock",
- "text": I18n.tr("Clock"),
- "description": I18n.tr("Current time and date display"),
- "icon": "schedule",
- "enabled": true
- },
- {
- "id": "weather",
- "text": I18n.tr("Weather Widget"),
- "description": I18n.tr("Current weather conditions and temperature"),
- "icon": "wb_sunny",
- "enabled": true
- },
- {
- "id": "music",
- "text": I18n.tr("Media Controls"),
- "description": I18n.tr("Control currently playing media"),
- "icon": "music_note",
- "enabled": true
- },
- {
- "id": "clipboard",
- "text": I18n.tr("Clipboard Manager"),
- "description": I18n.tr("Access clipboard history"),
- "icon": "content_paste",
- "enabled": true
- },
- {
- "id": "cpuUsage",
- "text": I18n.tr("CPU Usage"),
- "description": I18n.tr("CPU usage indicator"),
- "icon": "memory",
- "enabled": DgopService.dgopAvailable,
- "warning": !DgopService.dgopAvailable ? I18n.tr("Requires 'dgop' tool") : undefined
- },
- {
- "id": "memUsage",
- "text": I18n.tr("Memory Usage"),
- "description": I18n.tr("Memory usage indicator"),
- "icon": "developer_board",
- "enabled": DgopService.dgopAvailable,
- "warning": !DgopService.dgopAvailable ? I18n.tr("Requires 'dgop' tool") : undefined
- },
- {
- "id": "diskUsage",
- "text": I18n.tr("Disk Usage"),
- "description": I18n.tr("Percentage"),
- "icon": "storage",
- "enabled": DgopService.dgopAvailable,
- "warning": !DgopService.dgopAvailable ? I18n.tr("Requires 'dgop' tool") : undefined
- },
- {
- "id": "cpuTemp",
- "text": I18n.tr("CPU Temperature"),
- "description": I18n.tr("CPU temperature display"),
- "icon": "device_thermostat",
- "enabled": DgopService.dgopAvailable,
- "warning": !DgopService.dgopAvailable ? I18n.tr("Requires 'dgop' tool") : undefined
- },
- {
- "id": "gpuTemp",
- "text": I18n.tr("GPU Temperature"),
- "description": I18n.tr("GPU temperature display"),
- "icon": "auto_awesome_mosaic",
- "warning": !DgopService.dgopAvailable ? I18n.tr("Requires 'dgop' tool") : I18n.tr("This widget prevents GPU power off states, which can significantly impact battery life on laptops. It is not recommended to use this on laptops with hybrid graphics."),
- "enabled": DgopService.dgopAvailable
- },
- {
- "id": "systemTray",
- "text": I18n.tr("System Tray"),
- "description": I18n.tr("System notification area icons"),
- "icon": "notifications",
- "enabled": true
- },
- {
- "id": "privacyIndicator",
- "text": I18n.tr("Privacy Indicator"),
- "description": I18n.tr("Shows when microphone, camera, or screen sharing is active"),
- "icon": "privacy_tip",
- "enabled": true
- },
- {
- "id": "controlCenterButton",
- "text": I18n.tr("Control Center"),
- "description": I18n.tr("Access to system controls and settings"),
- "icon": "settings",
- "enabled": true
- },
- {
- "id": "notificationButton",
- "text": I18n.tr("Notification Center"),
- "description": I18n.tr("Access to notifications and do not disturb"),
- "icon": "notifications",
- "enabled": true
- },
- {
- "id": "battery",
- "text": I18n.tr("Battery"),
- "description": I18n.tr("Battery level and power management"),
- "icon": "battery_std",
- "enabled": true
- },
- {
- "id": "vpn",
- "text": I18n.tr("VPN"),
- "description": I18n.tr("VPN status and quick connect"),
- "icon": "vpn_lock",
- "enabled": true
- },
- {
- "id": "idleInhibitor",
- "text": I18n.tr("Idle Inhibitor"),
- "description": I18n.tr("Prevent screen timeout"),
- "icon": "motion_sensor_active",
- "enabled": true
- },
- {
- "id": "capsLockIndicator",
- "text": I18n.tr("Caps Lock Indicator"),
- "description": I18n.tr("Shows when caps lock is active"),
- "icon": "shift_lock",
- "enabled": true
- },
- {
- "id": "spacer",
- "text": I18n.tr("Spacer"),
- "description": I18n.tr("Customizable empty space"),
- "icon": "more_horiz",
- "enabled": true
- },
- {
- "id": "separator",
- "text": I18n.tr("Separator"),
- "description": I18n.tr("Visual divider between widgets"),
- "icon": "remove",
- "enabled": true
- },
- {
- "id": "network_speed_monitor",
- "text": I18n.tr("Network Speed Monitor"),
- "description": I18n.tr("Network download and upload speed display"),
- "icon": "network_check",
- "warning": !DgopService.dgopAvailable ? I18n.tr("Requires 'dgop' tool") : undefined,
- "enabled": DgopService.dgopAvailable
- },
- {
- "id": "keyboard_layout_name",
- "text": I18n.tr("Keyboard Layout Name"),
- "description": I18n.tr("Displays the active keyboard layout and allows switching"),
- "icon": "keyboard"
- },
- {
- "id": "notepadButton",
- "text": I18n.tr("Notepad"),
- "description": I18n.tr("Quick access to notepad"),
- "icon": "assignment",
- "enabled": true
- },
- {
- "id": "colorPicker",
- "text": I18n.tr("Color Picker"),
- "description": I18n.tr("Quick access to color picker"),
- "icon": "palette",
- "enabled": true
- },
- {
- "id": "systemUpdate",
- "text": I18n.tr("System Update"),
- "description": I18n.tr("Check for system updates"),
- "icon": "update",
- "enabled": SystemUpdateService.distributionSupported
- },
- {
- "id": "powerMenuButton",
- "text": I18n.tr("Power"),
- "description": I18n.tr("Display the power system menu"),
- "icon": "power_settings_new",
- "enabled": true
- },
- ];
-
- var allPluginVariants = PluginService.getAllPluginVariants();
- for (var i = 0; i < allPluginVariants.length; i++) {
- var variant = allPluginVariants[i];
- coreWidgets.push({
- "id": variant.fullId,
- "text": variant.name,
- "description": variant.description,
- "icon": variant.icon,
- "enabled": variant.loaded,
- "warning": !variant.loaded ? I18n.tr("Plugin is disabled - enable in Plugins settings to use") : undefined
- });
- }
-
- return coreWidgets;
- }
-
- property var defaultLeftWidgets: [
- {
- "id": "launcherButton",
- "enabled": true
- },
- {
- "id": "workspaceSwitcher",
- "enabled": true
- },
- {
- "id": "focusedWindow",
- "enabled": true
- }
- ]
- property var defaultCenterWidgets: [
- {
- "id": "music",
- "enabled": true
- },
- {
- "id": "clock",
- "enabled": true
- },
- {
- "id": "weather",
- "enabled": true
- }
- ]
- property var defaultRightWidgets: [
- {
- "id": "systemTray",
- "enabled": true
- },
- {
- "id": "clipboard",
- "enabled": true
- },
- {
- "id": "notificationButton",
- "enabled": true
- },
- {
- "id": "battery",
- "enabled": true
- },
- {
- "id": "controlCenterButton",
- "enabled": true
- }
- ]
-
- function getWidgetsForSection(sectionId) {
- switch (sectionId) {
- case "left":
- return selectedBarConfig?.leftWidgets || [];
- case "center":
- return selectedBarConfig?.centerWidgets || [];
- case "right":
- return selectedBarConfig?.rightWidgets || [];
- default:
- return [];
- }
- }
-
- function setWidgetsForSection(sectionId, widgets) {
- switch (sectionId) {
- case "left":
- SettingsData.updateBarConfig(selectedBarId, {
- leftWidgets: widgets
- });
- break;
- case "center":
- SettingsData.updateBarConfig(selectedBarId, {
- centerWidgets: widgets
- });
- break;
- case "right":
- SettingsData.updateBarConfig(selectedBarId, {
- rightWidgets: widgets
- });
- break;
- }
- }
-
- function getWidgetsForPopup() {
- return baseWidgetDefinitions.filter(widget => {
- if (widget.warning && widget.warning.includes("Plugin is disabled"))
- return false;
- if (widget.enabled === false)
- return false;
- return true;
- });
- }
-
- function addWidgetToSection(widgetId, targetSection) {
- var widgetObj = {
- "id": widgetId,
- "enabled": true
- };
- if (widgetId === "spacer")
- widgetObj.size = 20;
- if (widgetId === "gpuTemp") {
- widgetObj.selectedGpuIndex = 0;
- widgetObj.pciId = "";
- }
- if (widgetId === "controlCenterButton") {
- widgetObj.showNetworkIcon = SettingsData.controlCenterShowNetworkIcon;
- widgetObj.showBluetoothIcon = SettingsData.controlCenterShowBluetoothIcon;
- widgetObj.showAudioIcon = SettingsData.controlCenterShowAudioIcon;
- widgetObj.showAudioPercent = SettingsData.controlCenterShowAudioPercent;
- widgetObj.showVpnIcon = SettingsData.controlCenterShowVpnIcon;
- widgetObj.showBrightnessIcon = SettingsData.controlCenterShowBrightnessIcon;
- widgetObj.showBrightnessPercent = SettingsData.controlCenterShowBrightnessPercent;
- widgetObj.showMicIcon = SettingsData.controlCenterShowMicIcon;
- widgetObj.showMicPercent = SettingsData.controlCenterShowMicPercent;
- widgetObj.showBatteryIcon = SettingsData.controlCenterShowBatteryIcon;
- widgetObj.showPrinterIcon = SettingsData.controlCenterShowPrinterIcon;
- widgetObj.showScreenSharingIcon = SettingsData.controlCenterShowScreenSharingIcon;
- widgetObj.controlCenterGroupOrder = ["network", "vpn", "bluetooth", "audio", "microphone", "brightness", "battery", "printer", "screenSharing"];
- }
- if (widgetId === "runningApps") {
- widgetObj.runningAppsCompactMode = SettingsData.runningAppsCompactMode;
- widgetObj.runningAppsGroupByApp = SettingsData.runningAppsGroupByApp;
- widgetObj.runningAppsCurrentWorkspace = SettingsData.runningAppsCurrentWorkspace;
- widgetObj.runningAppsCurrentMonitor = false;
- }
- if (widgetId === "diskUsage") {
- widgetObj.mountPath = "/";
- widgetObj.diskUsageMode = 0;
- }
- if (widgetId === "cpuUsage" || widgetId === "memUsage" || widgetId === "cpuTemp" || widgetId === "gpuTemp")
- widgetObj.minimumWidth = true;
- if (widgetId === "memUsage")
- widgetObj.showInGb = false;
-
- var widgets = getWidgetsForSection(targetSection).slice();
- widgets.push(widgetObj);
- setWidgetsForSection(targetSection, widgets);
- }
-
- function removeWidgetFromSection(sectionId, widgetIndex) {
- var widgets = getWidgetsForSection(sectionId).slice();
- if (widgetIndex >= 0 && widgetIndex < widgets.length)
- widgets.splice(widgetIndex, 1);
- setWidgetsForSection(sectionId, widgets);
- }
-
- function cloneWidgetData(widget) {
- if (typeof widget === "string")
- return {
- "id": widget,
- "enabled": true
- };
- var result = {
- "id": widget.id,
- "enabled": widget.enabled
- };
- var keys = ["size", "selectedGpuIndex", "pciId", "mountPath", "diskUsageMode", "minimumWidth", "showSwap", "showInGb", "mediaSize", "clockCompactMode", "focusedWindowCompactMode", "runningAppsCompactMode", "keyboardLayoutNameCompactMode", "runningAppsGroupByApp", "runningAppsCurrentWorkspace", "runningAppsCurrentMonitor", "showNetworkIcon", "showBluetoothIcon", "showAudioIcon", "showAudioPercent", "showVpnIcon", "showBrightnessIcon", "showBrightnessPercent", "showMicIcon", "showMicPercent", "showBatteryIcon", "showPrinterIcon", "showScreenSharingIcon", "controlCenterGroupOrder", "barMaxVisibleApps", "barMaxVisibleRunningApps", "barShowOverflowBadge", "trayUseInlineExpansion"];
- for (var i = 0; i < keys.length; i++) {
- if (widget[keys[i]] !== undefined)
- result[keys[i]] = widget[keys[i]];
- }
- return result;
- }
-
- function handleItemEnabledChanged(sectionId, itemId, enabled) {
- var widgets = getWidgetsForSection(sectionId).slice();
- for (var i = 0; i < widgets.length; i++) {
- var widget = widgets[i];
- var widgetId = typeof widget === "string" ? widget : widget.id;
- if (widgetId !== itemId)
- continue;
- var newWidget = cloneWidgetData(widget);
- newWidget.enabled = enabled;
- widgets[i] = newWidget;
- break;
- }
- setWidgetsForSection(sectionId, widgets);
- }
-
- function handleItemOrderChanged(sectionId, newOrder) {
- setWidgetsForSection(sectionId, newOrder);
- }
-
- function handleSpacerSizeChanged(sectionId, widgetIndex, newSize) {
- var widgets = getWidgetsForSection(sectionId).slice();
- if (widgetIndex < 0 || widgetIndex >= widgets.length)
- return;
- var widget = widgets[widgetIndex];
- var widgetId = typeof widget === "string" ? widget : widget.id;
- if (widgetId !== "spacer")
- return;
- var newWidget = cloneWidgetData(widget);
- newWidget.size = newSize;
- widgets[widgetIndex] = newWidget;
- setWidgetsForSection(sectionId, widgets);
- }
-
- function handleGpuSelectionChanged(sectionId, widgetIndex, selectedGpuIndex) {
- var widgets = getWidgetsForSection(sectionId).slice();
- if (widgetIndex < 0 || widgetIndex >= widgets.length)
- return;
- var pciId = DgopService.availableGpus && DgopService.availableGpus.length > selectedGpuIndex ? DgopService.availableGpus[selectedGpuIndex].pciId : "";
- var newWidget = cloneWidgetData(widgets[widgetIndex]);
- newWidget.selectedGpuIndex = selectedGpuIndex;
- newWidget.pciId = pciId;
- widgets[widgetIndex] = newWidget;
- setWidgetsForSection(sectionId, widgets);
- }
-
- function handleDiskMountSelectionChanged(sectionId, widgetIndex, mountPath) {
- var widgets = getWidgetsForSection(sectionId).slice();
- if (widgetIndex < 0 || widgetIndex >= widgets.length)
- return;
- var newWidget = cloneWidgetData(widgets[widgetIndex]);
- newWidget.mountPath = mountPath;
- widgets[widgetIndex] = newWidget;
- setWidgetsForSection(sectionId, widgets);
- }
-
- function handleControlCenterSettingChanged(sectionId, widgetIndex, settingName, value) {
- var widgets = getWidgetsForSection(sectionId).slice();
- if (widgetIndex < 0 || widgetIndex >= widgets.length)
- return;
- var newWidget = cloneWidgetData(widgets[widgetIndex]);
- newWidget[settingName] = value;
-
- if (!value) {
- switch (settingName) {
- case "showAudioIcon":
- newWidget.showAudioPercent = false;
- break;
- case "showMicIcon":
- newWidget.showMicPercent = false;
- break;
- case "showBrightnessIcon":
- newWidget.showBrightnessPercent = false;
- break;
- }
- }
-
- widgets[widgetIndex] = newWidget;
- setWidgetsForSection(sectionId, widgets);
- }
-
- function handleControlCenterGroupOrderChanged(sectionId, widgetIndex, groupOrder) {
- var widgets = getWidgetsForSection(sectionId).slice();
- if (widgetIndex < 0 || widgetIndex >= widgets.length)
- return;
- var previousWidget = widgets[widgetIndex];
- var newWidget = cloneWidgetData(previousWidget);
- newWidget.controlCenterGroupOrder = groupOrder.slice();
- widgets[widgetIndex] = newWidget;
- setWidgetsForSection(sectionId, widgets);
- }
-
- function handlePrivacySettingChanged(sectionId, widgetIndex, settingName, value) {
- switch (settingName) {
- case "showMicIcon":
- SettingsData.set("privacyShowMicIcon", value);
- break;
- case "showCameraIcon":
- SettingsData.set("privacyShowCameraIcon", value);
- break;
- case "showScreenSharingIcon":
- SettingsData.set("privacyShowScreenShareIcon", value);
- break;
- }
- }
-
- function handleMinimumWidthChanged(sectionId, widgetIndex, enabled) {
- var widgets = getWidgetsForSection(sectionId).slice();
- if (widgetIndex < 0 || widgetIndex >= widgets.length) {
- setWidgetsForSection(sectionId, widgets);
- return;
- }
- var newWidget = cloneWidgetData(widgets[widgetIndex]);
- newWidget.minimumWidth = enabled;
- widgets[widgetIndex] = newWidget;
- setWidgetsForSection(sectionId, widgets);
- }
-
- function handleShowSwapChanged(sectionId, widgetIndex, enabled) {
- var widgets = getWidgetsForSection(sectionId).slice();
- if (widgetIndex < 0 || widgetIndex >= widgets.length) {
- setWidgetsForSection(sectionId, widgets);
- return;
- }
- var newWidget = cloneWidgetData(widgets[widgetIndex]);
- newWidget.showSwap = enabled;
- widgets[widgetIndex] = newWidget;
- setWidgetsForSection(sectionId, widgets);
- }
-
- function handleShowInGbChanged(sectionId, widgetIndex, enabled) {
- var widgets = getWidgetsForSection(sectionId).slice();
- if (widgetIndex < 0 || widgetIndex >= widgets.length) {
- setWidgetsForSection(sectionId, widgets);
- return;
- }
- var newWidget = cloneWidgetData(widgets[widgetIndex]);
- newWidget.showInGb = enabled;
- widgets[widgetIndex] = newWidget;
- setWidgetsForSection(sectionId, widgets);
- }
-
- function handleDiskUsageModeChanged(sectionId, widgetIndex, mode) {
- var widgets = getWidgetsForSection(sectionId).slice();
- if (widgetIndex < 0 || widgetIndex >= widgets.length) {
- setWidgetsForSection(sectionId, widgets);
- return;
- }
- var newWidget = cloneWidgetData(widgets[widgetIndex]);
- newWidget.diskUsageMode = mode;
- widgets[widgetIndex] = newWidget;
- setWidgetsForSection(sectionId, widgets);
- }
-
- function handleOverflowSettingChanged(sectionId, widgetIndex, settingName, value) {
- var widgets = getWidgetsForSection(sectionId).slice();
- if (widgetIndex < 0 || widgetIndex >= widgets.length) {
- setWidgetsForSection(sectionId, widgets);
- return;
- }
- var newWidget = cloneWidgetData(widgets[widgetIndex]);
- newWidget[settingName] = value;
- widgets[widgetIndex] = newWidget;
- setWidgetsForSection(sectionId, widgets);
- }
-
- function handleCompactModeChanged(sectionId, widgetId, value) {
- var widgets = getWidgetsForSection(sectionId).slice();
- for (var i = 0; i < widgets.length; i++) {
- var widget = widgets[i];
- var currentId = typeof widget === "string" ? widget : widget.id;
- if (currentId !== widgetId)
- continue;
-
- var newWidget = cloneWidgetData(widget);
- switch (widgetId) {
- case "music":
- newWidget.mediaSize = value;
- break;
- case "clock":
- newWidget.clockCompactMode = value;
- break;
- case "focusedWindow":
- newWidget.focusedWindowCompactMode = value;
- break;
- case "runningApps":
- newWidget.runningAppsCompactMode = value;
- break;
- case "keyboard_layout_name":
- newWidget.keyboardLayoutNameCompactMode = value;
- break;
- }
- widgets[i] = newWidget;
- break;
- }
- setWidgetsForSection(sectionId, widgets);
- }
-
- function getItemsForSection(sectionId) {
- var widgets = [];
- var widgetData = getWidgetsForSection(sectionId);
- widgetData.forEach(widget => {
- var isString = typeof widget === "string";
- var widgetId = isString ? widget : widget.id;
- var widgetDef = baseWidgetDefinitions.find(w => w.id === widgetId);
- if (!widgetDef)
- return;
-
- var item = Object.assign({}, widgetDef);
- item.enabled = isString ? true : widget.enabled;
- if (!isString) {
- if (widget.size !== undefined)
- item.size = widget.size;
- if (widget.selectedGpuIndex !== undefined)
- item.selectedGpuIndex = widget.selectedGpuIndex;
- if (widget.pciId !== undefined)
- item.pciId = widget.pciId;
- if (widget.mountPath !== undefined)
- item.mountPath = widget.mountPath;
- if (widget.diskUsageMode !== undefined)
- item.diskUsageMode = widget.diskUsageMode;
- if (widget.showNetworkIcon !== undefined)
- item.showNetworkIcon = widget.showNetworkIcon;
- if (widget.showBluetoothIcon !== undefined)
- item.showBluetoothIcon = widget.showBluetoothIcon;
- if (widget.showAudioIcon !== undefined)
- item.showAudioIcon = widget.showAudioIcon;
- if (widget.showAudioPercent !== undefined)
- item.showAudioPercent = widget.showAudioPercent;
- if (widget.showVpnIcon !== undefined)
- item.showVpnIcon = widget.showVpnIcon;
- if (widget.showBrightnessIcon !== undefined)
- item.showBrightnessIcon = widget.showBrightnessIcon;
- if (widget.showBrightnessPercent !== undefined)
- item.showBrightnessPercent = widget.showBrightnessPercent;
- if (widget.showMicIcon !== undefined)
- item.showMicIcon = widget.showMicIcon;
- if (widget.showMicPercent !== undefined)
- item.showMicPercent = widget.showMicPercent;
- if (widget.showBatteryIcon !== undefined)
- item.showBatteryIcon = widget.showBatteryIcon;
- if (widget.showPrinterIcon !== undefined)
- item.showPrinterIcon = widget.showPrinterIcon;
- if (widget.showScreenSharingIcon !== undefined)
- item.showScreenSharingIcon = widget.showScreenSharingIcon;
- if (widget.controlCenterGroupOrder !== undefined)
- item.controlCenterGroupOrder = widget.controlCenterGroupOrder;
- if (widget.minimumWidth !== undefined)
- item.minimumWidth = widget.minimumWidth;
- if (widget.showSwap !== undefined)
- item.showSwap = widget.showSwap;
- if (widget.showInGb !== undefined)
- item.showInGb = widget.showInGb;
- if (widget.mediaSize !== undefined)
- item.mediaSize = widget.mediaSize;
- if (widget.clockCompactMode !== undefined)
- item.clockCompactMode = widget.clockCompactMode;
- if (widget.focusedWindowCompactMode !== undefined)
- item.focusedWindowCompactMode = widget.focusedWindowCompactMode;
- if (widget.runningAppsCompactMode !== undefined)
- item.runningAppsCompactMode = widget.runningAppsCompactMode;
- if (widget.runningAppsGroupByApp !== undefined)
- item.runningAppsGroupByApp = widget.runningAppsGroupByApp;
- if (widget.runningAppsCurrentWorkspace !== undefined)
- item.runningAppsCurrentWorkspace = widget.runningAppsCurrentWorkspace;
- if (widget.runningAppsCurrentMonitor !== undefined)
- item.runningAppsCurrentMonitor = widget.runningAppsCurrentMonitor;
- if (widget.keyboardLayoutNameCompactMode !== undefined)
- item.keyboardLayoutNameCompactMode = widget.keyboardLayoutNameCompactMode;
- if (widget.barMaxVisibleApps !== undefined)
- item.barMaxVisibleApps = widget.barMaxVisibleApps;
- if (widget.barMaxVisibleRunningApps !== undefined)
- item.barMaxVisibleRunningApps = widget.barMaxVisibleRunningApps;
- if (widget.barShowOverflowBadge !== undefined)
- item.barShowOverflowBadge = widget.barShowOverflowBadge;
- if (widget.trayUseInlineExpansion !== undefined)
- item.trayUseInlineExpansion = widget.trayUseInlineExpansion;
- }
- widgets.push(item);
- });
- return widgets;
- }
-
- Component.onCompleted: {
- const leftWidgets = selectedBarConfig?.leftWidgets;
- const centerWidgets = selectedBarConfig?.centerWidgets;
- const rightWidgets = selectedBarConfig?.rightWidgets;
-
- if (!leftWidgets)
- setWidgetsForSection("left", defaultLeftWidgets);
- if (!centerWidgets)
- setWidgetsForSection("center", defaultCenterWidgets);
- if (!rightWidgets)
- setWidgetsForSection("right", defaultRightWidgets);
-
- const sections = ["left", "center", "right"];
- sections.forEach(sectionId => {
- var widgets = getWidgetsForSection(sectionId).slice();
- var updated = false;
- for (var i = 0; i < widgets.length; i++) {
- var widget = widgets[i];
- if (typeof widget === "object" && widget.id === "spacer" && !widget.size) {
- widgets[i] = Object.assign({}, widget, {
- "size": 20
- });
- updated = true;
- }
- }
- if (updated)
- setWidgetsForSection(sectionId, widgets);
- });
- }
-
- LazyLoader {
- id: widgetSelectionPopupLoader
- active: false
-
- WidgetSelectionPopup {
- id: widgetSelectionPopupItem
- parentModal: widgetsTab.parentModal
- onWidgetSelected: (widgetId, targetSection) => {
- widgetsTab.addWidgetToSection(widgetId, targetSection);
- }
- }
- }
-
- function showWidgetSelectionPopup(sectionId) {
- widgetSelectionPopupLoader.active = true;
- if (!widgetSelectionPopupLoader.item)
- return;
- widgetSelectionPopupLoader.item.targetSection = sectionId;
- widgetSelectionPopupLoader.item.allWidgets = widgetsTab.getWidgetsForPopup();
- widgetSelectionPopupLoader.item.show();
- }
-
- 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
-
- StyledRect {
- width: parent.width
- height: barSelectorContent.implicitHeight + Theme.spacingL * 2
- radius: Theme.cornerRadius
- color: Theme.surfaceContainerHigh
- border.width: 0
- visible: hasMultipleBars
-
- Column {
- id: barSelectorContent
- anchors.fill: parent
- anchors.margins: Theme.spacingL
- spacing: Theme.spacingM
-
- Row {
- width: parent.width
- spacing: Theme.spacingM
-
- DankIcon {
- name: "toolbar"
- size: Theme.iconSize
- color: Theme.primary
- anchors.verticalCenter: parent.verticalCenter
- }
-
- StyledText {
- text: I18n.tr("Select Bar")
- font.pixelSize: Theme.fontSizeLarge
- font.weight: Font.Medium
- color: Theme.surfaceText
- anchors.verticalCenter: parent.verticalCenter
- }
- }
-
- DankButtonGroup {
- id: barSelectorGroup
- width: parent.width
- model: SettingsData.barConfigs.map(cfg => cfg.name || ("Bar " + (SettingsData.barConfigs.indexOf(cfg) + 1)))
- currentIndex: {
- const idx = SettingsData.barConfigs.findIndex(cfg => cfg.id === selectedBarId);
- return idx >= 0 ? idx : 0;
- }
- checkEnabled: false
- onSelectionChanged: (index, selected) => {
- if (!selected)
- return;
- if (index >= 0 && index < SettingsData.barConfigs.length)
- selectedBarId = SettingsData.barConfigs[index].id;
- }
- }
- }
- }
-
- StyledRect {
- width: parent.width
- height: widgetManagementHeader.implicitHeight + Theme.spacingL * 2
- radius: Theme.cornerRadius
- color: Theme.surfaceContainerHigh
- border.width: 0
-
- Column {
- id: widgetManagementHeader
- anchors.fill: parent
- anchors.margins: Theme.spacingL
- spacing: Theme.spacingM
-
- RowLayout {
- width: parent.width
- spacing: Theme.spacingM
-
- DankIcon {
- name: "widgets"
- size: Theme.iconSize
- color: Theme.primary
- Layout.alignment: Qt.AlignVCenter
- }
-
- StyledText {
- text: I18n.tr("Widget Management")
- font.pixelSize: Theme.fontSizeLarge
- font.weight: Font.Medium
- color: Theme.surfaceText
- Layout.alignment: Qt.AlignVCenter
- }
-
- Item {
- height: 1
- Layout.fillWidth: true
- }
-
- Rectangle {
- width: resetContentRow.implicitWidth + Theme.spacingM * 2
- height: 28
- radius: Theme.cornerRadius
- color: resetArea.containsMouse ? Theme.surfacePressed : Theme.surfaceVariant
- Layout.alignment: Qt.AlignVCenter
- border.width: 0
-
- Row {
- id: resetContentRow
- anchors.centerIn: parent
- spacing: Theme.spacingXS
-
- DankIcon {
- name: "refresh"
- size: 14
- color: Theme.surfaceText
- anchors.verticalCenter: parent.verticalCenter
- }
-
- StyledText {
- text: I18n.tr("Reset")
- font.pixelSize: Theme.fontSizeSmall
- font.weight: Font.Medium
- color: Theme.surfaceText
- anchors.verticalCenter: parent.verticalCenter
- }
- }
-
- MouseArea {
- id: resetArea
- anchors.fill: parent
- hoverEnabled: true
- cursorShape: Qt.PointingHandCursor
- onClicked: {
- setWidgetsForSection("left", defaultLeftWidgets);
- setWidgetsForSection("center", defaultCenterWidgets);
- setWidgetsForSection("right", defaultRightWidgets);
- }
- }
-
- Behavior on color {
- ColorAnimation {
- duration: Theme.shortDuration
- easing.type: Theme.standardEasing
- }
- }
- }
- }
-
- StyledText {
- width: parent.width
- text: I18n.tr("Drag widgets to reorder within sections. Use the eye icon to hide/show widgets (maintains spacing), or X to remove them completely.")
- font.pixelSize: Theme.fontSizeSmall
- color: Theme.surfaceVariantText
- wrapMode: Text.WordWrap
- }
- }
- }
-
- Column {
- width: parent.width
- spacing: Theme.spacingL
-
- StyledRect {
- width: parent.width
- height: leftSection.implicitHeight + Theme.spacingL * 2
- radius: Theme.cornerRadius
- color: Theme.surfaceContainerHigh
- border.width: 0
-
- WidgetsTabSection {
- id: leftSection
- anchors.fill: parent
- anchors.margins: Theme.spacingL
- title: selectedBarIsVertical ? I18n.tr("Top Section") : I18n.tr("Left Section")
- titleIcon: "format_align_left"
- sectionId: "left"
- allWidgets: widgetsTab.baseWidgetDefinitions
- items: widgetsTab.getItemsForSection("left")
- onItemEnabledChanged: (sectionId, itemId, enabled) => {
- widgetsTab.handleItemEnabledChanged(sectionId, itemId, enabled);
- }
- onItemOrderChanged: newOrder => {
- widgetsTab.handleItemOrderChanged(sectionId, newOrder);
- }
- onAddWidget: sectionId => {
- showWidgetSelectionPopup(sectionId);
- }
- onRemoveWidget: (sectionId, index) => {
- widgetsTab.removeWidgetFromSection(sectionId, index);
- }
- onSpacerSizeChanged: (sectionId, index, size) => {
- widgetsTab.handleSpacerSizeChanged(sectionId, index, size);
- }
- onGpuSelectionChanged: (sectionId, index, gpuIndex) => {
- widgetsTab.handleGpuSelectionChanged(sectionId, index, gpuIndex);
- }
- onDiskMountSelectionChanged: (sectionId, index, mountPath) => {
- widgetsTab.handleDiskMountSelectionChanged(sectionId, index, mountPath);
- }
- onControlCenterSettingChanged: (sectionId, index, setting, value) => {
- widgetsTab.handleControlCenterSettingChanged(sectionId, index, setting, value);
- }
- onControlCenterGroupOrderChanged: (sectionId, index, groupOrder) => {
- widgetsTab.handleControlCenterGroupOrderChanged(sectionId, index, groupOrder);
- }
- onPrivacySettingChanged: (sectionId, index, setting, value) => {
- widgetsTab.handlePrivacySettingChanged(sectionId, index, setting, value);
- }
- onMinimumWidthChanged: (sectionId, index, enabled) => {
- widgetsTab.handleMinimumWidthChanged(sectionId, index, enabled);
- }
- onShowSwapChanged: (sectionId, index, enabled) => {
- widgetsTab.handleShowSwapChanged(sectionId, index, enabled);
- }
- onShowInGbChanged: (sectionId, index, enabled) => {
- widgetsTab.handleShowInGbChanged(sectionId, index, enabled);
- }
- onDiskUsageModeChanged: (sectionId, widgetIndex, mode) => {
- widgetsTab.handleDiskUsageModeChanged(sectionId, widgetIndex, mode);
- }
- onCompactModeChanged: (widgetId, value) => {
- widgetsTab.handleCompactModeChanged(sectionId, widgetId, value);
- }
- onOverflowSettingChanged: (sectionId, widgetIndex, settingName, value) => {
- widgetsTab.handleOverflowSettingChanged(sectionId, widgetIndex, settingName, value);
- }
- }
- }
-
- StyledRect {
- width: parent.width
- height: centerSection.implicitHeight + Theme.spacingL * 2
- radius: Theme.cornerRadius
- color: Theme.surfaceContainerHigh
- border.width: 0
-
- WidgetsTabSection {
- id: centerSection
- anchors.fill: parent
- anchors.margins: Theme.spacingL
- title: selectedBarIsVertical ? I18n.tr("Middle Section") : I18n.tr("Center Section")
- titleIcon: "format_align_center"
- sectionId: "center"
- allWidgets: widgetsTab.baseWidgetDefinitions
- items: widgetsTab.getItemsForSection("center")
- onItemEnabledChanged: (sectionId, itemId, enabled) => {
- widgetsTab.handleItemEnabledChanged(sectionId, itemId, enabled);
- }
- onItemOrderChanged: newOrder => {
- widgetsTab.handleItemOrderChanged(sectionId, newOrder);
- }
- onAddWidget: sectionId => {
- showWidgetSelectionPopup(sectionId);
- }
- onRemoveWidget: (sectionId, index) => {
- widgetsTab.removeWidgetFromSection(sectionId, index);
- }
- onSpacerSizeChanged: (sectionId, index, size) => {
- widgetsTab.handleSpacerSizeChanged(sectionId, index, size);
- }
- onGpuSelectionChanged: (sectionId, index, gpuIndex) => {
- widgetsTab.handleGpuSelectionChanged(sectionId, index, gpuIndex);
- }
- onDiskMountSelectionChanged: (sectionId, index, mountPath) => {
- widgetsTab.handleDiskMountSelectionChanged(sectionId, index, mountPath);
- }
- onControlCenterSettingChanged: (sectionId, index, setting, value) => {
- widgetsTab.handleControlCenterSettingChanged(sectionId, index, setting, value);
- }
- onControlCenterGroupOrderChanged: (sectionId, index, groupOrder) => {
- widgetsTab.handleControlCenterGroupOrderChanged(sectionId, index, groupOrder);
- }
- onPrivacySettingChanged: (sectionId, index, setting, value) => {
- widgetsTab.handlePrivacySettingChanged(sectionId, index, setting, value);
- }
- onMinimumWidthChanged: (sectionId, index, enabled) => {
- widgetsTab.handleMinimumWidthChanged(sectionId, index, enabled);
- }
- onShowSwapChanged: (sectionId, index, enabled) => {
- widgetsTab.handleShowSwapChanged(sectionId, index, enabled);
- }
- onShowInGbChanged: (sectionId, index, enabled) => {
- widgetsTab.handleShowInGbChanged(sectionId, index, enabled);
- }
- onDiskUsageModeChanged: (sectionId, widgetIndex, mode) => {
- widgetsTab.handleDiskUsageModeChanged(sectionId, widgetIndex, mode);
- }
- onCompactModeChanged: (widgetId, value) => {
- widgetsTab.handleCompactModeChanged(sectionId, widgetId, value);
- }
- onOverflowSettingChanged: (sectionId, widgetIndex, settingName, value) => {
- widgetsTab.handleOverflowSettingChanged(sectionId, widgetIndex, settingName, value);
- }
- }
- }
-
- StyledRect {
- width: parent.width
- height: rightSection.implicitHeight + Theme.spacingL * 2
- radius: Theme.cornerRadius
- color: Theme.surfaceContainerHigh
- border.width: 0
-
- WidgetsTabSection {
- id: rightSection
- anchors.fill: parent
- anchors.margins: Theme.spacingL
- title: selectedBarIsVertical ? I18n.tr("Bottom Section") : I18n.tr("Right Section")
- titleIcon: "format_align_right"
- sectionId: "right"
- allWidgets: widgetsTab.baseWidgetDefinitions
- items: widgetsTab.getItemsForSection("right")
- onItemEnabledChanged: (sectionId, itemId, enabled) => {
- widgetsTab.handleItemEnabledChanged(sectionId, itemId, enabled);
- }
- onItemOrderChanged: newOrder => {
- widgetsTab.handleItemOrderChanged(sectionId, newOrder);
- }
- onAddWidget: sectionId => {
- showWidgetSelectionPopup(sectionId);
- }
- onRemoveWidget: (sectionId, index) => {
- widgetsTab.removeWidgetFromSection(sectionId, index);
- }
- onSpacerSizeChanged: (sectionId, index, size) => {
- widgetsTab.handleSpacerSizeChanged(sectionId, index, size);
- }
- onGpuSelectionChanged: (sectionId, index, gpuIndex) => {
- widgetsTab.handleGpuSelectionChanged(sectionId, index, gpuIndex);
- }
- onDiskMountSelectionChanged: (sectionId, index, mountPath) => {
- widgetsTab.handleDiskMountSelectionChanged(sectionId, index, mountPath);
- }
- onControlCenterSettingChanged: (sectionId, index, setting, value) => {
- widgetsTab.handleControlCenterSettingChanged(sectionId, index, setting, value);
- }
- onControlCenterGroupOrderChanged: (sectionId, index, groupOrder) => {
- widgetsTab.handleControlCenterGroupOrderChanged(sectionId, index, groupOrder);
- }
- onPrivacySettingChanged: (sectionId, index, setting, value) => {
- widgetsTab.handlePrivacySettingChanged(sectionId, index, setting, value);
- }
- onMinimumWidthChanged: (sectionId, index, enabled) => {
- widgetsTab.handleMinimumWidthChanged(sectionId, index, enabled);
- }
- onShowSwapChanged: (sectionId, index, enabled) => {
- widgetsTab.handleShowSwapChanged(sectionId, index, enabled);
- }
- onShowInGbChanged: (sectionId, index, enabled) => {
- widgetsTab.handleShowInGbChanged(sectionId, index, enabled);
- }
- onDiskUsageModeChanged: (sectionId, widgetIndex, mode) => {
- widgetsTab.handleDiskUsageModeChanged(sectionId, widgetIndex, mode);
- }
- onCompactModeChanged: (widgetId, value) => {
- widgetsTab.handleCompactModeChanged(sectionId, widgetId, value);
- }
- onOverflowSettingChanged: (sectionId, widgetIndex, settingName, value) => {
- widgetsTab.handleOverflowSettingChanged(sectionId, widgetIndex, settingName, value);
- }
- }
- }
- }
- }
- }
-}