Namespace omarchy plugins
This commit is contained in:
+34
-2
@@ -42,6 +42,34 @@ QtObject {
|
||||
return value !== null && typeof value === "object" && !Array.isArray(value)
|
||||
}
|
||||
|
||||
readonly property var builtinWidgetAliases: ({
|
||||
"Omarchy": "omarchy.menu",
|
||||
"Workspaces": "omarchy.workspaces",
|
||||
"Media": "omarchy.media",
|
||||
"AudioPanel": "omarchy.audio",
|
||||
"MonitorPanel": "omarchy.monitor",
|
||||
"NetworkPanel": "omarchy.network",
|
||||
"PowerPanel": "omarchy.power",
|
||||
"BluetoothPanel": "omarchy.bluetooth",
|
||||
"Clock": "omarchy.clock",
|
||||
"Indicators": "omarchy.indicators",
|
||||
"NotificationCenter": "omarchy.notifications",
|
||||
"SystemUpdate": "omarchy.system-update",
|
||||
"SystemStats": "omarchy.system-stats",
|
||||
"Tray": "omarchy.tray",
|
||||
"Weather": "omarchy.weather",
|
||||
"Microphone": "omarchy.microphone",
|
||||
"ActiveWindow": "omarchy.active-window",
|
||||
"KeyboardLayout": "omarchy.keyboard-layout",
|
||||
"LockKeys": "omarchy.lock-keys",
|
||||
"Spacer": "omarchy.spacer"
|
||||
})
|
||||
|
||||
function canonicalWidgetId(id) {
|
||||
var key = String(id || "")
|
||||
return builtinWidgetAliases[key] || key
|
||||
}
|
||||
|
||||
// Best-effort base64 decode. Returns "" on parse failure rather than
|
||||
// surfacing garbage downstream.
|
||||
function decodeBase64(value) {
|
||||
@@ -72,8 +100,12 @@ QtObject {
|
||||
// so the two never drift. Entries are deep-cloned to decouple from the
|
||||
// input config; consumers can mutate without leaking back to shell.json.
|
||||
function normalizeLayoutEntry(entry) {
|
||||
if (typeof entry === "string") return { id: entry }
|
||||
if (isPlainObject(entry) && entry.id) return cloneJson(entry)
|
||||
if (typeof entry === "string") return { id: canonicalWidgetId(entry) }
|
||||
if (isPlainObject(entry) && entry.id) {
|
||||
var copy = cloneJson(entry)
|
||||
copy.id = canonicalWidgetId(copy.id)
|
||||
return copy
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user