Skip to content

feat: add persistent config system with runtime editor#79

Merged
larkly merged 1 commit intomainfrom
worktree-witty-mixing-salamander
Mar 29, 2026
Merged

feat: add persistent config system with runtime editor#79
larkly merged 1 commit intomainfrom
worktree-witty-mixing-salamander

Conversation

@larkly
Copy link
Copy Markdown
Owner

@larkly larkly commented Mar 29, 2026

Summary

  • Add ~/.config/lazystack/config.yaml for persisting settings (general, colors, keybindings) across sessions
  • Add runtime config overlay (ctrl+k) with category navigation, boolean toggles, numeric/color inputs, and key capture mode for rebinding keys
  • CLI flags take precedence over config file values; changes take effect immediately and persist to disk

Test plan

  • Launch without config file — runs with defaults, no errors
  • Open config view (ctrl+k) — categories and values display correctly
  • Toggle a boolean (plain mode) — takes effect immediately, persists to ~/.config/lazystack/config.yaml
  • Change a color — UI re-renders with new color
  • Rebind a key — new binding works
  • Verify ctrl+a/ctrl+b are rejected when rebinding
  • Restart app — config persists
  • Pass --refresh 10 — overrides config file value
  • go test ./internal/config/... passes

Add ~/.config/lazystack/config.yaml for persisting settings across
sessions. Includes a config overlay (ctrl+k) for browsing and editing
general settings, color palette, and keybindings at runtime.

Config precedence: CLI flags > config file > hardcoded defaults.
Changes in the config view take effect immediately and persist to disk.

New packages:
- internal/config: Config structs, YAML load/save, merge with CLI flags
- internal/ui/configview: Full-screen overlay with category navigation,
  boolean toggles, numeric/color text inputs, and key capture mode
@larkly larkly merged commit 5efd213 into main Mar 29, 2026
This was referenced Mar 29, 2026
@larkly larkly deleted the worktree-witty-mixing-salamander branch April 17, 2026 14:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant