Skip to content

clipse

Batch 8.

clipse is a terminal clipboard-history manager. A background listener (clipse -listen) records every clipboard change; the TUI presents that history as a scrollable list with a preview pane, a fuzzy filter at the top (/), pagination dots, pin indicators, and multi-select for copying several entries at once. It handles both text and images (image preview via basic / kitty / sixel renderers). It’s a tight, single-purpose tool, and the reason it’s in this batch is that it nails the list-with-preview + top-filter interaction — the single most reusable productivity-UI pattern — and ships a flat, legible JSON theme schema that’s a better starting point for KN-86 than nested TOML.

  • List + preview: the scrollable history list is the spine; pressing space toggles a preview of the selected entry’s full contents (text truncated in-list per maxEntryLength, shown in full in preview). This is the canonical “index on the left, detail on the right/below” pattern.
  • Fuzzy filter at the top (/) with a live-narrowing list as you type — the filter is a transient overlay on the list header, not a separate mode that hides the list.
  • Pagination dots for long histories — a compact “you are here / N pages” indicator that costs almost no screen real estate.
  • Pin + multi-select as orthogonal item states: pinned items (p) persist and can be filtered to via tab; multi-select (s single, shift+up/down extend, S clear) marks a batch for one copy action.
  • Pagination dots = PageActiveDot / PageInactiveDot. On KN-86 this is a row of / (or /) — already a brightness/fill distinction, color-free. A genuinely good fixed-cost paging indicator for KN-86’s constrained surfaces.
  • Pin indicator defaults to gold #FFD700 — a single accent glyph. On amber-on-black, the glyph (a or 📌) carries the pin state; the color is redundant. Drop the hue, keep the marker.
  • Multi-select markers — selected rows get a distinct title/border style. On KN-86: a leading [✓] / [ ] checkbox column or inversion of the selected rows.
  • Filter UI themes FilterPrompt / FilterText / FilterCursor separately — the prompt glyph, the typed text, and the cursor are independently styled. Maps to KN-86 as a /-prompt + bright typed text + inverted block cursor.
KeyAction
↑ ↓ / home endMove / jump to ends
← →Page navigation
/Fuzzy filter
enterChoose (copy)
s / shift+↑↓ / SSelect single / extend / clear selection
p / tabToggle pin / toggle pinned-only view
spaceToggle preview
backspaceDelete entry
ctrl+sCopy current filter
esc / QQuit / force-quit
  • Listener + TUI split: a daemon (clipse -listen) writes history; the TUI reads it. Decoupled producer/consumer over a shared file — a clean pattern for any KN-86 background-capture surface (e.g. a CIPHER-LINE history recorder feeding a scrollback viewer).
  • JSON persistence: on first run creates $XDG_CONFIG_HOME/clipse/ with config.json, clipboard_history.json, custom_theme.json, and a tmp_files/ dir for image data. Paths support ~, $HOME, $XDG_CONFIG_HOME.
  • Flat JSON theme (custom_theme.json, UseCustom: true): every element is a top-level #RRGGBB key — TitleFore, TitleBack, SelectedTitle, SelectedBorder, FilterPrompt, FilterText, FilterCursor, PinIndicatorColor, PageActiveDot, PageInactiveDot, PreviewedText, PreviewBorder. Flat key→value, no nesting. This is a usefully simpler schema shape than caps-log’s deep TOML tree — for KN-86, a flat JSON/TOML aesthetic-mode file (each addressable element → a style spec) is easier for operators to hand-edit and share as a snippet.
  • Image rendering modes (basic / kitty / sixel) with scaleX / scaleY / heightCut — not applicable to KN-86’s mono grid, but the scale-factor approach is noted.
  • List + preview ports cleanly: the selected row inverts; the preview pane sits below or to the side with a light-border frame; the divider is a box-drawing rule. No color needed — selection is inversion, framing is box-drawing.
  • Pagination dots → ●●●○○ brightness run — fill vs. outline glyph, color-free, a great low-cost pager for KN-86.
  • Pin / multi-select as glyph columns: a leading status column per row — pinned, selected, blank otherwise — rather than colored rows. Glyph-in-fixed-column is the monochrome-correct channel.
  • Fuzzy filter overlay: / prompt + bright typed text + inverted cursor block; the matched substring in each result rendered inverted or bold to show why a row matched (clipse highlights matches by color; KN-86 highlights by inversion). This match-highlight-by-inversion idea carries straight over to mcfly.md’s ranked-search results.
  • The list + top-filter + preview triad is the most reused productivity pattern in the corpus — clipse is its cleanest small-scope exemplar. It’s the same skeleton as mcfly.md (ranked history search) and mynav.md (navigator + preview); clipse is the version stripped to its essentials.
  • Flat JSON theme schema is the recommended shape for KN-86’s aesthetic-mode files — pair the flat-key simplicity here with the per-element completeness of caps-log.md’s tree. Cross-link 4trk.md and os-models.md for the theme-editor-as-affordance argument.
  • Pagination dots specifically are worth lifting verbatim into KN-86’s UI-pattern library — a fixed-cost paging indicator for any list longer than the row budget.