From 7d6f33c1438f18a58ed7cd33f5fe302a40c4128c Mon Sep 17 00:00:00 2001
From: Lawrence Chen <54008264+lawrencecchen@users.noreply.github.com>
Date: Mon, 9 Feb 2026 14:18:33 -0800
Subject: [PATCH] Sidebar status as text + detect git HEAD changes instantly
(#30)
* Sidebar status as text + detect git HEAD changes instantly
- Replace sidebar status pills with plain text + show more/less toggle
for a cleaner, more readable sidebar layout
- Watch .git/HEAD mtime in zsh precmd to detect branch changes from
aliases (gco), tools (gh pr checkout), etc. without waiting for the
3s polling interval
- Fix NSImage shared instance mutation in DraggableFolderNSView by
copying before resizing to prevent layout side-effects
- Fix set_status --tab flag being swallowed by -- stop token via
new parseOptionsNoStop parser
- Update sidebar test to cover alias-based branch switching
* Append status text to notification body automatically
When creating notifications, include the tab's current status entries
in the notification body so users see context (e.g. git branch, ports)
alongside the notification message.
* Add screenshot to README
---
README.md | 4 +
.../cmux-zsh-integration.zsh | 84 ++++++++++
Sources/ContentView.swift | 145 ++++++++----------
Sources/TerminalController.swift | 102 +++++++++++-
Sources/cmuxApp.swift | 2 +-
docs/assets/screenshot.png | Bin 0 -> 1617262 bytes
tests/test_sidebar_cwd_git.py | 10 +-
7 files changed, 255 insertions(+), 92 deletions(-)
create mode 100644 docs/assets/screenshot.png
diff --git a/README.md b/README.md
index c804e44b..071bd186 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,10 @@
+
+
+
+
## Features
- **Native macOS app** — Built with Swift and AppKit, not Electron. Fast startup, low memory.
diff --git a/Resources/shell-integration/cmux-zsh-integration.zsh b/Resources/shell-integration/cmux-zsh-integration.zsh
index a70c9ed8..1f50aa21 100644
--- a/Resources/shell-integration/cmux-zsh-integration.zsh
+++ b/Resources/shell-integration/cmux-zsh-integration.zsh
@@ -30,12 +30,79 @@ typeset -g _CMUX_GIT_LAST_PWD=""
typeset -g _CMUX_GIT_LAST_RUN=0
typeset -g _CMUX_GIT_JOB_PID=""
typeset -g _CMUX_GIT_FORCE=0
+typeset -g _CMUX_GIT_HEAD_LAST_PWD=""
+typeset -g _CMUX_GIT_HEAD_PATH=""
+typeset -g _CMUX_GIT_HEAD_MTIME=0
+typeset -g _CMUX_HAVE_ZSTAT=0
typeset -g _CMUX_PORTS_LAST_RUN=0
typeset -g _CMUX_PORTS_JOB_PID=""
typeset -g _CMUX_CMD_START=0
typeset -g _CMUX_TTY_NAME=""
+_cmux_ensure_zstat() {
+ # zstat is substantially cheaper than spawning external `stat`.
+ if (( _CMUX_HAVE_ZSTAT != 0 )); then
+ return 0
+ fi
+ if zmodload -F zsh/stat b:zstat 2>/dev/null; then
+ _CMUX_HAVE_ZSTAT=1
+ return 0
+ fi
+ _CMUX_HAVE_ZSTAT=-1
+ return 1
+}
+
+_cmux_git_resolve_head_path() {
+ # Resolve the HEAD file path without invoking git (fast; works for worktrees).
+ local dir="$PWD"
+ while true; do
+ if [[ -d "$dir/.git" ]]; then
+ print -r -- "$dir/.git/HEAD"
+ return 0
+ fi
+ if [[ -f "$dir/.git" ]]; then
+ local line gitdir
+ line="$(<"$dir/.git")"
+ if [[ "$line" == gitdir:* ]]; then
+ gitdir="${line#gitdir:}"
+ gitdir="${gitdir## }"
+ gitdir="${gitdir%% }"
+ [[ -n "$gitdir" ]] || return 1
+ [[ "$gitdir" != /* ]] && gitdir="$dir/$gitdir"
+ print -r -- "$gitdir/HEAD"
+ return 0
+ fi
+ fi
+ [[ "$dir" == "/" || -z "$dir" ]] && break
+ dir="${dir:h}"
+ done
+ return 1
+}
+
+_cmux_git_head_mtime() {
+ local head_path="$1"
+ [[ -n "$head_path" && -f "$head_path" ]] || { print -r -- 0; return 0; }
+
+ if _cmux_ensure_zstat; then
+ typeset -A st
+ if zstat -H st +mtime -- "$head_path" 2>/dev/null; then
+ print -r -- "${st[mtime]:-0}"
+ return 0
+ fi
+ fi
+
+ # Fallback for environments where zsh/stat isn't available.
+ if command -v stat >/dev/null 2>&1; then
+ local mtime
+ mtime="$(stat -f %m "$head_path" 2>/dev/null || stat -c %Y "$head_path" 2>/dev/null || echo 0)"
+ print -r -- "$mtime"
+ return 0
+ fi
+
+ print -r -- 0
+}
+
_cmux_ports_scan() {
[[ -n "$CMUX_PANEL_ID" ]] || return 0
@@ -173,6 +240,23 @@ _cmux_precmd() {
# Git branch/dirty: update immediately on directory change, otherwise every ~3s.
local should_git=0
+
+ # Git branch can change without a `git ...`-prefixed command (aliases like `gco`,
+ # tools like `gh pr checkout`, etc.). Detect HEAD changes and force a refresh.
+ if [[ "$pwd" != "$_CMUX_GIT_HEAD_LAST_PWD" ]]; then
+ _CMUX_GIT_HEAD_LAST_PWD="$pwd"
+ _CMUX_GIT_HEAD_PATH="$(_cmux_git_resolve_head_path 2>/dev/null || true)"
+ _CMUX_GIT_HEAD_MTIME=0
+ fi
+ if [[ -n "$_CMUX_GIT_HEAD_PATH" ]]; then
+ local head_mtime
+ head_mtime="$(_cmux_git_head_mtime "$_CMUX_GIT_HEAD_PATH" 2>/dev/null || echo 0)"
+ if [[ -n "$head_mtime" && "$head_mtime" != 0 && "$head_mtime" != "$_CMUX_GIT_HEAD_MTIME" ]]; then
+ _CMUX_GIT_HEAD_MTIME="$head_mtime"
+ should_git=1
+ fi
+ fi
+
if [[ "$pwd" != "$_CMUX_GIT_LAST_PWD" ]]; then
should_git=1
elif (( _CMUX_GIT_FORCE )); then
diff --git a/Sources/ContentView.swift b/Sources/ContentView.swift
index a1001b1b..2710515c 100644
--- a/Sources/ContentView.swift
+++ b/Sources/ContentView.swift
@@ -554,7 +554,8 @@ struct TabItemView: View {
if lhs.timestamp != rhs.timestamp { return lhs.timestamp > rhs.timestamp }
return lhs.key < rhs.key
}),
- isActive: isActive
+ isActive: isActive,
+ onFocus: { updateSelection() }
)
.transition(.opacity.combined(with: .move(edge: .top)))
}
@@ -921,90 +922,65 @@ struct TabItemView: View {
}
private struct SidebarStatusPillsRow: View {
+ // Renamed/replaced: we now render status as normal text with an optional expand/collapse.
+ // Kept as a separate view for minimal churn in call sites.
let entries: [SidebarStatusEntry]
let isActive: Bool
+ let onFocus: () -> Void
- private let maxVisiblePills = 3
+ @State private var isExpanded: Bool = false
var body: some View {
- let visible = Array(entries.prefix(maxVisiblePills))
- let overflow = max(0, entries.count - visible.count)
-
- ScrollView(.horizontal, showsIndicators: false) {
- HStack(spacing: 6) {
- ForEach(visible) { entry in
- SidebarStatusPill(entry: entry, isActive: isActive)
- }
- if overflow > 0 {
- SidebarStatusOverflowPill(count: overflow, isActive: isActive)
- }
- }
- .padding(.vertical, 1)
- }
- .frame(maxWidth: .infinity, alignment: .leading)
- }
-}
-
-private struct SidebarStatusPill: View {
- let entry: SidebarStatusEntry
- let isActive: Bool
-
- var body: some View {
- HStack(spacing: 4) {
- if let icon = entry.icon, !icon.isEmpty {
- Image(systemName: icon)
- .font(.system(size: 8, weight: .semibold))
- .foregroundColor(iconColor)
- }
- Text("\(entry.key)=\(entry.value)")
- .font(.system(size: 9, design: .monospaced))
- .foregroundColor(textColor)
- .lineLimit(1)
+ VStack(alignment: .leading, spacing: 2) {
+ Text(statusText)
+ .font(.system(size: 10))
+ .foregroundColor(isActive ? .white.opacity(0.8) : .secondary)
+ .lineLimit(isExpanded ? nil : 3)
.truncationMode(.tail)
- .frame(maxWidth: 150, alignment: .leading)
+ .multilineTextAlignment(.leading)
+ .frame(maxWidth: .infinity, alignment: .leading)
+ .contentShape(Rectangle())
+ .onTapGesture {
+ onFocus()
+ guard shouldShowToggle else { return }
+ withAnimation(.easeInOut(duration: 0.15)) {
+ isExpanded.toggle()
+ }
+ }
+
+ if shouldShowToggle {
+ Button(isExpanded ? "Show less" : "Show more") {
+ onFocus()
+ withAnimation(.easeInOut(duration: 0.15)) {
+ isExpanded.toggle()
+ }
+ }
+ .buttonStyle(.plain)
+ .font(.system(size: 10, weight: .semibold))
+ .foregroundColor(isActive ? .white.opacity(0.65) : .secondary.opacity(0.9))
+ .frame(maxWidth: .infinity, alignment: .leading)
+ }
}
- .padding(.horizontal, 6)
- .padding(.vertical, 3)
- .background(
- Capsule()
- .fill(backgroundColor)
- )
- .help("\(entry.key)=\(entry.value)")
+ .help(statusText)
}
- private var backgroundColor: Color {
- isActive ? .white.opacity(0.15) : .secondary.opacity(0.14)
+ private var statusText: String {
+ entries
+ .map { entry in
+ // Render like notification text: show the status contents only.
+ // If the value is empty, fall back to the key so the line isn't blank.
+ let value = entry.value.trimmingCharacters(in: .whitespacesAndNewlines)
+ if !value.isEmpty { return value }
+ return entry.key
+ }
+ .joined(separator: "\n")
}
- private var textColor: Color {
- isActive ? .white.opacity(0.9) : .secondary
- }
-
- private var iconColor: Color {
- guard !isActive else { return .white.opacity(0.85) }
- if let hex = entry.color, let nsColor = NSColor(hex: hex) {
- return Color(nsColor: nsColor)
- }
- return .secondary
- }
-}
-
-private struct SidebarStatusOverflowPill: View {
- let count: Int
- let isActive: Bool
-
- var body: some View {
- Text("+\(count)")
- .font(.system(size: 9, weight: .semibold, design: .monospaced))
- .foregroundColor(isActive ? .white.opacity(0.85) : .secondary)
- .lineLimit(1)
- .padding(.horizontal, 6)
- .padding(.vertical, 3)
- .background(
- Capsule()
- .fill(isActive ? .white.opacity(0.15) : .secondary.opacity(0.14))
- )
- .help("\(count) more status entries")
+ private var shouldShowToggle: Bool {
+ // We can't reliably measure truncation in SwiftUI without extra layout plumbing.
+ // Heuristic: show toggle when there are multiple entries or the text is long enough
+ // that it likely wraps past 3 lines in the sidebar.
+ entries.count > 1 || statusText.count > 120
}
}
@@ -1096,6 +1072,7 @@ private struct DraggableFolderIconRepresentable: NSViewRepresentable {
private final class DraggableFolderNSView: NSView, NSDraggingSource {
var directory: String
private var imageView: NSImageView!
+ private static let iconSide: CGFloat = 16
init(directory: String) {
self.directory = directory
@@ -1121,9 +1098,15 @@ private final class DraggableFolderNSView: NSView, NSDraggingSource {
updateIcon()
}
+ override var intrinsicContentSize: NSSize {
+ NSSize(width: Self.iconSide, height: Self.iconSide)
+ }
+
func updateIcon() {
- let icon = NSWorkspace.shared.icon(forFile: directory)
- icon.size = NSSize(width: 16, height: 16)
+ // NSWorkspace may return cached/shared NSImage instances. Never mutate the shared image size,
+ // since other callsites (e.g. dragging preview) may resize it and inadvertently affect layout.
+ let icon = (NSWorkspace.shared.icon(forFile: directory).copy() as? NSImage) ?? NSImage()
+ icon.size = NSSize(width: Self.iconSide, height: Self.iconSide)
imageView.image = icon
}
@@ -1135,7 +1118,7 @@ private final class DraggableFolderNSView: NSView, NSDraggingSource {
let fileURL = URL(fileURLWithPath: directory)
let draggingItem = NSDraggingItem(pasteboardWriter: fileURL as NSURL)
- let iconImage = NSWorkspace.shared.icon(forFile: directory)
+ let iconImage = (NSWorkspace.shared.icon(forFile: directory).copy() as? NSImage) ?? NSImage()
iconImage.size = NSSize(width: 32, height: 32)
draggingItem.setDraggingFrame(bounds, contents: iconImage)
@@ -1164,8 +1147,8 @@ private final class DraggableFolderNSView: NSView, NSDraggingSource {
// Add path components (current dir at top, root at bottom - matches native macOS)
for pathURL in pathComponents {
- let icon = NSWorkspace.shared.icon(forFile: pathURL.path)
- icon.size = NSSize(width: 16, height: 16)
+ let icon = (NSWorkspace.shared.icon(forFile: pathURL.path).copy() as? NSImage) ?? NSImage()
+ icon.size = NSSize(width: Self.iconSide, height: Self.iconSide)
let displayName: String
if pathURL.path == "/" {
@@ -1188,8 +1171,8 @@ private final class DraggableFolderNSView: NSView, NSDraggingSource {
// Add computer name at the bottom (like native proxy icon)
let computerName = Host.current().localizedName ?? ProcessInfo.processInfo.hostName
- let computerIcon = NSImage(named: NSImage.computerName) ?? NSImage()
- computerIcon.size = NSSize(width: 16, height: 16)
+ let computerIcon = (NSImage(named: NSImage.computerName)?.copy() as? NSImage) ?? NSImage()
+ computerIcon.size = NSSize(width: Self.iconSide, height: Self.iconSide)
let computerItem = NSMenuItem(title: computerName, action: #selector(openComputer(_:)), keyEquivalent: "")
computerItem.target = self
diff --git a/Sources/TerminalController.swift b/Sources/TerminalController.swift
index 3e812ec5..1bd0e44f 100644
--- a/Sources/TerminalController.swift
+++ b/Sources/TerminalController.swift
@@ -298,7 +298,7 @@ class TerminalController {
clear_notifications - Clear all notifications
set_app_focus - Override app focus state
simulate_app_active - Trigger app active handler
- set_status [--icon=X] [--color=#hex] - Set a status entry
+ set_status [--icon=X] [--color=#hex] [--tab=X] - Set a status entry
clear_status [--tab=X] - Remove a status entry
list_status [--tab=X] - List all status entries
log [--level=X] [--source=X] [--tab=X] -- - Append a log entry
@@ -490,14 +490,19 @@ class TerminalController {
result = "ERROR: No tab selected"
return
}
+ guard let tab = tabManager.tabs.first(where: { $0.id == tabId }) else {
+ result = "ERROR: Tab not found"
+ return
+ }
let surfaceId = tabManager.focusedSurfaceId(for: tabId)
let (title, subtitle, body) = parseNotificationPayload(args)
+ let bodyWithStatus = appendStatusTextIfPresent(body: body, tab: tab)
TerminalNotificationStore.shared.addNotification(
tabId: tabId,
surfaceId: surfaceId,
title: title,
subtitle: subtitle,
- body: body
+ body: bodyWithStatus
)
}
return result
@@ -524,12 +529,13 @@ class TerminalController {
return
}
let (title, subtitle, body) = parseNotificationPayload(payload)
+ let bodyWithStatus = appendStatusTextIfPresent(body: body, tab: tab)
TerminalNotificationStore.shared.addNotification(
tabId: tabId,
surfaceId: surfaceId,
title: title,
subtitle: subtitle,
- body: body
+ body: bodyWithStatus
)
}
return result
@@ -559,17 +565,43 @@ class TerminalController {
return
}
let (title, subtitle, body) = parseNotificationPayload(payload)
+ let bodyWithStatus = appendStatusTextIfPresent(body: body, tab: tab)
TerminalNotificationStore.shared.addNotification(
tabId: tab.id,
surfaceId: panelId,
title: title,
subtitle: subtitle,
- body: body
+ body: bodyWithStatus
)
}
return result
}
+ private func appendStatusTextIfPresent(body: String, tab: Tab) -> String {
+ let statusText = statusTextForNotification(tab: tab)
+ guard !statusText.isEmpty else { return body }
+ let trimmedBody = body.trimmingCharacters(in: .whitespacesAndNewlines)
+ if trimmedBody.isEmpty {
+ return statusText
+ }
+ return body + "\n\n" + statusText
+ }
+
+ private func statusTextForNotification(tab: Tab) -> String {
+ let entries = tab.statusEntries.values.sorted(by: { (lhs, rhs) in
+ if lhs.timestamp != rhs.timestamp { return lhs.timestamp > rhs.timestamp }
+ return lhs.key < rhs.key
+ })
+
+ let lines = entries.compactMap { entry -> String? in
+ let value = entry.value.trimmingCharacters(in: .whitespacesAndNewlines)
+ if !value.isEmpty { return value }
+ let key = entry.key.trimmingCharacters(in: .whitespacesAndNewlines)
+ return key.isEmpty ? nil : key
+ }
+ return lines.joined(separator: "\n")
+ }
+
private func listNotifications() -> String {
var result = ""
DispatchQueue.main.sync {
@@ -1010,9 +1042,9 @@ class TerminalController {
// MARK: - Option Parsing
- private func parseOptions(_ args: String) -> (positional: [String], options: [String: String]) {
+ private func tokenizeArgs(_ args: String) -> [String] {
let trimmed = args.trimmingCharacters(in: .whitespacesAndNewlines)
- guard !trimmed.isEmpty else { return ([], [:]) }
+ guard !trimmed.isEmpty else { return [] }
// Tokenize respecting quoted strings. Support basic backslash escapes inside quotes
// (e.g. \" within "...") so shell integrations can safely escape embedded quotes.
@@ -1072,6 +1104,12 @@ class TerminalController {
if !current.isEmpty {
tokens.append(current)
}
+ return tokens
+ }
+
+ private func parseOptions(_ args: String) -> (positional: [String], options: [String: String]) {
+ let tokens = tokenizeArgs(args)
+ guard !tokens.isEmpty else { return ([], [:]) }
var positional: [String] = []
var options: [String: String] = [:]
@@ -1105,6 +1143,43 @@ class TerminalController {
return (positional, options)
}
+ private func parseOptionsNoStop(_ args: String) -> (positional: [String], options: [String: String]) {
+ // Like parseOptions, but continues parsing `--key` options even after a `--` token.
+ // Used for commands where we never want UI-facing content to accidentally include flags.
+ let tokens = tokenizeArgs(args)
+ guard !tokens.isEmpty else { return ([], [:]) }
+
+ var positional: [String] = []
+ var options: [String: String] = [:]
+ var i = 0
+ while i < tokens.count {
+ let token = tokens[i]
+ if token == "--" {
+ i += 1
+ continue
+ }
+ if token.hasPrefix("--") {
+ if let eqIndex = token.firstIndex(of: "=") {
+ let key = String(token[token.index(token.startIndex, offsetBy: 2).. Tab? {
@@ -1119,7 +1194,9 @@ class TerminalController {
private func setStatus(_ args: String) -> String {
guard tabManager != nil else { return "ERROR: TabManager not available" }
- let parsed = parseOptions(args)
+ // Parse options even if the caller used `--` before/inside the value.
+ // This avoids leaking flags like `--tab` into the stored (and rendered) status text.
+ let parsed = parseOptionsNoStop(args)
guard parsed.positional.count >= 2 else {
return "ERROR: Missing status key or value — usage: set_status [--icon=X] [--color=#hex] [--tab=X]"
}
@@ -1130,7 +1207,16 @@ class TerminalController {
var result = "OK"
DispatchQueue.main.sync {
- guard let tab = resolveTabForReport(args) else {
+ guard let tabManager else { result = "ERROR: TabManager not available"; return }
+ let tab: Tab?
+ if let tabArg = parsed.options["tab"], !tabArg.isEmpty {
+ tab = resolveTab(from: tabArg, tabManager: tabManager)
+ } else if let selectedId = tabManager.selectedTabId {
+ tab = tabManager.tabs.first(where: { $0.id == selectedId })
+ } else {
+ tab = nil
+ }
+ guard let tab else {
result = parsed.options["tab"] != nil ? "ERROR: Tab not found" : "ERROR: No tab selected"
return
}
diff --git a/Sources/cmuxApp.swift b/Sources/cmuxApp.swift
index 1c826fef..8252f2d7 100644
--- a/Sources/cmuxApp.swift
+++ b/Sources/cmuxApp.swift
@@ -962,7 +962,7 @@ struct SettingsView: View {
Text("Sidebar")
.font(.headline)
- Toggle("Show status pills", isOn: $sidebarShowStatusPills)
+ Toggle("Show status", isOn: $sidebarShowStatusPills)
Toggle("Show git branch", isOn: $sidebarShowGitBranch)
Toggle("Show branch icon", isOn: $sidebarShowGitBranchIcon)
.disabled(!sidebarShowGitBranch)
diff --git a/docs/assets/screenshot.png b/docs/assets/screenshot.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc8399e4d2b187c298c41fb38d35bcc572d0ce37
GIT binary patch
literal 1617262
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