Each layout entry is now an object — {id, ...inline settings} — instead
of a (name, separate modules map) pair. Multiple instances of the same
widget are trivially supported (spacer is the main beneficiary). Settings
travel with the entry, so reordering keeps them attached.
shell.qml:
- normalizeLayout converts string entries to {id} and drops invalid ones
- ModuleSlot binds to a full entry; moduleName and moduleSettings derive
from it via entryId/entrySettings helpers
- centerAnchor lookup walks layoutEntries directly
- builtinBarConfig defaults use the object form
- README + bar-defaults.json updated to the new schema
bar-settings/ (new Quickshell config):
- Top toolbar with Reset / Save and Position / centerAnchor dropdowns
- Three section editors (left/center/right) with current widgets shown
as cards: name + description + move up/down/settings/remove buttons
- '+ Add widget' menu per section, sorted alphabetically by display name
(only spacer can repeat; everything else is one per bar)
- Per-widget settings dialog (FloatingWindow) loads an inline schema for
widgets in the catalog. Initial schemas: spacer (size), calendar
(formats), brightness (step)
- FileView { atomicWrites } writes to ~/.config/omarchy/bar.json on Save
omarchy-launch-bar-settings + hypr window rules pin the settings window
to a 760px floating square. controlCenter gains a 'Customize bar…' button
that launches it.
37 lines
955 B
JSON
37 lines
955 B
JSON
{
|
|
"position": "top",
|
|
"fontFamily": "JetBrainsMono Nerd Font",
|
|
"centerAnchor": "calendar",
|
|
"layout": {
|
|
"left": [
|
|
{ "id": "omarchy" },
|
|
{ "id": "workspacesPro" },
|
|
{ "id": "activeWindow" }
|
|
],
|
|
"center": [
|
|
{ "id": "media" },
|
|
{ "id": "calendar", "format": "dddd HH:mm", "formatAlt": "dd MMMM 'W'ww yyyy", "verticalFormat": "HH\n—\nmm" },
|
|
{ "id": "weatherFlyout" },
|
|
{ "id": "update" },
|
|
{ "id": "voxtype" },
|
|
{ "id": "screenRecording" },
|
|
{ "id": "idle" },
|
|
{ "id": "notifications" }
|
|
],
|
|
"right": [
|
|
{ "id": "tray" },
|
|
{ "id": "systemStats" },
|
|
{ "id": "microphone" },
|
|
{ "id": "bluetoothPanel" },
|
|
{ "id": "networkPanel" },
|
|
{ "id": "audioPanel" },
|
|
{ "id": "nightLight" },
|
|
{ "id": "brightness" },
|
|
{ "id": "powerProfile" },
|
|
{ "id": "battery" },
|
|
{ "id": "controlCenter" },
|
|
{ "id": "powerMenu" }
|
|
]
|
|
}
|
|
}
|