feat(electrobun): settings overhaul — fonts, shells, providers, retention, chords

- Settings drawer: responsive width clamp(24rem, 45vw, 50rem)
- System font detection: fc-list for UI fonts (preferred sans-serif starred)
  and mono fonts (Nerd Fonts starred), fallback to hardcoded lists
- Scrollback: default 5000, min 1000, step 500
- Shell detection: system.shells RPC, pre-selects $SHELL login shell
- Provider enablement: provider.scan gates toggle, unavailable shown as N/A
- Session retention: count 0-100 (0=Keep all), age 0-365 (0=Forever)
- Chord keybindings: Ctrl+K → Ctrl+S style multi-key sequences,
  1s prefix wait, arrow separator display, 26 tests passing
This commit is contained in:
Hibryda 2026-03-25 01:42:34 +01:00
parent afaa2253de
commit 1de6c93e01
9 changed files with 346 additions and 187 deletions

View file

@ -255,7 +255,16 @@ export type PtyRPCRequests = {
/** Detect available shells on this system. */
"system.shells": {
params: Record<string, never>;
response: { shells: Array<{ path: string; name: string }> };
response: { shells: Array<{ path: string; name: string }>; loginShell: string };
};
/** Detect installed system fonts (uses fc-list). */
"system.fonts": {
params: Record<string, never>;
response: {
uiFonts: Array<{ family: string; preferred: boolean }>;
monoFonts: Array<{ family: string; isNerdFont: boolean }>;
};
};
// ── Project templates RPC ───────────────────────────────────────────────────