mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-10-14 23:34:01 -04:00
279 lines
9.4 KiB
QML
279 lines
9.4 KiB
QML
pragma Singleton
|
|
|
|
import QtQuick
|
|
import Quickshell
|
|
import qs.Common
|
|
|
|
Singleton {
|
|
id: root
|
|
|
|
readonly property var widgets: [
|
|
{
|
|
"id": "layout",
|
|
"text": I18n.tr("Layout"),
|
|
"description": I18n.tr("Display and switch MangoWC layouts"),
|
|
"icon": "view_quilt",
|
|
"section": "left"
|
|
},
|
|
{
|
|
"id": "launcherButton",
|
|
"text": I18n.tr("App launcher"),
|
|
"description": I18n.tr("Quick access to application launcher"),
|
|
"icon": "apps",
|
|
"section": "left"
|
|
},
|
|
{
|
|
"id": "workspaceSwitcher",
|
|
"text": I18n.tr("Workspace switcher"),
|
|
"description": I18n.tr("Shows current workspace and allows switching"),
|
|
"icon": "view_module",
|
|
"section": "left"
|
|
},
|
|
{
|
|
"id": "focusedWindow",
|
|
"text": I18n.tr("Focused window"),
|
|
"description": I18n.tr("Display currently focused application title"),
|
|
"icon": "window",
|
|
"section": "left"
|
|
},
|
|
{
|
|
"id": "runningApps",
|
|
"text": I18n.tr("Running apps"),
|
|
"description": I18n.tr("Shows all running applications with focus indication"),
|
|
"icon": "apps",
|
|
"section": "left"
|
|
},
|
|
{
|
|
"id": "appsDock",
|
|
"text": I18n.tr("Apps dock"),
|
|
"description": I18n.tr("Pinned and running apps with drag-and-drop"),
|
|
"icon": "dock_to_bottom",
|
|
"section": "left"
|
|
},
|
|
{
|
|
"id": "island",
|
|
"text": I18n.tr("Island"),
|
|
"description": I18n.tr("Live activities that grow out of the bar", "bar widget catalog: island widget description"),
|
|
"icon": "blur_on",
|
|
"section": "center",
|
|
"single": true,
|
|
"barOnly": true
|
|
},
|
|
{
|
|
"id": "clock",
|
|
"text": I18n.tr("Clock"),
|
|
"description": I18n.tr("Current time and date display"),
|
|
"icon": "schedule",
|
|
"section": "center"
|
|
},
|
|
{
|
|
"id": "weather",
|
|
"text": I18n.tr("Weather"),
|
|
"description": I18n.tr("Current weather conditions and temperature"),
|
|
"icon": "wb_sunny",
|
|
"section": "center"
|
|
},
|
|
{
|
|
"id": "music",
|
|
"text": I18n.tr("Media"),
|
|
"description": I18n.tr("Now playing and media controls"),
|
|
"icon": "music_note",
|
|
"section": "center"
|
|
},
|
|
{
|
|
"id": "clipboard",
|
|
"text": I18n.tr("Clipboard manager"),
|
|
"description": I18n.tr("Access clipboard history"),
|
|
"icon": "content_paste",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "cpuUsage",
|
|
"text": I18n.tr("CPU usage"),
|
|
"description": I18n.tr("CPU usage indicator"),
|
|
"icon": "memory",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "memUsage",
|
|
"text": I18n.tr("Memory usage"),
|
|
"description": I18n.tr("Memory usage indicator"),
|
|
"icon": "developer_board",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "diskUsage",
|
|
"text": I18n.tr("Disk usage"),
|
|
"description": I18n.tr("Percentage"),
|
|
"icon": "storage",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "cpuTemp",
|
|
"text": I18n.tr("CPU temperature"),
|
|
"description": I18n.tr("CPU temperature display"),
|
|
"icon": "device_thermostat",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "gpuTemp",
|
|
"text": I18n.tr("GPU temperature"),
|
|
"description": I18n.tr("GPU temperature display"),
|
|
"icon": "auto_awesome_mosaic",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "systemTray",
|
|
"text": I18n.tr("System tray"),
|
|
"description": I18n.tr("System notification area icons"),
|
|
"icon": "notifications",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "privacyIndicator",
|
|
"text": I18n.tr("Privacy indicator"),
|
|
"description": I18n.tr("Shows when microphone, camera, or screen sharing is active"),
|
|
"icon": "privacy_tip",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "controlCenterButton",
|
|
"text": I18n.tr("Control Center"),
|
|
"description": I18n.tr("Access to system controls and settings"),
|
|
"icon": "settings",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "notificationButton",
|
|
"text": I18n.tr("Notification Center"),
|
|
"description": I18n.tr("Access to notifications and do not disturb"),
|
|
"icon": "notifications",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "battery",
|
|
"text": I18n.tr("Battery"),
|
|
"description": I18n.tr("Battery and power management"),
|
|
"icon": "battery_std",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "vpn",
|
|
"text": I18n.tr("VPN", "virtual private network, widget and page title"),
|
|
"description": I18n.tr("VPN status and quick connect"),
|
|
"icon": "vpn_lock",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "idleInhibitor",
|
|
"text": I18n.tr("Idle inhibitor", "feature that keeps the session from going idle"),
|
|
"description": I18n.tr("Prevent screen timeout"),
|
|
"icon": "motion_sensor_active",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "capsLockIndicator",
|
|
"text": I18n.tr("Caps Lock indicator"),
|
|
"description": I18n.tr("Shows when caps lock is active"),
|
|
"icon": "shift_lock",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "spacer",
|
|
"text": I18n.tr("Spacer", "bar widget name, empty space between widgets"),
|
|
"description": I18n.tr("Customizable empty space"),
|
|
"icon": "more_horiz",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "separator",
|
|
"text": I18n.tr("Separator", "bar widget name, visual divider between widgets"),
|
|
"description": I18n.tr("Visual divider between widgets"),
|
|
"icon": "remove",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "network_speed_monitor",
|
|
"text": I18n.tr("Network speed monitor"),
|
|
"description": I18n.tr("Network download and upload speed display"),
|
|
"icon": "network_check",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "keyboard_layout_name",
|
|
"text": I18n.tr("Keyboard layout"),
|
|
"description": I18n.tr("Displays the active keyboard layout and allows switching"),
|
|
"icon": "keyboard",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "notepadButton",
|
|
"text": I18n.tr("Notepad"),
|
|
"description": I18n.tr("Quick access to notepad"),
|
|
"icon": "assignment",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "colorPicker",
|
|
"text": I18n.tr("Color Picker"),
|
|
"description": I18n.tr("Quick access to color picker"),
|
|
"icon": "palette",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "systemUpdate",
|
|
"text": I18n.tr("System update"),
|
|
"description": I18n.tr("Check for system updates"),
|
|
"icon": "update",
|
|
"section": "right"
|
|
},
|
|
{
|
|
"id": "powerMenuButton",
|
|
"text": I18n.tr("Power", "noun, power menu widget name, shutdown and reboot actions"),
|
|
"description": I18n.tr("Display the power system menu"),
|
|
"icon": "power_settings_new",
|
|
"section": "right"
|
|
}
|
|
]
|
|
|
|
readonly property var optionFiles: ({
|
|
"launcherButton": "LauncherButtonOptions.qml",
|
|
"workspaceSwitcher": "WorkspaceSwitcherOptions.qml",
|
|
"clock": "ClockOptions.qml",
|
|
"music": "MusicOptions.qml",
|
|
"focusedWindow": "FocusedWindowOptions.qml",
|
|
"runningApps": "RunningAppsOptions.qml",
|
|
"appsDock": "AppsDockOptions.qml",
|
|
"systemTray": "SystemTrayOptions.qml",
|
|
"battery": "BatteryOptions.qml",
|
|
"controlCenterButton": "ControlCenterOptions.qml",
|
|
"privacyIndicator": "PrivacyOptions.qml",
|
|
"keyboard_layout_name": "KeyboardLayoutOptions.qml",
|
|
"cpuUsage": "SystemMonitorOptions.qml",
|
|
"cpuTemp": "SystemMonitorOptions.qml",
|
|
"memUsage": "SystemMonitorOptions.qml",
|
|
"gpuTemp": "SystemMonitorOptions.qml",
|
|
"diskUsage": "SystemMonitorOptions.qml",
|
|
"network_speed_monitor": "NetworkMonitorOptions.qml",
|
|
"systemUpdate": "SystemUpdateOptions.qml",
|
|
"island": "IslandOptions.qml"
|
|
})
|
|
|
|
function get(id) {
|
|
return widgets.find(widget => widget.id === id) ?? null;
|
|
}
|
|
|
|
function optionsFile(id) {
|
|
return optionFiles[id] ?? "";
|
|
}
|
|
|
|
function hasOptions(id) {
|
|
return optionFiles[id] !== undefined;
|
|
}
|
|
|
|
// Every widget reaches the general options page (placement); spacers and separators configure inline on their row.
|
|
function configurable(item) {
|
|
return !!item?.pluginId || !["spacer", "separator"].includes(item?.id);
|
|
}
|
|
}
|