Address momus review: fix icons, vertical layout, popup coordination

- Replace nerd font glyphs that were stripped during the initial widget
  writes with verified codepoints sourced from the JetBrains Mono Nerd
  Font cmap (cpu-64-bit, scale-balance, notification-clear-all, etc).
- systemStats now switches to a Column layout when the bar is vertical
  so the widget no longer overflows a 28px-wide side bar.
- Remove notificationCenter from defaults: it registers a notification
  server and would collide with the mako daemon Omarchy autostarts.
- PopupCard owns the popout coordinator lifecycle and delegates close to
  its widget owner when provided; calendar and media now pass owner.
- brightness debounces brightnessctl writes through a coalescing timer
  to avoid spawning a process per slider tick.
- audioPanel tracks unfiltered Pipewire sinks/streams via PwObjectTracker
  so audio metadata becomes available before filtering.
- ModuleSlot re-injects bar/moduleName/settings whenever the bar config
  serial changes so widget settings update live with bar.json.
- Guard null bar references in workspacesPro and systemStats components
  that are constructed before bar injection.
This commit is contained in:
Ryan Hughes
2026-05-14 02:21:47 -04:00
parent 221e0e1fcc
commit fe73986a01
13 changed files with 152 additions and 76 deletions
+14 -5
View File
@@ -1104,11 +1104,20 @@ ShellRoot {
active: slot.qmlCustom || slot.firstParty
source: slot.qmlCustom ? root.customModuleSource(slot.moduleName) : (slot.firstParty ? slot.firstPartySource : "")
anchors.fill: parent
onLoaded: {
if (item && "bar" in item) item.bar = root
if (item && "moduleName" in item) item.moduleName = slot.moduleName
if (item && "settings" in item) item.settings = root.moduleSettings(slot.moduleName)
}
onLoaded: slot.injectProps()
}
function injectProps() {
var target = qmlLoader.item
if (!target) return
if ("bar" in target) target.bar = root
if ("moduleName" in target) target.moduleName = moduleName
if ("settings" in target) target.settings = root.moduleSettings(moduleName)
}
Connections {
target: root
function onBarConfigSerialChanged() { slot.injectProps() }
}
Component {