Skip to content

feat(tui): ricing-first dashboard with fzf process finder#7

Merged
dev-dami merged 1 commit intomainfrom
feat/tui-redesign
Mar 8, 2026
Merged

feat(tui): ricing-first dashboard with fzf process finder#7
dev-dami merged 1 commit intomainfrom
feat/tui-redesign

Conversation

@dev-dami
Copy link
Owner

@dev-dami dev-dami commented Mar 8, 2026

Summary

  • Hybrid TUI layout: compact dashboard overview (3x2 grid) with Enter to zoom into full-screen detail views
  • fzf-style process finder: fuzzy search powered by nucleo-matcher with / to search, j/k to navigate, highlighted selection
  • Ricing-first design: terminal-native ANSI 16 colors (auto-inherits user's colorscheme), Nerd Font icons, 16-color palette bar in footer
  • ThemeMode config: terminal (default, adapts to pywal/Catppuccin/Dracula/etc) or custom (hex color overrides)
  • 60-sample sparkline history, Unicode gauge bars, improved key-value alignment with separators

Keybindings

Key Dashboard Zoom-In Process Finder
Tab/←→ Switch module
Enter Zoom into module
/ or f Activate search
j/k Navigate list
Esc Quit Back to dashboard Clear search / back
q Quit Back to dashboard Back to dashboard

Test plan

  • cargo run -- tui — verify dashboard renders with Nerd Font icons and ANSI colors
  • Tab through modules, verify color palette bar in footer
  • Enter on CPU/Memory/Disk — verify gauge + sparkline + details in zoom view
  • Enter on Process — verify fzf finder opens with search bar
  • Type to fuzzy-filter processes, j/k to scroll, Esc to clear/back
  • cargo run -- print -m cpu — verify Nerd Font icons in CLI output
  • Test with different terminal colorschemes to verify ANSI adaptation

Summary by CodeRabbit

  • New Features
    • Interactive dashboard with grid layout and modular tiles
    • Fuzzy search process finder with fzf-style filtering and navigation
    • Theme customization options (Terminal/Custom modes)
    • Nerd Font icon support in module headers and dashboard
    • ANSI color palette support with theme-aware color mapping
    • Module zoom-in view with gauges, history sparklines, and metrics display

Complete TUI redesign for the Linux ricing community:
- Hybrid layout: dashboard overview + Enter to zoom into any module
- fzf-style process fuzzy finder with nucleo-matcher
- Terminal-native ANSI 16 colors (inherits user's colorscheme)
- Nerd Font icons enabled by default
- 16-color ANSI palette bar in footer
- ThemeMode: terminal (default) vs custom hex colors
- Sparkline history (60 samples), gauges, key-value details
- Keybindings: Tab/arrows navigate, Enter zoom, / search, j/k scroll, Esc back
@coderabbitai
Copy link

coderabbitai bot commented Mar 8, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 2e30222d-12bc-44e4-910f-822074356f49

📥 Commits

Reviewing files that changed from the base of the PR and between b8490db and 7e6bc4c.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (5)
  • Cargo.toml
  • docs/plans/2026-03-08-tui-redesign.md
  • src/config/mod.rs
  • src/output/mod.rs
  • src/tui/mod.rs

📝 Walkthrough

Walkthrough

This pull request introduces a comprehensive TUI redesign featuring an interactive dashboard with theme customization, a fuzzy process finder powered by nucleo-matcher, ANSI color support, Nerd Font icons, and dual-view navigation (dashboard and zoom-in modes). Configuration types are extended with theme modes and icon toggles, output formatting now includes decorative headers, and the TUI state management adds process filtering and history tracking.

Changes

Cohort / File(s) Summary
Dependencies
Cargo.toml
Added nucleo-matcher dependency (v0.3) for fuzzy matching functionality.
Configuration & Theming
src/config/mod.rs
Introduced ThemeMode enum (Terminal/Custom) with deserialization support, added icons toggle and theme_mode field to Config/TuiConfig structs, and added three public color-mapping helpers (ansi_module_color, ansi_chrome_border, ansi_chrome_title).
Output Formatting
src/output/mod.rs
Added module_icon utility mapping module names to Unicode icons, refactored format_snapshot to wrap module output with decorative boxed headers containing icons.
TUI Redesign Plan & Implementation
docs/plans/2026-03-08-tui-redesign.md, src/tui/mod.rs
Detailed redesign plan and comprehensive implementation: introduced App state with history tracking, ViewMode enum (Dashboard/ZoomIn), ProcessEntry type for fuzzy finder rows, process list refreshing and fuzzy filtering logic, dashboard and module-detail rendering with ANSI colors, full-screen process finder, theme-aware color resolution helpers, and enhanced keybindings for navigation and search.

Sequence Diagram(s)

sequenceDiagram
    actor User
    participant App
    participant ViewMode
    participant ProcessFinder
    participant Engine
    participant Renderer

    User->>App: Trigger interaction (key press)
    App->>ViewMode: Check current view mode
    alt Dashboard view
        ViewMode->>Renderer: render dashboard (all modules)
        Renderer-->>User: Display dashboard tiles
    else ZoomIn view
        ViewMode->>App: Get zoomed module (e.g., "process")
        App->>ProcessFinder: Activate process finder
        User->>ProcessFinder: Enter search query
        ProcessFinder->>Engine: Apply fuzzy filter (nucleo-matcher)
        Engine-->>ProcessFinder: Filtered process list
        ProcessFinder->>Renderer: Render process entries
        Renderer-->>User: Display fuzzy-matched processes
    end
    User->>App: Navigate or zoom out
    App->>ViewMode: Transition to Dashboard
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Poem

🐰 Fuzzy whiskers twitch with glee,
Fzf-style finder, colors bright and free,
Nerd Fonts sparkle, icons dance,
Zoom and zoom in sweet romance,
Dashboard tiles in perfect array,
A TUI redesign, hip-hip-hooray! 🎉

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/tui-redesign

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@socket-security
Copy link

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednucleo-matcher@​0.3.11001009310070

View full report

@dev-dami dev-dami merged commit 67d4e29 into main Mar 8, 2026
3 of 4 checks passed
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