mirror of
https://github.com/tw93/Mole.git
synced 2026-02-04 13:16:47 +00:00
Status supports temperature display
This commit is contained in:
5
.gitignore
vendored
5
.gitignore
vendored
@@ -39,9 +39,12 @@ temp/
|
||||
*.pid
|
||||
*.lock
|
||||
|
||||
# Claude Code
|
||||
# AI Assistant Instructions
|
||||
.claude/
|
||||
CLAUDE.md
|
||||
AGENT.md
|
||||
GEMINI.md
|
||||
.cursorrules
|
||||
copilot-instructions.md
|
||||
|
||||
# Go build artifacts (development)
|
||||
|
||||
30
README.md
30
README.md
@@ -18,11 +18,11 @@
|
||||
|
||||
## Features
|
||||
|
||||
1. All-in-one toolkit equal to CleanMyMac + AppCleaner + DaisyDisk + Sensei + iStat in one trusted binary.
|
||||
2. Deep cleanup finds and removes caches, temp files, browser leftovers, and junk to free up tens of gigabytes.
|
||||
3. Smart uninstall finds app bundles plus launch agents, settings, caches, logs, and leftover files.
|
||||
4. Disk insight + optimization show large files, display folders, rebuild caches, clean swap, refresh services.
|
||||
5. Live status shows CPU, GPU, memory, disk, network, battery, and proxy data so you can find problems.
|
||||
- All-in-one toolkit equal to CleanMyMac + AppCleaner + DaisyDisk + Sensei + iStat in one trusted binary
|
||||
- Deep cleanup finds and removes caches, temp files, browser leftovers, and junk to free up tens of gigabytes
|
||||
- Smart uninstall finds app bundles plus launch agents, settings, caches, logs, and leftover files
|
||||
- Disk insight + optimization show large files, display folders, rebuild caches, clean swap, refresh services
|
||||
- Live status shows CPU, GPU, memory, disk, network, battery, and proxy data so you can find problems
|
||||
|
||||
## Quick Start
|
||||
|
||||
@@ -63,12 +63,12 @@ mo optimize --whitelist # Adjust protected optimization items
|
||||
|
||||
## Tips
|
||||
|
||||
- Safety first, if your Mac is very important, wait for Mole to become stable before full cleanups.
|
||||
- Preview the cleanup by running `mo clean --dry-run` and reviewing the list.
|
||||
- Use `mo clean --whitelist` to manage protected caches.
|
||||
- Use `mo touchid` to approve sudo with Touch ID instead of typing your password.
|
||||
- Prefer Vim-style navigation? All menus understand `h/j/k/l` in addition to the arrow keys.
|
||||
- Run into issues? Use `--debug` flag to see detailed operation logs: `mo clean --debug`
|
||||
- **Terminal**: Use Alacritty, kitty, WezTerm, Ghostty, or Warp for best compatibility. Avoid macOS Terminal and iTerm2 due to known issues
|
||||
- **Safety**: Preview cleanup with `mo clean --dry-run` before running full cleanup
|
||||
- **Whitelist**: Use `mo clean --whitelist` to manage protected caches
|
||||
- **Touch ID**: Run `mo touchid` to approve sudo with Touch ID instead of password
|
||||
- **Navigation**: All menus support Vim keys `h/j/k/l` in addition to arrow keys
|
||||
- **Debug**: Use `--debug` flag to see detailed logs: `mo clean --debug`
|
||||
|
||||
## Features in Detail
|
||||
|
||||
@@ -133,7 +133,7 @@ System: 5/32 GB RAM | 333/460 GB Disk (72%) | Uptime 6d
|
||||
System optimization completed
|
||||
====================================================================
|
||||
|
||||
You can use `mo optimize --whitelist` to manage which optimization items (like rebuilding specific caches or refreshing services) are protected from being run. This is useful for preventing Mole from interfering with specific system configurations or third-party applications you rely on.
|
||||
Use `mo optimize --whitelist` to protect specific optimization items from being run.
|
||||
```
|
||||
|
||||
### Disk Space Analyzer
|
||||
@@ -179,7 +179,7 @@ Up ▮▯▯▯▯ 0.8 MB/s Chrome ▮▮▮▯▯ 2
|
||||
Proxy HTTP · 192.168.1.100 Terminal ▮▯▯▯▯ 12.5%
|
||||
```
|
||||
|
||||
Health score calculated from CPU, memory, disk, temperature, and I/O load. Color-coded by range.
|
||||
Health score based on CPU, memory, disk, temperature, and I/O load. Color-coded by range.
|
||||
|
||||
## Quick Launchers
|
||||
|
||||
@@ -189,9 +189,7 @@ Launch Mole commands instantly from Raycast or Alfred:
|
||||
curl -fsSL https://raw.githubusercontent.com/tw93/Mole/main/scripts/setup-quick-launchers.sh | bash
|
||||
```
|
||||
|
||||
Adds 5 commands: `clean`, `uninstall`, `optimize`, `analyze`, `status`. Finds your terminal automatically or set `MO_LAUNCHER_APP=<name>` to override.
|
||||
|
||||
For Raycast, reload by running `Reload Script Directories` or restarting Raycast. For Alfred, workflows are registered automatically and ready to use.
|
||||
Adds 5 commands: `clean`, `uninstall`, `optimize`, `analyze`, `status`. Finds your terminal automatically or set `MO_LAUNCHER_APP=<name>` to override. For Raycast, search "Reload Script Directories" to load new commands.
|
||||
|
||||
## Support
|
||||
|
||||
|
||||
BIN
bin/status-go
BIN
bin/status-go
Binary file not shown.
@@ -201,7 +201,7 @@ func renderHeader(m MetricsSnapshot, errMsg string, animFrame int, termWidth int
|
||||
if errMsg != "" {
|
||||
return lipgloss.JoinVertical(lipgloss.Left, headerLine, "", mole, dangerStyle.Render(errMsg), "")
|
||||
}
|
||||
return headerLine + "\n\n" + mole
|
||||
return headerLine + "\n" + mole
|
||||
}
|
||||
|
||||
func getScoreStyle(score int) lipgloss.Style {
|
||||
@@ -531,7 +531,7 @@ func renderBatteryCard(batts []BatteryStatus, thermal ThermalStatus) cardData {
|
||||
}
|
||||
lines = append(lines, statusStyle.Render(statusText+statusIcon))
|
||||
|
||||
// Line 3: Health + cycles
|
||||
// Line 3: Health + cycles + temp
|
||||
healthParts := []string{}
|
||||
if b.Health != "" {
|
||||
healthParts = append(healthParts, b.Health)
|
||||
@@ -539,29 +539,28 @@ func renderBatteryCard(batts []BatteryStatus, thermal ThermalStatus) cardData {
|
||||
if b.CycleCount > 0 {
|
||||
healthParts = append(healthParts, fmt.Sprintf("%d cycles", b.CycleCount))
|
||||
}
|
||||
|
||||
// Add temperature if available
|
||||
if thermal.CPUTemp > 0 {
|
||||
tempStyle := subtleStyle
|
||||
if thermal.CPUTemp > 80 {
|
||||
tempStyle = dangerStyle
|
||||
} else if thermal.CPUTemp > 60 {
|
||||
tempStyle = warnStyle
|
||||
}
|
||||
healthParts = append(healthParts, tempStyle.Render(fmt.Sprintf("%.0f°C", thermal.CPUTemp)))
|
||||
}
|
||||
|
||||
// Add fan speed if available
|
||||
if thermal.FanSpeed > 0 {
|
||||
healthParts = append(healthParts, fmt.Sprintf("%d RPM", thermal.FanSpeed))
|
||||
}
|
||||
|
||||
if len(healthParts) > 0 {
|
||||
lines = append(lines, subtleStyle.Render(strings.Join(healthParts, " · ")))
|
||||
}
|
||||
}
|
||||
|
||||
// Line 4: Temp + Fan combined
|
||||
var thermalParts []string
|
||||
if thermal.CPUTemp > 0 {
|
||||
tempStyle := okStyle
|
||||
if thermal.CPUTemp > 80 {
|
||||
tempStyle = dangerStyle
|
||||
} else if thermal.CPUTemp > 60 {
|
||||
tempStyle = warnStyle
|
||||
}
|
||||
thermalParts = append(thermalParts, tempStyle.Render(fmt.Sprintf("%.0f°C", thermal.CPUTemp)))
|
||||
}
|
||||
if thermal.FanSpeed > 0 {
|
||||
thermalParts = append(thermalParts, fmt.Sprintf("%d RPM", thermal.FanSpeed))
|
||||
}
|
||||
if len(thermalParts) > 0 {
|
||||
lines = append(lines, strings.Join(thermalParts, " · "))
|
||||
}
|
||||
|
||||
return cardData{icon: iconBattery, title: "Power", lines: lines}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user