Documentation
¶
Index ¶
- Constants
- Variables
- func ApplyGradient(text string, startColor, endColor color.Color) string
- func CalculateTwoColumnWidths(modalWidth, preferredLeft, minRight int) (int, int)
- func GetAuthToken() string
- func GetGraphAreaDimensions(rightWidth int, isStatsHidden bool) (int, int)
- func GetHeaderHeight(termHeight int) int
- func GetListWidth(availableWidth int) int
- func GetMinGraphHeight(termHeight int) int
- func GetSettingsDimensions(termWidth, termHeight int) (int, int)
- func InitAuthToken()
- func IsShortTerminal(height int) bool
- func NewDownloadList(width, height int) list.Model
- type BatchConfirmKeyMap
- type CategoryManagerKeyMap
- type DashboardKeyMap
- type DownloadItem
- type DownloadModel
- type DuplicateKeyMap
- type ExtensionKeyMap
- type FilePickerKeyMap
- type GraphStats
- type InputKeyMap
- type KeyMap
- type QuitConfirmKeyMap
- type RootModel
- func (m *RootModel) ApplyTheme(mode int)
- func (m RootModel) ComputeViewStats() ViewStats
- func (m *RootModel) FindDownloadByID(id string) *DownloadModel
- func (m *RootModel) GetSelectedDownload() *DownloadModel
- func (m RootModel) Init() tea.Cmd
- func (m RootModel) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (m *RootModel) UpdateListItems()
- func (m RootModel) View() tea.View
- func (m RootModel) WithEnqueueContext(ctx context.Context, cancel context.CancelFunc) RootModel
- type SettingsEditorKeyMap
- type SettingsKeyMap
- type UIState
- type UpdateCheckResultMsg
- type UpdateKeyMap
- type ViewStats
Constants ¶
const ( // GraphUpdateInterval is the interval at which the speed history is updated (polling rate) GraphUpdateInterval = 500 * time.Millisecond // GraphHistoryPoints is the number of data points to keep in history // 60 points * 0.5s interval = 30 seconds of history GraphHistoryPoints = 60 )
const ( // === Timeouts and Intervals === TickInterval = 200 * time.Millisecond // === Layout Ratios === ListWidthRatio = 0.6 // Dashboard: List takes 60% width SettingsWidthRatio = 0.72 // Modals: Settings/Category use 72% width LogoWidthRatio = 0.45 // Header: Logo takes 45% of left column GraphTargetHeightRatio = 0.4 // Right Column: Graph target 40% height // === Thresholds and Minimums === MinTermWidth = 45 MinTermHeight = 12 ShortTermHeightThreshold = 25 // Switch to compact header below this height MinSettingsWidth = 64 MaxSettingsWidth = 130 MinSettingsHeight = 12 DefaultSettingsHeight = 26 MinRightColumnWidth = 50 // Hide right column if narrow MinGraphStatsWidth = 70 // Hide inline graph stats if narrow MinLogoWidth = 60 // Hide ASCII logo if narrow MinGraphHeight = 9 MinGraphHeightShort = 5 MinListHeight = 10 MinChunkMapHeight = 4 MinChunkMapVisibleH = 18 // Min term height to show chunk map // === Component Heights === ModalHeightPadding = 4 // Bottom fallback padding for modals to avoid clipping HeaderHeightMax = 11 HeaderHeightMin = 3 FilePickerHeight = 12 CardHeight = 2 // Compact rows for downloads list // === Padding and Offsets === DefaultPaddingX = 1 DefaultPaddingY = 0 PopupPaddingX = 2 PopupPaddingY = 1 PopupWidth = 70 // Consistent width for small popup dialogs HeaderWidthOffset = 2 ProgressBarWidthOffset = 4 // === Graph Configuration === GraphAxisWidth = 10 GraphStatsWidth = 18 GraphHeadroom = 1.1 // Scale max speed by 110% for visual headroom // === Input Dimensions === InputWidth = 40 MinSettingsInputW = 8 MaxSettingsInputW = 48 // === Channel Buffers === ProgressChannelBuffer = types.ProgressChannelBuffer // === Units === KB = types.KB MB = types.MB GB = types.GB )
const ( TabQueued = 0 TabActive = 1 TabDone = 2 )
Variables ¶
var ( AppStyle lipgloss.Style PaneStyle lipgloss.Style ActivePaneStyle lipgloss.Style LogoStyle lipgloss.Style GraphStyle lipgloss.Style ListStyle lipgloss.Style DetailStyle lipgloss.Style TitleStyle lipgloss.Style PaneTitleStyle lipgloss.Style TabStyle lipgloss.Style ActiveTabStyle lipgloss.Style StatsLabelStyle lipgloss.Style StatsValueStyle lipgloss.Style LogStyleStarted lipgloss.Style LogStyleComplete lipgloss.Style LogStyleError lipgloss.Style LogStylePaused lipgloss.Style WindowStyle lipgloss.Style BoxStyle lipgloss.Style ModalPaddingStyle lipgloss.Style LayoutGapStyle lipgloss.Style )
=== Layout Styles ===
var Keys = KeyMap{ Dashboard: DashboardKeyMap{ TabQueued: key.NewBinding( key.WithKeys("q"), key.WithHelp("q", "queued tab"), ), TabActive: key.NewBinding( key.WithKeys("w"), key.WithHelp("w", "active tab"), ), TabDone: key.NewBinding( key.WithKeys("e"), key.WithHelp("e", "done tab"), ), NextTab: key.NewBinding( key.WithKeys("tab"), key.WithHelp("tab", "next tab"), ), Add: key.NewBinding( key.WithKeys("a"), key.WithHelp("a", "add download"), ), BatchImport: key.NewBinding( key.WithKeys("b", "B"), key.WithHelp("b", "batch import"), ), Search: key.NewBinding( key.WithKeys("f"), key.WithHelp("f", "search"), ), Pause: key.NewBinding( key.WithKeys("p"), key.WithHelp("p", "pause/resume"), ), Refresh: key.NewBinding( key.WithKeys("r"), key.WithHelp("r", "refresh url"), ), Delete: key.NewBinding( key.WithKeys("x"), key.WithHelp("x", "delete"), ), Settings: key.NewBinding( key.WithKeys("s"), key.WithHelp("s", "settings"), ), Log: key.NewBinding( key.WithKeys("l"), key.WithHelp("l", "toggle log"), ), ToggleHelp: key.NewBinding( key.WithKeys("h"), key.WithHelp("h", "keybindings"), ), OpenFile: key.NewBinding( key.WithKeys("o"), key.WithHelp("o", "open file"), ), Quit: key.NewBinding( key.WithKeys("ctrl+c", "ctrl+q"), key.WithHelp("ctrl+q", "quit"), ), ForceQuit: key.NewBinding( key.WithKeys("ctrl+c"), key.WithHelp("ctrl+c", "force quit"), ), CategoryFilter: key.NewBinding( key.WithKeys("c"), key.WithHelp("c", "category"), ), Up: key.NewBinding( key.WithKeys("up", "k"), key.WithHelp("↑/k", "up"), ), Down: key.NewBinding( key.WithKeys("down", "j"), key.WithHelp("↓/j", "down"), ), LogUp: key.NewBinding( key.WithKeys("up", "k"), key.WithHelp("↑/k", "scroll up"), ), LogDown: key.NewBinding( key.WithKeys("down", "j"), key.WithHelp("↓/j", "scroll down"), ), LogTop: key.NewBinding( key.WithKeys("g"), key.WithHelp("g", "top"), ), LogBottom: key.NewBinding( key.WithKeys("G"), key.WithHelp("G", "bottom"), ), LogClose: key.NewBinding( key.WithKeys("esc"), key.WithHelp("esc", "close log"), ), }, Input: InputKeyMap{ Tab: key.NewBinding( key.WithKeys("tab"), key.WithHelp("tab", "browse/next"), ), Enter: key.NewBinding( key.WithKeys("enter"), key.WithHelp("enter", "confirm/next"), ), Esc: key.NewBinding( key.WithKeys("esc"), key.WithHelp("esc", "cancel"), ), Up: key.NewBinding( key.WithKeys("up"), key.WithHelp("↑", "previous"), ), Down: key.NewBinding( key.WithKeys("down"), key.WithHelp("↓", "next"), ), Cancel: key.NewBinding( key.WithKeys("esc"), key.WithHelp("esc", "cancel"), ), }, FilePicker: FilePickerKeyMap{ UseDir: key.NewBinding( key.WithKeys("."), key.WithHelp(".", "use current"), ), GotoHome: key.NewBinding( key.WithKeys("h", "H"), key.WithHelp("h", "home"), ), Back: key.NewBinding( key.WithKeys("left"), key.WithHelp("←", "back"), ), Forward: key.NewBinding( key.WithKeys("right"), key.WithHelp("→", "open"), ), Open: key.NewBinding( key.WithKeys("enter"), key.WithHelp("enter", "select"), ), }, Duplicate: DuplicateKeyMap{ Continue: key.NewBinding( key.WithKeys("c", "C"), key.WithHelp("c", "continue"), ), Focus: key.NewBinding( key.WithKeys("f", "F"), key.WithHelp("f", "focus existing"), ), Cancel: key.NewBinding( key.WithKeys("x", "X", "esc"), key.WithHelp("x", "cancel"), ), }, Extension: ExtensionKeyMap{ Confirm: key.NewBinding( key.WithKeys("enter"), key.WithHelp("enter", "confirm"), ), Browse: key.NewBinding( key.WithKeys("tab"), key.WithHelp("tab", "browse path"), ), Next: key.NewBinding( key.WithKeys("down"), key.WithHelp("↓", "next field"), ), Prev: key.NewBinding( key.WithKeys("up"), key.WithHelp("↑", "prev field"), ), Cancel: key.NewBinding( key.WithKeys("esc"), key.WithHelp("esc", "cancel"), ), }, Settings: SettingsKeyMap{ Tab1: key.NewBinding( key.WithKeys("1"), key.WithHelp("1", "general"), ), Tab2: key.NewBinding( key.WithKeys("2"), key.WithHelp("2", "network"), ), Tab3: key.NewBinding( key.WithKeys("3"), key.WithHelp("3", "performance"), ), Tab4: key.NewBinding( key.WithKeys("4"), key.WithHelp("4", "categories"), ), Tab5: key.NewBinding( key.WithKeys("5"), key.WithHelp("5", "extension"), ), NextTab: key.NewBinding( key.WithKeys("right"), key.WithHelp("→", "next tab"), ), PrevTab: key.NewBinding( key.WithKeys("left"), key.WithHelp("←", "prev tab"), ), Browse: key.NewBinding( key.WithKeys("tab"), key.WithHelp("tab", "browse dir"), ), Edit: key.NewBinding( key.WithKeys("enter"), key.WithHelp("enter", "edit"), ), Up: key.NewBinding( key.WithKeys("up", "k"), key.WithHelp("↑/k", "up"), ), Down: key.NewBinding( key.WithKeys("down", "j"), key.WithHelp("↓/j", "down"), ), Reset: key.NewBinding( key.WithKeys("r", "R"), key.WithHelp("r", "reset"), ), Close: key.NewBinding( key.WithKeys("esc"), key.WithHelp("esc", "save & close"), ), }, SettingsEditor: SettingsEditorKeyMap{ Confirm: key.NewBinding( key.WithKeys("enter"), key.WithHelp("enter", "confirm"), ), Cancel: key.NewBinding( key.WithKeys("esc"), key.WithHelp("esc", "cancel"), ), }, BatchConfirm: BatchConfirmKeyMap{ Confirm: key.NewBinding( key.WithKeys("y", "Y", "enter"), key.WithHelp("y", "confirm"), ), Cancel: key.NewBinding( key.WithKeys("n", "N", "esc"), key.WithHelp("n", "cancel"), ), }, Update: UpdateKeyMap{ OpenGitHub: key.NewBinding( key.WithKeys("o", "O", "enter"), key.WithHelp("o", "open on github"), ), IgnoreNow: key.NewBinding( key.WithKeys("i", "I", "esc"), key.WithHelp("i", "ignore for now"), ), NeverRemind: key.NewBinding( key.WithKeys("n", "N"), key.WithHelp("n", "never remind"), ), }, CategoryMgr: CategoryManagerKeyMap{ Up: key.NewBinding(key.WithKeys("up", "k"), key.WithHelp("↑/k", "up")), Down: key.NewBinding(key.WithKeys("down", "j"), key.WithHelp("↓/j", "down")), Edit: key.NewBinding(key.WithKeys("enter"), key.WithHelp("enter", "edit")), Add: key.NewBinding(key.WithKeys("a"), key.WithHelp("a", "add")), Delete: key.NewBinding(key.WithKeys("x"), key.WithHelp("x", "delete")), Toggle: key.NewBinding(key.WithKeys("t"), key.WithHelp("t", "toggle")), Tab: key.NewBinding(key.WithKeys("tab"), key.WithHelp("tab", "next field")), Close: key.NewBinding(key.WithKeys("esc"), key.WithHelp("esc", "save & close")), }, QuitConfirm: QuitConfirmKeyMap{ Left: key.NewBinding( key.WithKeys("left", "h"), ), Right: key.NewBinding( key.WithKeys("right", "l", "tab"), ), Yes: key.NewBinding( key.WithKeys("y", "Y"), ), No: key.NewBinding( key.WithKeys("n", "N"), ), Select: key.NewBinding( key.WithKeys("enter", "space"), key.WithHelp("y/enter", "confirm"), ), Cancel: key.NewBinding( key.WithKeys("esc", "ctrl+c", "ctrl+q"), key.WithHelp("n/esc", "cancel"), ), }, }
Keys contains all the keybindings for the application
Functions ¶
func ApplyGradient ¶
ApplyGradient applies a vertical gradient to a multi-line string
func CalculateTwoColumnWidths ¶ added in v0.8.0
CalculateTwoColumnWidths calculates the distribution of widths for a two-column modal layout.
func GetAuthToken ¶ added in v0.8.0
func GetAuthToken() string
GetAuthToken returns the cached authentication token.
func GetGraphAreaDimensions ¶ added in v0.8.0
GetGraphAreaDimensions calculates dimensions for the graph area
func GetHeaderHeight ¶ added in v0.8.0
GetHeaderHeight returns the appropriate header height based on terminal height
func GetListWidth ¶ added in v0.8.0
GetListWidth calculates the list width based on available width
func GetMinGraphHeight ¶ added in v0.8.0
GetMinGraphHeight returns the minimum graph height based on terminal height
func GetSettingsDimensions ¶ added in v0.8.0
GetSettingsDimensions calculates dimensions for settings/category modals
func InitAuthToken ¶ added in v0.8.0
func InitAuthToken()
InitAuthToken reads the authentication token from disk and caches it in memory. This is called once at startup to avoid re-reading from disk on every frame layout.
func IsShortTerminal ¶ added in v0.8.0
IsShortTerminal returns true if the terminal height is below the threshold
func NewDownloadList ¶
NewDownloadList creates a new list.Model configured for downloads
Types ¶
type BatchConfirmKeyMap ¶
BatchConfirmKeyMap defines keybindings for batch import confirmation
func (BatchConfirmKeyMap) FullHelp ¶
func (k BatchConfirmKeyMap) FullHelp() [][]key.Binding
func (BatchConfirmKeyMap) ShortHelp ¶
func (k BatchConfirmKeyMap) ShortHelp() []key.Binding
type CategoryManagerKeyMap ¶
type CategoryManagerKeyMap struct {
Up key.Binding
Down key.Binding
Edit key.Binding
Add key.Binding
Delete key.Binding
Toggle key.Binding // toggle enable/disable
Tab key.Binding
Close key.Binding
}
CategoryManagerKeyMap defines keybindings for the category manager
func (CategoryManagerKeyMap) FullHelp ¶
func (k CategoryManagerKeyMap) FullHelp() [][]key.Binding
func (CategoryManagerKeyMap) ShortHelp ¶
func (k CategoryManagerKeyMap) ShortHelp() []key.Binding
type DashboardKeyMap ¶
type DashboardKeyMap struct {
TabQueued key.Binding
TabActive key.Binding
TabDone key.Binding
NextTab key.Binding
Add key.Binding
BatchImport key.Binding
Search key.Binding
Pause key.Binding
Refresh key.Binding
Delete key.Binding
Settings key.Binding
Log key.Binding
ToggleHelp key.Binding
OpenFile key.Binding
Quit key.Binding
ForceQuit key.Binding
CategoryFilter key.Binding
// Navigation
Up key.Binding
Down key.Binding
// Log Navigation
LogUp key.Binding
LogDown key.Binding
LogTop key.Binding
LogBottom key.Binding
LogClose key.Binding
}
DashboardKeyMap defines keybindings for the main dashboard
func (DashboardKeyMap) FullHelp ¶
func (k DashboardKeyMap) FullHelp() [][]key.Binding
FullHelp returns keybindings for the expanded help view
func (DashboardKeyMap) ShortHelp ¶
func (k DashboardKeyMap) ShortHelp() []key.Binding
ShortHelp returns keybindings to show in the mini help view
type DownloadItem ¶
type DownloadItem struct {
// contains filtered or unexported fields
}
DownloadItem implements list.Item interface for downloads
func (DownloadItem) Description ¶
func (i DownloadItem) Description() string
func (DownloadItem) FilterValue ¶
func (i DownloadItem) FilterValue() string
func (DownloadItem) Title ¶
func (i DownloadItem) Title() string
type DownloadModel ¶
type DownloadModel struct {
ID string
URL string
Filename string
FilenameLower string
Destination string // Full path to the destination file
Total int64
Downloaded int64
Speed float64
Connections int
StartTime time.Time
Elapsed time.Duration
// contains filtered or unexported fields
}
func NewDownloadModel ¶
func NewDownloadModel(id string, url string, filename string, total int64) *DownloadModel
NewDownloadModel creates a new download model
type DuplicateKeyMap ¶
DuplicateKeyMap defines keybindings for duplicate warning
func (DuplicateKeyMap) FullHelp ¶
func (k DuplicateKeyMap) FullHelp() [][]key.Binding
func (DuplicateKeyMap) ShortHelp ¶
func (k DuplicateKeyMap) ShortHelp() []key.Binding
type ExtensionKeyMap ¶
type ExtensionKeyMap struct {
Confirm key.Binding
Browse key.Binding
Next key.Binding
Prev key.Binding
Cancel key.Binding
}
ExtensionKeyMap defines keybindings for extension confirmation
func (ExtensionKeyMap) FullHelp ¶
func (k ExtensionKeyMap) FullHelp() [][]key.Binding
func (ExtensionKeyMap) ShortHelp ¶
func (k ExtensionKeyMap) ShortHelp() []key.Binding
type FilePickerKeyMap ¶
type FilePickerKeyMap struct {
UseDir key.Binding
GotoHome key.Binding
Back key.Binding
Forward key.Binding
Open key.Binding
Cancel key.Binding
}
FilePickerKeyMap defines keybindings for the file picker
func (FilePickerKeyMap) FullHelp ¶
func (k FilePickerKeyMap) FullHelp() [][]key.Binding
func (FilePickerKeyMap) ShortHelp ¶
func (k FilePickerKeyMap) ShortHelp() []key.Binding
type GraphStats ¶
type GraphStats struct {
DownloadSpeed float64 // Current download speed in MB/s
DownloadTop float64 // Top download speed in MB/s
DownloadTotal int64 // Total downloaded bytes
}
GraphStats contains the statistics to overlay on the graph
type InputKeyMap ¶
type InputKeyMap struct {
Tab key.Binding
Enter key.Binding
Esc key.Binding
Up key.Binding
Down key.Binding
Cancel key.Binding
}
InputKeyMap defines keybindings for the add download input
func (InputKeyMap) FullHelp ¶
func (k InputKeyMap) FullHelp() [][]key.Binding
func (InputKeyMap) ShortHelp ¶
func (k InputKeyMap) ShortHelp() []key.Binding
type KeyMap ¶
type KeyMap struct {
Dashboard DashboardKeyMap
Input InputKeyMap
FilePicker FilePickerKeyMap
Duplicate DuplicateKeyMap
Extension ExtensionKeyMap
Settings SettingsKeyMap
SettingsEditor SettingsEditorKeyMap
BatchConfirm BatchConfirmKeyMap
Update UpdateKeyMap
CategoryMgr CategoryManagerKeyMap
QuitConfirm QuitConfirmKeyMap
}
KeyMap defines the keybindings for the entire application
type QuitConfirmKeyMap ¶
type QuitConfirmKeyMap struct {
Left key.Binding
Right key.Binding
Yes key.Binding
No key.Binding
Select key.Binding
Cancel key.Binding
}
QuitConfirmKeyMap defines keybindings for the quit confirmation modal
func (QuitConfirmKeyMap) FullHelp ¶
func (k QuitConfirmKeyMap) FullHelp() [][]key.Binding
func (QuitConfirmKeyMap) ShortHelp ¶
func (k QuitConfirmKeyMap) ShortHelp() []key.Binding
type RootModel ¶
type RootModel struct {
// Service Interface
// Core
Service core.DownloadService
Orchestrator *processing.LifecycleManager
PWD string
// Graph Data
SpeedHistory []float64 // Stores the last ~60 ticks of speed data
// Settings
Settings *config.Settings // Application settings
SettingsActiveTab int // Active category tab (0-3)
SettingsSelectedRow int // Selected setting within current tab
SettingsIsEditing bool // Whether currently editing a value
SettingsInput textinput.Model // Input for editing string/int values
SettingsFileBrowsing bool // Whether browsing for a directory
ExtensionFileBrowsing bool // Whether browsing for extension prompt path
ExtensionTokenCopied bool // Flash message for "Token Copied!"
// Selection persistence
SelectedDownloadID string // ID of the currently selected download
ManualTabSwitch bool // Whether the last tab switch was manual
// Server port for display
ServerPort int
ServerHost string
IsRemote bool
// Update check
UpdateInfo *version.UpdateInfo // Update information (nil if no update available)
CurrentVersion string // Current version of Surge
InitialDarkBackground bool // Captured at startup for "System" theme
// contains filtered or unexported fields
}
func InitialRootModel ¶
func InitialRootModel(serverPort int, currentVersion string, service core.DownloadService, orchestrator *processing.LifecycleManager, noResume bool) RootModel
func (*RootModel) ApplyTheme ¶
ApplyTheme applies the selected theme mode
func (RootModel) ComputeViewStats ¶
func (*RootModel) FindDownloadByID ¶
func (m *RootModel) FindDownloadByID(id string) *DownloadModel
FindDownloadByID finds a download by its ID
func (*RootModel) GetSelectedDownload ¶
func (m *RootModel) GetSelectedDownload() *DownloadModel
GetSelectedDownload returns the currently selected download from the list
func (*RootModel) UpdateListItems ¶
func (m *RootModel) UpdateListItems()
UpdateListItems updates the list with filtered downloads based on active tab
func (RootModel) WithEnqueueContext ¶
WithEnqueueContext lets callers bind model-initiated probes to a process-level shutdown context instead of the model's default standalone context.
type SettingsEditorKeyMap ¶
SettingsEditorKeyMap defines keybindings for editing a setting
func (SettingsEditorKeyMap) FullHelp ¶
func (k SettingsEditorKeyMap) FullHelp() [][]key.Binding
func (SettingsEditorKeyMap) ShortHelp ¶
func (k SettingsEditorKeyMap) ShortHelp() []key.Binding
type SettingsKeyMap ¶
type SettingsKeyMap struct {
Tab1 key.Binding
Tab2 key.Binding
Tab3 key.Binding
Tab4 key.Binding
Tab5 key.Binding
NextTab key.Binding
PrevTab key.Binding
Browse key.Binding
Edit key.Binding
Up key.Binding
Down key.Binding
Reset key.Binding
Close key.Binding
}
SettingsKeyMap defines keybindings for the settings view
func (SettingsKeyMap) FullHelp ¶
func (k SettingsKeyMap) FullHelp() [][]key.Binding
func (SettingsKeyMap) ShortHelp ¶
func (k SettingsKeyMap) ShortHelp() []key.Binding
type UIState ¶
type UIState int // Defines UIState as int to be used in rootModel
const ( DashboardState UIState = iota // DashboardState is 0 increments after each line InputState // InputState is 1 DetailState // DetailState is 2 FilePickerState // FilePickerState is 3 DuplicateWarningState // DuplicateWarningState is 4 SearchState // SearchState is 6 SettingsState // SettingsState is 7 ExtensionConfirmationState // ExtensionConfirmationState is 8 BatchFilePickerState // BatchFilePickerState is 9 BatchConfirmState // BatchConfirmState is 10 UpdateAvailableState // UpdateAvailableState is 11 URLUpdateState // URLUpdateState is 12 CategoryManagerState // CategoryManagerState is 13 QuitConfirmState // QuitConfirmState is 14 HelpModalState // HelpModalState is 15 )
type UpdateCheckResultMsg ¶
type UpdateCheckResultMsg struct {
Info *version.UpdateInfo
}
UpdateCheckResultMsg is sent when the update check is complete
type UpdateKeyMap ¶
UpdateKeyMap defines keybindings for update notification
func (UpdateKeyMap) FullHelp ¶
func (k UpdateKeyMap) FullHelp() [][]key.Binding
func (UpdateKeyMap) ShortHelp ¶
func (k UpdateKeyMap) ShortHelp() []key.Binding
Source Files
¶
- commands.go
- config.go
- constants.go
- gradient.go
- graph.go
- helpers.go
- keys.go
- layout_helpers.go
- list.go
- messages.go
- model.go
- process.go
- styles.go
- token.go
- update.go
- update_category.go
- update_dashboard.go
- update_events.go
- update_filepicker.go
- update_input.go
- update_modals.go
- update_settings.go
- view.go
- view_category.go
- view_settings.go