[Feature Request] Customization: conditional formatting, alert rules, layout presets, CSV export, scriptable widgets
## Summary
A set of customization features that would let power users tailor Stats more aggressively. Filing together since they're thematically related; happy to split if maintainers prefer.
> Note: #3210 (closed) briefly touched threshold colors as part of the Liquid Glass widget rework. This issue is broader — applying conditional formatting and alerting across *all* modules, not just the new widgets.
## Requested features
### Conditional formatting per module
Let users define rules like:
- CPU > 80% → icon turns red
- RAM pressure > 70% → icon pulses
- Network upload > 50 MB/s → icon turns yellow
Today colors are hardcoded per module. A simple rules UI (metric, comparison, threshold, color/style) would unlock a lot of customization without much code.
### Custom alert rules / notifications
Trigger a macOS notification when:
- GPU > X% for Y minutes
- Battery temperature > Z°C
- Disk free space < N GB
- Any sensor crosses a user-defined bound
Rules-based, user-defined thresholds. Useful for spotting issues without staring at the menu bar.
### Layout presets
Let users save the current module configuration as a named preset and swap between them quickly:
- "Gaming" → GPU, CPU temp, fans, network
- "Dev" → CPU per-core, RAM pressure, disk I/O
- "Presentation" → minimal / battery only
Quick-swap via menu bar dropdown or hotkey. Saves the tedious "I want to change my whole layout" flow.
### CSV / JSON export of historical data
Stats already keeps a rolling history for charts. Letting users export it (per module, time range, format) would enable:
- Performance analysis across sessions
- Sharing diagnostics in bug reports
- Feeding data into other tools (Grafana, spreadsheets)
Simple "Export…" button in each module's settings.
### Reorderable popover sections via drag
Within a popover, let users drag sections (e.g. processes list, sensors, charts) to reorder them. Today the layout is fixed per module.
### Scriptable widgets
Let users write a small Swift snippet or shell command that returns a value/string for a custom menu bar slot. Lets power users surface anything Stats doesn't natively support (Docker container count, GitHub notifications, etc.) without forking. Could be sandboxed similarly to Übersicht or BitBar/SwiftBar — Stats wouldn't need to compete with those, just allow lightweight one-off scripts in its own bar.
## Why these together
All five are about giving users levers without bloating defaults. The current Stats UX is good for the default case; these would help the long tail of users who want it to fit their specific workflow.
0 条评论