Documentation
¶
Overview ¶
Package bothy carries the data files compiled into the binary.
Templates and profiles are embedded rather than installed alongside the binary so that `bothy` is genuinely one file: there is no data directory to keep in sync, and no way for a partially-copied install to produce a partially-configured workspace.
This lives at the repository root because go:embed can only reach downwards from the package that declares it.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Completions embed.FS
Completions holds the shell completion scripts. Embedded because an installed bothy has no repository to read them from, and the packages that place these files do not reach the install script, `go install`, or Homebrew.
The all: prefix is required: go:embed skips files whose names begin with an underscore, and zsh insists its script be called _bothy.
var Profiles embed.FS
Profiles holds the shipped layout profiles.
var Slots embed.FS
Slots holds the declarative tool and provider definitions. A tool bothy can supply is a file in here and nothing else — see docs/adding-a-provider.md.
var Templates embed.FS
Templates holds every config template, keyed by its path under templates/.
Functions ¶
Types ¶
This section is empty.
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
bothy
command
Command bothy sets up and launches a terminal workspace.
|
Command bothy sets up and launches a terminal workspace. |
|
internal
|
|
|
advice
Package advice holds install instructions for what bothy will not install itself: Ghostty, which ships no binaries and needs root; the agent, whose credentials are not bothy's business; and editors, which are personal.
|
Package advice holds install instructions for what bothy will not install itself: Ghostty, which ships no binaries and needs root; the agent, whose credentials are not bothy's business; and editors, which are personal. |
|
config
Package config is the user's answer to "what should my workspace be": slot choices, theme, and the machine-specific values such as container name and project directory.
|
Package config is the user's answer to "what should my workspace be": slot choices, theme, and the machine-specific values such as container name and project directory. |
|
confine
Package confine runs the agent pane inside a container.
|
Package confine runs the agent pane inside a container. |
|
doctor
Package doctor detects the ways this workspace is known to break.
|
Package doctor detects the ways this workspace is known to break. |
|
fetch
Package fetch downloads pinned release binaries and unpacks them.
|
Package fetch downloads pinned release binaries and unpacks them. |
|
install
Package install renders bothy's config tree.
|
Package install renders bothy's config tree. |
|
layout
Package layout turns a profile into a Zellij layout.
|
Package layout turns a profile into a Zellij layout. |
|
mux
Package mux arranges the workspace.
|
Package mux arranges the workspace. |
|
platform
Package platform detects everything about the machine that changes what bothy installs or writes.
|
Package platform detects everything about the machine that changes what bothy installs or writes. |
|
probe
Package probe answers questions about the running environment that cannot be decided from configuration alone.
|
Package probe answers questions about the running environment that cannot be decided from configuration alone. |
|
render
Package render turns templates into the config files bothy launches its tools against.
|
Package render turns templates into the config files bothy launches its tools against. |
|
slots
Package slots is what every provider declares about itself, across both of the dialects under slots/.
|
Package slots is what every provider declares about itself, across both of the dialects under slots/. |
|
state
Package state records which binaries bothy installed, and at what version and checksum.
|
Package state records which binaries bothy installed, and at what version and checksum. |
|
theme
Package theme resolves one 11-token Palette for the whole workspace, from the built-in open Dracula palette or a file the user points bothy at (custom.go, ADR-006).
|
Package theme resolves one 11-token Palette for the whole workspace, from the built-in open Dracula palette or a file the user points bothy at (custom.go, ADR-006). |
|
tools
Package tools decides, for each tool the workspace needs, whether the system's copy will do or bothy has to supply one.
|
Package tools decides, for each tool the workspace needs, whether the system's copy will do or bothy has to supply one. |