Skip to content

juandagalo/fresh-mango

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

     _)
  __               _      __  __
 / _|_ _ ___  ___ | |__  |  \/  |__ _ _ _  __ _ ___
|  _| '_/ -_)(_-< | '_ \ | |\/| / _` | ' \/ _` / _ \
|_| |_| \___)/___||_||_| |_|  |_\__,_|_||_\__, \___/
                                           |___/

CI

A terminal UI for Linux fan control via nbfc-linux, built with the Charmbracelet stack.

Features

  • Dashboard β€” Live CPU temperature and fan speed monitoring with real-time graphs
  • Curve Editor β€” Visual temperature-to-fan-speed threshold editor
  • Installer Wizard β€” Guided setup for nbfc-linux detection, model configuration, and service activation
  • Hub Navigation β€” Central hub-and-spoke menu for quick access to all views
  • Warm Ember Theme β€” Amber/teal color palette designed for extended terminal sessions

Screenshots

Requirements

  • Go 1.24+
  • Linux (nbfc-linux is Linux-only)
  • nbfc-linux installed and available on $PATH

Installation

From source (recommended)

git clone https://github.com/juandagalo/fresh-mango.git
cd fresh-mango
make build

The binary is written to ./freshMango.

With go install

go install github.com/mango/freshMango@latest

Usage

# Run freshMango (some nbfc operations require root)
freshMango

# Or with sudo for full fan control
sudo freshMango

On first run, if nbfc-linux is not detected or not configured, freshMango launches the Installer Wizard to walk you through setup. Once configured, the app opens to the Hub where you can navigate to any view.

Key Bindings

Key Action
↑ / k Move up
↓ / j Move down
1–6 Jump to menu item
Enter Select / confirm
Esc Back to hub
q Quit

Architecture

freshMango/
β”œβ”€β”€ main.go                 # Entry point β€” launches Bubble Tea program
β”œβ”€β”€ internal/
β”‚   β”œβ”€β”€ tui/                # Terminal UI layer (Bubble Tea models & views)
β”‚   β”‚   β”œβ”€β”€ app.go          # Root model, startup state machine, view routing
β”‚   β”‚   β”œβ”€β”€ hub.go          # Hub menu (central navigation)
β”‚   β”‚   β”œβ”€β”€ dashboard.go    # Live monitoring view
β”‚   β”‚   β”œβ”€β”€ curve.go        # Curve editor view
β”‚   β”‚   β”œβ”€β”€ installer.go    # Installer wizard (setup flow)
β”‚   β”‚   └── styles.go       # Warm Ember theme (colors & Lipgloss styles)
β”‚   β”œβ”€β”€ nbfc/               # nbfc-linux CLI wrapper
β”‚   β”‚   └── nbfc.go         # Commands: status, config set/list, start/stop
β”‚   └── system/             # System-level utilities
β”‚       └── system.go       # Root detection, command execution helpers
β”œβ”€β”€ Makefile                # Build, test, lint, coverage targets
└── .github/
    └── workflows/ci.yml    # CI pipeline (lint, test, build)

Stack: Bubble Tea (TUI framework) Β· Lipgloss (styling) Β· nbfc-linux (fan control backend)

Roadmap

Phase Focus Status
1 Foundation βœ… Complete β€” theme, hub, installer wizard, smart entry routing
2 Core Controls πŸ”œ Next β€” fan speed override, profile switching
3 Profiles & Sensors πŸ”œ Planned β€” sensor configuration UI, config rating system
4 IPC & Polish πŸ”œ Planned β€” real-time IPC, dashboard enhancements, settings

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for guidelines on branching, commit messages, and the pull request process.

This project uses Conventional Commits and enforces quality gates via make check.

License

This project is released under the MIT License.

About

πŸ₯­ A terminal UI for Linux fan control via nbfc-linux. Built with Go + Bubble Tea.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors