Help us shape the future of Go! Take the 2026 Go Developer Survey

ui

package
v0.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2026 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func LogoCells

func LogoCells(a session.Agent, bg string) string

LogoCells renders the placeholder cells for an agent's mark. The foreground colour is not decorative: its RGB channels carry the image id.

func LogosSupported

func LogosSupported() bool

LogosSupported reports whether the terminal can composite Kitty graphics. tmux is excluded: it does not pass unicode placeholders through, so a session pane would show mojibake. orbit's dashboard runs outside tmux, so this only disables logos in the unusual case of running orbit itself inside one.

func ProbeLogos

func ProbeLogos(w io.Writer) error

ProbeLogos prints the marks next to their text fallback so the rendering can be eyeballed in a real terminal — there is no in-band way to ask whether the image actually appeared.

func TransmitLogos

func TransmitLogos(w io.Writer) error

TransmitLogos uploads each mark once and creates a virtual placement for it. Virtual placements aren't drawn anywhere themselves — they only become visible where placeholder cells reference them, which is what lets the images flow with the text instead of being pinned to screen coordinates.

Types

type IconMode

type IconMode int

IconMode picks how an agent is identified in the list.

const (
	IconText IconMode = iota // cl / cx / cp — works in any terminal
)

func ResolveIconMode

func ResolveIconMode(mode string) IconMode

ResolveIconMode turns the configured string into a mode. Everything except an explicit "logo"/"auto" on a terminal that composites Kitty graphics ends up as text: a wrong guess renders mojibake rather than degrading quietly, so the capability is detected rather than assumed — which is what makes "auto" safe to ship as the default.

type Model

type Model struct {
	// contains filtered or unexported fields
}

func New

func New(cfg config.Config, attachOverride, version string) *Model

New builds the dashboard. The attach override comes from a flag; empty means use whatever the config says.

func (*Model) Close

func (m *Model) Close()

Close releases the notifier's handle on the terminal.

func (*Model) Init

func (m *Model) Init() tea.Cmd

func (*Model) Relaunch added in v0.2.2

func (m *Model) Relaunch() string

Relaunch is the binary to exec once the program has exited, or "" to just quit. Set when an update installed successfully: the process running now is the old version, and only an exec makes the new one take effect.

func (*Model) Update

func (m *Model) Update(msg tea.Msg) (tea.Model, tea.Cmd)

func (*Model) View

func (m *Model) View() tea.View

View wraps the rendered frame in the declarative surface Bubble Tea v2 wants: alt screen, window title, and a terminal-level progress indicator. Ghostty paints that indicator on the tab itself, so a session wanting attention is visible even when orbit's tab isn't the one you're looking at.

func (*Model) Warn added in v0.2.0

func (m *Model) Warn(s string)

Warn seeds the status line before the first frame, for startup notices — stderr would be wiped the moment the alt screen comes up.

type Notifier

type Notifier struct {
	// contains filtered or unexported fields
}

Notifier fires a desktop notification when a session starts wanting your attention. It uses OSC 9, which Ghostty implements natively — writing the sequence to the controlling terminal is cheaper and quieter than shelling out to osascript, and it inherits Ghostty's own notification settings.

func NewNotifier

func NewNotifier(enabled bool) *Notifier

func (*Notifier) Close

func (n *Notifier) Close()

func (*Notifier) Update

func (n *Notifier) Update(sessions []*session.Session)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL