Files

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);
}
}