summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-06 08:22:17 +0200
committerPaul Buetow <paul@buetow.org>2026-03-06 08:22:17 +0200
commit07dc1db3180d86b5b6fc61563c0a5004098e26cc (patch)
tree6f452534388bd901c7f91d9959126d73cc4ee636
parent4445eefb69a50d178d4c6bd02fd534312d774542 (diff)
Start flame ticks on dashboard entry and use purple selection
-rw-r--r--internal/tui/dashboard/model.go18
-rw-r--r--internal/tui/flamegraph/renderer.go6
2 files changed, 20 insertions, 4 deletions
diff --git a/internal/tui/dashboard/model.go b/internal/tui/dashboard/model.go
index 4cf7c15..ebd0c03 100644
--- a/internal/tui/dashboard/model.go
+++ b/internal/tui/dashboard/model.go
@@ -85,7 +85,17 @@ func NewModelWithConfig(engine SnapshotSource, streamSource *eventstream.RingBuf
// Init starts periodic refresh ticks.
func (m Model) Init() tea.Cmd {
- return tickCmd(m.refreshEvery)
+ cmds := []tea.Cmd{tickCmd(m.refreshEvery)}
+ switch m.activeTab {
+ case TabStream:
+ cmds = append(cmds, streamTickCmd())
+ case TabFlame:
+ cmds = append(cmds, flameTickCmd())
+ }
+ if len(cmds) == 1 {
+ return cmds[0]
+ }
+ return tea.Batch(cmds...)
}
// Update handles ticks, snapshots, tab changes, and resize events.
@@ -108,12 +118,18 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
func() tea.Msg { return messages.StatsTickMsg{Snap: snap} },
)
case streamTickMsg:
+ if !m.focused {
+ return m, nil
+ }
if m.activeTab != TabStream {
return m, nil
}
m.streamModel.Refresh()
return m, streamTickCmd()
case flameTickMsg:
+ if !m.focused {
+ return m, nil
+ }
if m.activeTab != TabFlame {
return m, nil
}
diff --git a/internal/tui/flamegraph/renderer.go b/internal/tui/flamegraph/renderer.go
index 4f376a5..142f78c 100644
--- a/internal/tui/flamegraph/renderer.go
+++ b/internal/tui/flamegraph/renderer.go
@@ -319,10 +319,10 @@ func styleForFrame(idx int, frame tuiFrame, selectedPath string, subtreeSet, mat
}
if isSelected {
- selectedBg := lipgloss.Color("226")
- selectedFg := lipgloss.Color("16")
+ selectedBg := lipgloss.Color("99")
+ selectedFg := lipgloss.Color("15")
if !isDark {
- selectedBg = lipgloss.Color("160")
+ selectedBg = lipgloss.Color("93")
selectedFg = lipgloss.Color("15")
}
return base.Background(selectedBg).Foreground(selectedFg).Bold(true).Underline(true)