fix: TUI flicker, bottom-anchored minibuffer, 13 color presets
Issue 1 — flickering during typing/updating: - Wrap every frame render in DECICM sync (begin-sync/end-sync) so the terminal defers rendering until the entire frame is written - Replace backend-clear (ESC[2J full clear) with draw-rect background fill — eliminates visible blank frame between redraws - These two changes together eliminate all visible tearing/flicker Issue 2 — bottom-anchored minibuffer (Emacs-style): - Replace centered overlay dialog with bottom-anchored minibuffer that expands upward from the input line - Unified command menu: Ctrl+P and / both open the same menu with all 35+ commands (slash + daemon), dispatch by value type - Filter prompt at h-3 (same position as normal input), options listed above, grows up to 15 lines - No full-screen dim backdrop — just clear the minibuffer area Issue 3 — color schemes: - Add 5 new presets: catppuccin, tokyonight, dracula, gemini, mono - Total: 13 presets (up from 8) - Update /theme completion list and help text Also fixed: pre-existing unbalanced paren in tui-main (missing close)
This commit is contained in:
@@ -125,8 +125,60 @@ All state mutation flows through event handlers in the controller.
|
||||
:dot-connected "#2E8B57" :dot-disconnected "#CC3300"
|
||||
:error "#CC3300"
|
||||
:tool-running "#CC6600" :tool-done "#2E8B57" :tool-error "#CC3300"
|
||||
:separator "#C8B898" :accent "#CC6600" :dim "#8B7355"))
|
||||
"8 warm theme presets.")
|
||||
:separator "#C8B898" :accent "#CC6600" :dim "#8B7355")
|
||||
:catppuccin (:user-fg "#FAB387" :user-bg "#1E1E2E" :user-border "#F5A97F"
|
||||
:agent-header "#CBA6F7" :agent-fg "#CDD6F4"
|
||||
:system "#94E2D5"
|
||||
:input-prompt "#FAB387" :input-fg "#CDD6F4"
|
||||
:hint "#6C7086"
|
||||
:status-bg "#181825" :status-fg "#A6ADC8"
|
||||
:dot-connected "#A6E3A1" :dot-disconnected "#F38BA8"
|
||||
:error "#F38BA8"
|
||||
:tool-running "#FAB387" :tool-done "#A6E3A1" :tool-error "#F38BA8"
|
||||
:separator "#313244" :accent "#FAB387" :dim "#585B70")
|
||||
:tokyonight (:user-fg "#FF9E64" :user-bg "#1A1B26" :user-border "#F59E4C"
|
||||
:agent-header "#7AA2F7" :agent-fg "#A9B1D6"
|
||||
:system "#73DACA"
|
||||
:input-prompt "#FF9E64" :input-fg "#A9B1D6"
|
||||
:hint "#565F89"
|
||||
:status-bg "#16161E" :status-fg "#9AA5CE"
|
||||
:dot-connected "#9ECE6A" :dot-disconnected "#DB4B4B"
|
||||
:error "#DB4B4B"
|
||||
:tool-running "#FF9E64" :tool-done "#9ECE6A" :tool-error "#DB4B4B"
|
||||
:separator "#292E42" :accent "#FF9E64" :dim "#444B6A")
|
||||
:dracula (:user-fg "#FF9580" :user-bg "#1E1F2B" :user-border "#FF6E6E"
|
||||
:agent-header "#BD93F9" :agent-fg "#F8F8F2"
|
||||
:system "#8BE9FD"
|
||||
:input-prompt "#FF9580" :input-fg "#F8F8F2"
|
||||
:hint "#6272A4"
|
||||
:status-bg "#191A24" :status-fg "#E0E0E0"
|
||||
:dot-connected "#50FA7B" :dot-disconnected "#FF5555"
|
||||
:error "#FF5555"
|
||||
:tool-running "#FF9580" :tool-done "#50FA7B" :tool-error "#FF5555"
|
||||
:separator "#34354A" :accent "#FF9580" :dim "#5A5B7A")
|
||||
:gemini (:user-fg "#87AFFF" :user-bg "#000000" :user-border "#5F5F5F"
|
||||
:agent-header "#D7AFFF" :agent-fg "#FFFFFF"
|
||||
:system "#87D7D7"
|
||||
:input-prompt "#87AFFF" :input-fg "#FFFFFF"
|
||||
:hint "#AFAFAF"
|
||||
:status-bg "#1A1A1A" :status-fg "#AFAFAF"
|
||||
:dot-connected "#D7FFD7" :dot-disconnected "#FF87AF"
|
||||
:error "#FF87AF"
|
||||
:tool-running "#87AFFF" :tool-done "#D7FFD7" :tool-error "#FF87AF"
|
||||
:separator "#3A3A3A" :accent "#87AFFF" :dim "#5F5F5F")
|
||||
:mono (:user-fg "#E0E0E0" :user-bg "#1A1A1A" :user-border "#808080"
|
||||
:agent-header "#C0C0C0" :agent-fg "#D0D0D0"
|
||||
:system "#A0A0A0"
|
||||
:input-prompt "#FFFFFF" :input-fg "#D0D0D0"
|
||||
:hint "#606060"
|
||||
:status-bg "#141414" :status-fg "#B0B0B0"
|
||||
:dot-connected "#A0A0A0" :dot-disconnected "#808080"
|
||||
:error "#808080"
|
||||
:tool-running "#E0E0E0" :tool-done "#A0A0A0" :tool-error "#808080"
|
||||
:separator "#303030" :accent "#FFFFFF" :dim "#505050"))
|
||||
"13 warm theme presets (amber, gold, terracotta, sepia, nord-warm,
|
||||
monokai-warm, gruvbox-warm, light-amber, catppuccin, tokyonight, dracula,
|
||||
gemini, mono).")
|
||||
|
||||
(defvar *tui-theme-current-name* :amber
|
||||
"Name of the currently active theme preset.")
|
||||
@@ -294,6 +346,10 @@ All state mutation flows through event handlers in the controller.
|
||||
(:title "List Skills — Available skills" :value (:action :list-skills) :category :system)
|
||||
(:title "Help — Show daemon help" :value (:action :help) :category :help))
|
||||
"Daemon commands for the command palette (Ctrl+P).")
|
||||
|
||||
(defun all-commands ()
|
||||
"Merge slash commands and daemon commands into one unified list."
|
||||
(append *slash-commands* *daemon-commands*))
|
||||
#+END_SRC
|
||||
|
||||
** Event Queue
|
||||
|
||||
Reference in New Issue
Block a user