Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

slab/menuband: drop self-test row, color MIDI label, "Keyboard & Mouse" + "Mouse Only"

- Removed the textual MIDI loopback self-test row from the popover
("✓ MIDI port working (Nms)" / "✗ MIDI loopback failed"). The
property is kept but never added to the stack.
- Test outcome now surfaces as the inline "MIDI" label color in the
title row: green when the loopback succeeded, red when it failed,
default secondaryLabel otherwise. Status without textual chrome.
- Input section title: "Input" → "Keyboard & Mouse".
- First segment label: "Pointer" → "Mouse Only".

Site:
- Bump download cache-buster query string to ?v=b83144b.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

+15 -19
+14 -18
slab/menuband/Sources/MenuBand/MenuBandPopover.swift
··· 60 60 61 61 private var inputSegmented: HoverSegmentedControl! 62 62 private var midiSwitch: NSSwitch! 63 - private var midiSelfTestLabel: NSTextField! 63 + private var midiInlineLabel: NSTextField! 64 + private var midiSelfTestLabel: NSTextField! // legacy — created but never added to stack 64 65 private var instrumentList: InstrumentListView! 65 66 private var octaveStepper: NSStepper! 66 67 private var octaveLabel: NSTextField! ··· 182 183 midiSwitch = NSSwitch() 183 184 midiSwitch.target = self 184 185 midiSwitch.action = #selector(midiSwitchToggled(_:)) 185 - let midiInlineLabel = NSTextField(labelWithString: "MIDI") 186 + midiInlineLabel = NSTextField(labelWithString: "MIDI") 186 187 midiInlineLabel.font = NSFont.systemFont(ofSize: 10, weight: .semibold) 187 188 midiInlineLabel.textColor = .secondaryLabelColor 188 189 titleRow.setCustomSpacing(12, after: rightArrow) ··· 237 238 // Hovering a segment previews that mode in the menubar piano (range 238 239 // shrinks/grows, letter labels appear) and lets you tap keys for a 239 240 // quick demo without committing. 240 - let inputLabel = NSTextField(labelWithString: "Input") 241 + let inputLabel = NSTextField(labelWithString: "Keyboard & Mouse") 241 242 inputLabel.font = NSFont.systemFont(ofSize: 11, weight: .semibold) 242 243 inputLabel.textColor = .labelColor 243 244 stack.addArrangedSubview(inputLabel) 244 245 245 246 inputSegmented = HoverSegmentedControl( 246 - labels: ["Pointer", "Notepat.com", "Ableton"], 247 + labels: ["Mouse Only", "Notepat.com", "Ableton"], 247 248 trackingMode: .selectOne, 248 249 target: self, 249 250 action: #selector(inputModeChanged(_:)) ··· 275 276 276 277 // MIDI self-test status — populated by the controller after each 277 278 // toggle-on. Empty when MIDI is off. 279 + // Legacy textual self-test label is allocated but never added to 280 + // the popover stack — the test outcome is surfaced as the MIDI 281 + // label color in the title row instead (green = ok, red = failed). 278 282 midiSelfTestLabel = NSTextField(labelWithString: "") 279 - midiSelfTestLabel.font = NSFont.systemFont(ofSize: 10.5) 280 - midiSelfTestLabel.textColor = .secondaryLabelColor 281 - midiSelfTestLabel.lineBreakMode = .byWordWrapping 282 - midiSelfTestLabel.maximumNumberOfLines = 2 283 - stack.addArrangedSubview(midiSelfTestLabel) 284 283 285 284 stack.addArrangedSubview(makeSeparator()) 286 285 ··· 449 448 } 450 449 } 451 450 451 + /// Reflect the MIDI loopback self-test status as the inline "MIDI" 452 + /// label's color. No textual chrome — the color is the indicator. 452 453 private func updateSelfTestLabel(state: MenuBandController.MIDISelfTest) { 453 - guard let label = midiSelfTestLabel else { return } 454 + guard let label = midiInlineLabel else { return } 454 455 switch state { 455 - case .unknown: 456 - label.stringValue = "" 457 - case .running: 458 - label.stringValue = "Testing MIDI port…" 459 - label.textColor = .secondaryLabelColor 460 - case .ok(let ms): 461 - label.stringValue = "✓ MIDI port working (loopback \(ms)ms)" 456 + case .ok: 462 457 label.textColor = .systemGreen 463 458 case .failed: 464 - label.stringValue = "✗ MIDI loopback failed — port may be blocked" 465 459 label.textColor = .systemRed 460 + case .running, .unknown: 461 + label.textColor = .secondaryLabelColor 466 462 } 467 463 } 468 464
+1 -1
system/public/menuband/index.html
··· 879 879 <p class="tagline">Built-in macOS instruments, in the menu bar.</p> 880 880 881 881 <div class="button-row"> 882 - <a class="aqua" href="https://assets.aesthetic.computer/menuband/Menu-Band-0.1.dmg?v=c8e113f" download> 882 + <a class="aqua" href="https://assets.aesthetic.computer/menuband/Menu-Band-0.1.dmg?v=b83144b" download> 883 883 Download 884 884 <small>0.1 · Apple Silicon · 1.1 MB</small> 885 885 </a>