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
+55 -22
View File
@@ -119,30 +119,63 @@ Item {
}
}
implicitWidth: row.implicitWidth + 6
implicitHeight: bar ? bar.barSize : 26
readonly property bool vertical: bar ? bar.vertical : false
Row {
id: row
implicitWidth: vertical ? (bar ? bar.barSize : 28) : (statLayout.item ? statLayout.item.implicitWidth + 6 : 0)
implicitHeight: vertical ? (statLayout.item ? statLayout.item.implicitHeight + 6 : 0) : (bar ? bar.barSize : 26)
readonly property color statColor: bar ? bar.foreground : "#cacccc"
readonly property string statFont: bar ? bar.fontFamily : "JetBrainsMono Nerd Font"
Loader {
id: statLayout
anchors.centerIn: parent
spacing: 8
sourceComponent: root.vertical ? statColumn : statRow
}
StatPill {
glyph: "󰍛"
percent: root.cpuPercent
history: root.cpuHistory
vertical: root.bar.vertical
barFg: root.bar.foreground
fontFamily: root.bar.fontFamily
Component {
id: statRow
Row {
spacing: 8
StatPill {
glyph: "󰻠"
percent: root.cpuPercent
history: root.cpuHistory
vertical: false
barFg: root.statColor
fontFamily: root.statFont
}
StatPill {
glyph: "󰍛"
percent: root.memPercent
history: root.memHistory
vertical: false
barFg: root.statColor
fontFamily: root.statFont
}
}
}
StatPill {
glyph: ""
percent: root.memPercent
history: root.memHistory
vertical: root.bar.vertical
barFg: root.bar.foreground
fontFamily: root.bar.fontFamily
Component {
id: statColumn
Column {
spacing: 4
StatPill {
glyph: "󰻠"
percent: root.cpuPercent
history: root.cpuHistory
vertical: true
barFg: root.statColor
fontFamily: root.statFont
}
StatPill {
glyph: "󰍛"
percent: root.memPercent
history: root.memHistory
vertical: true
barFg: root.statColor
fontFamily: root.statFont
}
}
}
@@ -184,7 +217,7 @@ Item {
title: "CPU"
value: Math.round(root.cpuPercent) + "%"
history: root.cpuHistory
barFg: root.bar.foreground
barFg: root.statColor
fontFamily: root.bar.fontFamily
width: parent.width
}
@@ -193,7 +226,7 @@ Item {
title: "Memory"
value: Math.round(root.memPercent) + "%"
history: root.memHistory
barFg: root.bar.foreground
barFg: root.statColor
fontFamily: root.bar.fontFamily
width: parent.width
}
@@ -217,7 +250,7 @@ Item {
Common.PillButton {
width: parent.width
iconText: "󰍛"
iconText: "󰆍"
text: "Open btop"
foreground: root.bar.foreground
horizontalPadding: 10