- 删掉 MaxMind .mmdb 读取器、本地数据库控制器与「IP 归属地数据库」设置区块,去掉「归属地数据源」选择及 ipapi.is / DB-IP / ipinfo.io 解析;PublicAddressLookup 只向 cleanip.io 查询,结果按 IP 记一小时,收到 429 当天不再请求 - 设置同步文档不再带 geoSource / geoIncludeCity / geoAutoUpdate;公网 IP 缓存键升到第 4 版,旧数据源的缓存不再读取 - 网络详情:IP 地址区块标题不再放 cleanip.io 字标,只留在纯净度区块;纯净度色带改为直角 - 删除 server/geoip 的 GeoLite2 同步脚本;README、架构说明、第三方声明、官网与隐私页、译文同步,清掉 53 条不再使用的翻译
460 lines
37 KiB
HTML
460 lines
37 KiB
HTML
<!doctype html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>OpenStats — Mac 的状态,抬眼就看见</title>
|
||
<meta name="description" content="OpenStats 把 CPU、GPU、内存、网络与温度放进 macOS 菜单栏,还能调风扇、防休眠、一键清理。数据在本机读取,没有账号与统计上报。">
|
||
<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
|
||
<meta name="theme-color" content="#0b0b0d" media="(prefers-color-scheme: dark)">
|
||
<link rel="canonical" href="https://getopenstats.com/">
|
||
<meta property="og:title" content="OpenStats — Mac 的状态,抬眼就看见">
|
||
<meta property="og:description" content="CPU、GPU、内存、网络与温度常驻菜单栏,还能调风扇、防休眠、一键清理。">
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:url" content="https://getopenstats.com/">
|
||
<meta property="og:site_name" content="OpenStats">
|
||
<meta property="og:locale" content="zh_CN">
|
||
<meta property="og:image" content="https://getopenstats.com/assets/window-light.png">
|
||
<link rel="icon" href="assets/favicon.ico?v=ca6e7cfe" sizes="48x48">
|
||
<link rel="icon" type="image/png" sizes="32x32" href="assets/favicon-32.png?v=ca6e7cfe">
|
||
<link rel="apple-touch-icon" sizes="180x180" href="assets/apple-touch-icon.png?v=ca6e7cfe">
|
||
<script>
|
||
// 在样式生效前确定主题,避免深色模式下先闪一下白底
|
||
try {
|
||
const saved = localStorage.getItem("os-theme");
|
||
document.documentElement.dataset.theme = saved || (matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light");
|
||
} catch { document.documentElement.dataset.theme = "light"; }
|
||
</script>
|
||
<link rel="stylesheet" href="styles.css?v=ca6e7cfe">
|
||
<link rel="stylesheet" href="replica.css?v=ca6e7cfe">
|
||
</head>
|
||
<body>
|
||
|
||
<!-- ── 首屏:整屏就是一台 Mac ───────────────────────────────────────
|
||
菜单栏同时是全站导航;右侧的 OpenStats 读数、点开的详情弹窗与主窗口都是 HTML 重建,
|
||
数据由 replica.js 模拟。往下滚才是普通的介绍页。 -->
|
||
<header class="desktop" id="top">
|
||
<div class="desktop__wall" aria-hidden="true"></div>
|
||
|
||
<nav class="menubar" aria-label="站点导航">
|
||
<svg class="menubar__apple" viewBox="0 0 14 17" fill="currentColor" aria-hidden="true">
|
||
<path d="M11.5 9c0-1.9 1.5-2.8 1.6-2.9-.9-1.3-2.2-1.5-2.7-1.5-1.1-.1-2.2.7-2.8.7-.6 0-1.5-.7-2.4-.6-1.2 0-2.4.7-3 1.8-1.3 2.2-.3 5.4 1 7.2.6.8 1.3 1.8 2.2 1.7.9 0 1.2-.6 2.2-.6 1 0 1.3.6 2.2.5.9 0 1.5-.8 2.1-1.7.7-1 .9-1.9.9-1.9s-1.8-.7-1.8-2.7zM9.7 3.2c.5-.6.8-1.4.7-2.2-.7 0-1.6.5-2.1 1.1-.5.6-.9 1.4-.8 2.2.8.1 1.7-.4 2.2-1.1z"/>
|
||
</svg>
|
||
|
||
<div class="mb-menu">
|
||
<a class="mb-title mb-title--app" href="#top" aria-haspopup="menu" aria-expanded="false">OpenStats</a>
|
||
<div class="mb-drop" role="menu">
|
||
<a role="menuitem" href="#features">关于 OpenStats</a>
|
||
<a role="menuitem" href="#download">下载 for Mac…</a>
|
||
</div>
|
||
</div>
|
||
<div class="mb-menu">
|
||
<a class="mb-title" href="#features" aria-haspopup="menu" aria-expanded="false">功能</a>
|
||
<div class="mb-drop" role="menu">
|
||
<a role="menuitem" href="#styles">菜单栏风格</a>
|
||
<a role="menuitem" href="#network">网络详情与 DNS</a>
|
||
<a role="menuitem" href="#themes">主窗口与主题</a>
|
||
<a role="menuitem" href="#thermal">风扇与防休眠</a>
|
||
<a role="menuitem" href="#cleanup">清理与维护</a>
|
||
</div>
|
||
</div>
|
||
<div class="mb-menu">
|
||
<a class="mb-title" href="#privacy" aria-haspopup="menu" aria-expanded="false">隐私</a>
|
||
<div class="mb-drop" role="menu">
|
||
<a role="menuitem" href="#privacy">数据留在本机</a>
|
||
<a role="menuitem" href="#faq">辅助工具做什么</a>
|
||
</div>
|
||
</div>
|
||
<div class="mb-menu">
|
||
<a class="mb-title" href="#changelog" aria-haspopup="menu" aria-expanded="false">更新日志</a>
|
||
<div class="mb-drop" role="menu">
|
||
<a role="menuitem" href="#changelog">最近更新</a>
|
||
</div>
|
||
</div>
|
||
<div class="mb-menu">
|
||
<a class="mb-title" href="#faq" aria-haspopup="menu" aria-expanded="false">帮助</a>
|
||
<div class="mb-drop" role="menu">
|
||
<a role="menuitem" href="#faq">常见问题</a>
|
||
<a role="menuitem" href="#install">安装与卸载</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="menubar__right">
|
||
<!-- OpenStats 的菜单栏图标:每个指标一个,内容由 replica.js 按当前风格绘制 -->
|
||
<div class="mb-items" id="mbItems"></div>
|
||
<svg class="menubar__extra" width="19" height="11" viewBox="0 0 19 11" fill="none" stroke="currentColor" stroke-width="1.1" aria-hidden="true">
|
||
<rect x="0.6" y="0.6" width="14" height="9.8" rx="2.6"/><rect x="2.2" y="2.2" width="9" height="6.6" rx="1.4" fill="currentColor" stroke="none"/><path d="M16.4 4v3" stroke-linecap="round"/>
|
||
</svg>
|
||
<svg class="menubar__extra" width="15" height="11" viewBox="0 0 15 11" fill="none" stroke="currentColor" stroke-width="1.3" aria-hidden="true">
|
||
<path d="M1 4a9 9 0 0 1 13 0M3.5 6.5a5.5 5.5 0 0 1 8 0"/><circle cx="7.5" cy="9.4" r="1" fill="currentColor" stroke="none"/>
|
||
</svg>
|
||
<button class="mb-icon" id="themeToggle" type="button" aria-label="切换浅色 / 深色">
|
||
<svg class="mb-icon__moon" width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" aria-hidden="true"><path d="M12 8.6A5.4 5.4 0 1 1 5.4 2a4.2 4.2 0 0 0 6.6 6.6z"/></svg>
|
||
<svg class="mb-icon__sun" width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" aria-hidden="true"><circle cx="7" cy="7" r="2.6"/><path d="M7 .8v1.4M7 11.8v1.4M.8 7h1.4M11.8 7h1.4M2.6 2.6l1 1M10.4 10.4l1 1M11.4 2.6l-1 1M3.6 10.4l-1 1"/></svg>
|
||
</button>
|
||
<time class="menubar__clock" id="menubarClock"></time>
|
||
</div>
|
||
</nav>
|
||
|
||
<!-- 刘海岛:收起时是刘海,悬停或点击展开实时摘要 -->
|
||
<button class="island" id="island" type="button" aria-expanded="false" aria-label="展开 OpenStats 刘海岛">
|
||
<span class="island__compact">
|
||
<span class="island__dot"></span>
|
||
<span class="island__mini" data-bind="island-cpu">CPU 24%</span>
|
||
</span>
|
||
<span class="island__expanded" aria-hidden="true">
|
||
<span class="island__row">
|
||
<span class="island__brand"><img src="assets/icon.png?v=ca6e7cfe" alt="" width="18" height="18">OpenStats</span>
|
||
<span class="island__health" data-bind="island-health">各项指标正常</span>
|
||
</span>
|
||
<span class="island__grid">
|
||
<span class="island__tile"><span class="island__label">CPU</span><span class="island__value" data-bind="island-cpu-value">24%</span><span class="island__bar"><i data-bind="island-cpu-bar"></i></span></span>
|
||
<span class="island__tile"><span class="island__label">GPU</span><span class="island__value" data-bind="island-gpu-value">12%</span><span class="island__bar"><i data-bind="island-gpu-bar"></i></span></span>
|
||
<span class="island__tile"><span class="island__label">内存</span><span class="island__value" data-bind="island-mem-value">68%</span><span class="island__bar"><i data-bind="island-mem-bar"></i></span></span>
|
||
<span class="island__tile"><span class="island__label">温度</span><span class="island__value" data-bind="island-temp-value">52°</span><span class="island__bar"><i data-bind="island-temp-bar"></i></span></span>
|
||
</span>
|
||
<span class="island__foot">
|
||
<span><i class="dot dot--up"></i><b data-bind="island-up">12 KB/s</b></span>
|
||
<span><i class="dot dot--down"></i><b data-bind="island-down">1.4 MB/s</b></span>
|
||
<span data-bind="island-fan">风扇 1,840 RPM</span>
|
||
</span>
|
||
</span>
|
||
</button>
|
||
|
||
<!-- 左侧桌面图标 -->
|
||
<nav class="desk-icons" aria-label="快捷入口">
|
||
<a class="desk-icon" href="#download">
|
||
<span class="desk-icon__art desk-icon__art--dmg" aria-hidden="true"><img src="assets/icon.png?v=ca6e7cfe" alt="" width="40" height="40"></span>
|
||
<span class="desk-icon__name">OpenStats.dmg</span>
|
||
</a>
|
||
<a class="desk-icon" href="#faq">
|
||
<span class="desk-icon__art desk-icon__art--doc" aria-hidden="true"><span>FAQ</span></span>
|
||
<span class="desk-icon__name">常见问题</span>
|
||
</a>
|
||
<a class="desk-icon" href="#changelog">
|
||
<span class="desk-icon__art desk-icon__art--doc" aria-hidden="true"><span>LOG</span></span>
|
||
<span class="desk-icon__name">更新日志</span>
|
||
</a>
|
||
<a class="desk-icon" href="#privacy">
|
||
<span class="desk-icon__art desk-icon__art--folder" aria-hidden="true"></span>
|
||
<span class="desk-icon__name">隐私说明</span>
|
||
</a>
|
||
</nav>
|
||
|
||
<!-- 欢迎窗口:首屏的主要文案 -->
|
||
<section class="window hero" aria-labelledby="heroTitle">
|
||
<div class="window__bar">
|
||
<span class="window__lights" aria-hidden="true"><i></i><i></i><i></i></span>
|
||
<span class="window__title">欢迎使用 OpenStats</span>
|
||
</div>
|
||
<div class="window__body hero__body">
|
||
<img class="hero__icon" src="assets/icon.png?v=ca6e7cfe" alt="OpenStats 图标" width="72" height="72">
|
||
<h1 class="hero__title" id="heroTitle">Mac 的状态,抬眼就看见</h1>
|
||
<p class="hero__lead">CPU、GPU、内存、网络与温度常驻菜单栏,还能调风扇、防休眠、一键清理。所有数据在本机读取,没有账号与统计上报。</p>
|
||
<div class="hero__actions">
|
||
<a class="btn btn--primary" href="#download">下载 for Mac</a>
|
||
<a class="btn btn--secondary" href="#changelog">更新日志</a>
|
||
</div>
|
||
<p class="hero__meta">macOS 14 及以上 · Apple Silicon · 已签名并经 Apple 公证</p>
|
||
<p class="hero__hint">点右上角菜单栏里的 CPU、内存或网速,看看每一项的详情 ↗</p>
|
||
<button class="hero__link" id="heroOpenWindow" type="button">或者打开 OpenStats 主窗口</button>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- 菜单栏详情弹窗与主窗口:由 replica.js 渲染 -->
|
||
<div class="os-popover" id="osPopover" role="dialog" aria-label="OpenStats 详情" hidden></div>
|
||
<div class="os-window" id="osWindow" role="dialog" aria-label="OpenStats 主窗口" hidden></div>
|
||
|
||
<!-- 程序坞 -->
|
||
<nav class="dock" aria-label="程序坞">
|
||
<a class="dock__item" href="#features" title="访达"><span class="dock__art dock__art--finder" aria-hidden="true"></span></a>
|
||
<button class="dock__item" id="dockOpenStats" type="button" title="打开 OpenStats"><img class="dock__art" src="assets/icon.png?v=ca6e7cfe" alt="OpenStats"></button>
|
||
<a class="dock__item" href="#thermal" title="风扇与防休眠"><span class="dock__art dock__art--fan" aria-hidden="true"></span></a>
|
||
<a class="dock__item" href="#cleanup" title="清理"><span class="dock__art dock__art--clean" aria-hidden="true"></span></a>
|
||
<a class="dock__item" href="#install" title="Homebrew 安装"><span class="dock__art dock__art--terminal" aria-hidden="true"></span></a>
|
||
<span class="dock__divider" aria-hidden="true"></span>
|
||
<a class="dock__item" href="#download" title="下载"><span class="dock__art dock__art--download" aria-hidden="true"></span></a>
|
||
</nav>
|
||
|
||
<a class="scroll-cue" href="#features" aria-label="继续了解">继续了解 ↓</a>
|
||
</header>
|
||
|
||
<main>
|
||
<section class="band" id="features">
|
||
<div class="shell">
|
||
<div class="section-head">
|
||
<h2>每个指标一个图标,点开就是详情</h2>
|
||
<p>原生 Swift 编写,只显示菜单栏时约 0.3% CPU、16 MB 内存。</p>
|
||
</div>
|
||
<ul class="feature-grid">
|
||
<li class="feature">
|
||
<h3>八种菜单栏风格</h3>
|
||
<p>双行文字、圆环、饼图、柱状历史……整体选一种统一套用,也能给单个指标单独指定。</p>
|
||
</li>
|
||
<li class="feature">
|
||
<h3>单项详情,按需显示</h3>
|
||
<p>CPU、内存、网络、GPU、温度各有一个窄弹窗,显示哪些区块由你勾选;另有侧边栏主窗口看全部。</p>
|
||
</li>
|
||
<li class="feature">
|
||
<h3>网络详情与 DNS</h3>
|
||
<p>本地与公网 IPv4 / IPv6、归属地与 ASN、连接探测格子,一键刷新 DNS 或切换 Cloudflare、Google、腾讯、阿里云。</p>
|
||
</li>
|
||
<li class="feature">
|
||
<h3>风扇调速与防休眠</h3>
|
||
<p>自动、降温、强冷、自定义风扇;屏幕常亮、合上屏幕继续运行,过热或电量过低时自动恢复。</p>
|
||
</li>
|
||
<li class="feature">
|
||
<h3>安全的清理</h3>
|
||
<p>缓存、日志、浏览器与开发者缓存先扫描预览再清理,钥匙串、Cookie 与历史记录一律不碰。</p>
|
||
</li>
|
||
<li class="feature">
|
||
<h3>数据留在本机</h3>
|
||
<p>指标来自本机内核、IOKit 与 SMC,没有账号、没有统计上报;公网 IP 查询与连接探测都可关闭。</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="band band--alt" id="styles">
|
||
<div class="shell">
|
||
<div class="section-head">
|
||
<h2>菜单栏风格,由你挑</h2>
|
||
<p>点一下下面的风格,页面顶部菜单栏里的 OpenStats 会立即换成这个样子。</p>
|
||
</div>
|
||
<div class="style-picker" id="stylePicker" role="radiogroup" aria-label="菜单栏风格"></div>
|
||
<div class="style-preview">
|
||
<div class="style-preview__bar style-preview__bar--light" id="stylePreviewLight"></div>
|
||
<div class="style-preview__bar style-preview__bar--dark" id="stylePreviewDark"></div>
|
||
<p class="style-preview__caption" id="styleCaption"></p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="band" id="network">
|
||
<div class="shell split">
|
||
<div class="split__text">
|
||
<h2>网络,一眼看到底</h2>
|
||
<ul class="check-list">
|
||
<li>上下镜像的流量历史,上传绿、下载蓝</li>
|
||
<li>连接探测格子:每 1 / 2 / 5 秒 ping 一次,延迟、抖动、丢包一目了然</li>
|
||
<li>本地与公网 IPv4 / IPv6、路由器、Wi‑Fi 信号,点一下就拷贝</li>
|
||
<li>归属地显示国旗、城市、ASN 与网络运营方</li>
|
||
<li>一键刷新 DNS 缓存,一键切换 Cloudflare、Google、腾讯 DNSPod、阿里云,或手动填写</li>
|
||
<li>各进程的上传与下载速率</li>
|
||
</ul>
|
||
<p class="note">公网 IP 查询与连接探测都可以在设置里关闭。修改 DNS 需要管理员权限。</p>
|
||
</div>
|
||
<figure class="shot shot--popover split__media">
|
||
<img class="shot--light" src="assets/popover-network-light.png?v=ca6e7cfe" alt="OpenStats 网络详情弹窗" loading="lazy">
|
||
<img class="shot--dark" src="assets/popover-network-dark.png?v=ca6e7cfe" alt="OpenStats 网络详情弹窗,深色" loading="lazy">
|
||
</figure>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="band band--alt" id="themes">
|
||
<div class="shell">
|
||
<div class="section-head">
|
||
<h2>白底蓝,黑底蓝,一套外观</h2>
|
||
<p>主窗口、设置和弹窗共用同一底色,侧边栏与标题栏不分栏着色;窗口宽高都能拖动调整。</p>
|
||
</div>
|
||
<div class="shots">
|
||
<figure class="shot"><img src="assets/window-light.png?v=ca6e7cfe" alt="OpenStats 主窗口仪表盘,浅色" loading="lazy"><figcaption>浅色</figcaption></figure>
|
||
<figure class="shot"><img src="assets/window-dark.png?v=ca6e7cfe" alt="OpenStats 主窗口仪表盘,深色" loading="lazy"><figcaption>深色</figcaption></figure>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="band" id="thermal">
|
||
<div class="shell split">
|
||
<div class="split__text">
|
||
<h2>热了就吹,要跑就别睡</h2>
|
||
<table class="mode-table">
|
||
<thead><tr><th>风扇模式</th><th>作用</th></tr></thead>
|
||
<tbody>
|
||
<tr><td>自动</td><td>交还 macOS 温控</td></tr>
|
||
<tr><td>降温</td><td>最低到最高转速之间的 60%</td></tr>
|
||
<tr><td>强冷</td><td>最高转速</td></tr>
|
||
<tr><td>自定义</td><td>滑块自由设定</td></tr>
|
||
</tbody>
|
||
</table>
|
||
<p>合盖后继续运行适合下载、渲染和远程连接。使用电池且电量低于下限时会自动关闭,避免在包里过热。</p>
|
||
<p class="note">风扇与合盖运行需要安装一次辅助工具。它只提供固定的几个操作,不执行任意命令,应用退出时自动恢复设置。</p>
|
||
</div>
|
||
<figure class="shot split__media"><img src="assets/thermal.png?v=ca6e7cfe" alt="OpenStats 散热页面" loading="lazy"></figure>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="band band--alt" id="cleanup">
|
||
<div class="shell split split--reverse">
|
||
<div class="split__text">
|
||
<h2>先看清再清理</h2>
|
||
<ul class="check-list">
|
||
<li>应用缓存、日志与崩溃报告</li>
|
||
<li>Chrome、Edge、Brave、Arc、Firefox、Safari 缓存</li>
|
||
<li>Xcode 编译缓存、模拟器与 npm 缓存</li>
|
||
<li>未完成的下载、安装包、废纸篓</li>
|
||
<li>一键刷新 DNS 缓存、释放内存</li>
|
||
</ul>
|
||
<p>只处理白名单目录;正在运行的应用会跳过,浏览器需先退出;删除前每一项再校验一次,所有操作写入日志。</p>
|
||
</div>
|
||
<figure class="shot split__media"><img src="assets/cleaner.png?v=ca6e7cfe" alt="OpenStats 清理页面" loading="lazy"></figure>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="band" id="privacy">
|
||
<div class="shell narrow">
|
||
<div class="section-head">
|
||
<h2>数据不出这台 Mac</h2>
|
||
<p>没有统计上报。账号是可选的,只用来同步偏好设置;另有两项可关闭的网络功能会联网。</p>
|
||
</div>
|
||
<ul class="fact-list">
|
||
<li><b>指标来源</b><span>内核接口(host_processor_info、host_statistics64、sysctl)、IOKit 与 SMC</span></li>
|
||
<li><b>账号</b><span>可选。用 GitHub、Google 或 Apple 登录后,偏好设置同步到你的其他 Mac;云端只保存邮箱、姓名与设置文档,可随时删除。详见<a href="privacy.html">隐私政策</a></span></li>
|
||
<li><b>统计上报</b><span>没有</span></li>
|
||
<li><b>公网 IP</b><span>打开网络详情时向 Cloudflare 查询一次公网地址,10 分钟内不重复,可关闭</span></li>
|
||
<li><b>归属地</b><span>归属地、ASN、网络类型与纯净度评分来自 cleanip.io,这台 Mac 直接向它查自己的公网 IP,只发送这个地址</span></li>
|
||
<li><b>连接探测</b><span>按设定间隔 ping 你选择的目标,只在显示网络项时运行,可关闭</span></li>
|
||
<li><b>偏好设置</b><span>保存在本机;登录后同步的那一份不含任何监控数据</span></li>
|
||
</ul>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="band band--alt" id="download">
|
||
<div class="shell narrow download">
|
||
<img src="assets/icon.png?v=ca6e7cfe" alt="" width="96" height="96">
|
||
<h2>下载 OpenStats</h2>
|
||
<p>使用 Developer ID 签名并经过 Apple 公证,打开时不会遇到安全拦截。</p>
|
||
<div class="hero__actions">
|
||
<a class="btn btn--primary" href="download/OpenStats-0.2.0.dmg">下载 OpenStats 0.2.0</a>
|
||
<a class="btn btn--secondary" href="#changelog">这个版本更新了什么</a>
|
||
</div>
|
||
<p class="hero__meta">macOS 14 Sonoma 及以上 · 简体中文界面</p>
|
||
<p class="download__brew">也可以用 Homebrew 安装:<code>brew install --cask gentpan/tap/openstats</code></p>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="band" id="changelog">
|
||
<div class="shell narrow">
|
||
<div class="section-head">
|
||
<h2>更新日志</h2>
|
||
<p>每天改了什么,都记在这里。</p>
|
||
</div>
|
||
<!-- changelog:start -->
|
||
<!-- 由 Scripts/sync_changelog.py 从 CHANGELOG.md 生成,请勿手改。 -->
|
||
<div class="log">
|
||
<article class="log__day">
|
||
<div class="log__head"><time datetime="2026-09-13">2026-09-13</time><span class="log__tag">0.2.0</span></div>
|
||
<p class="log__counts">新增 30 · 样式 12 · 修复 6</p>
|
||
<ul class="log__list">
|
||
<li><span class="log__kind">新增</span>菜单栏显示 CPU、GPU、内存、网速、CPU 温度和风扇转速。</li>
|
||
<li><span class="log__kind">新增</span>菜单栏风格:双行文字、单行文字、图标、圆环、饼图、柱状历史、电量条、状态圆点八种,整体选择一种统一套用,也可以给个别指标单独指定。设置里每种风格都有用示例数据画出的预览和说明,柱状历史注明是最近 10 次采样的变化。</li>
|
||
<li><span class="log__kind">新增</span>网速有双行圆点、双行箭头、单行三种样式,绿色上传、蓝色下载,带完整单位。</li>
|
||
<li><span class="log__kind">新增</span>鼠标悬停在菜单栏图标上显示完整读数。</li>
|
||
<li><span class="log__kind">新增</span>菜单栏布局:每项独立(每个指标一个图标,点击弹出该项的窄详情)或合并为一个(点击打开主窗口)。每个详情里显示哪些区块可以在设置中逐个勾选。</li>
|
||
<li><span class="log__kind">新增</span>详情弹窗:CPU(负载历史、各核心、处理器信息、高占用进程)、内存(使用历史、内存构成与释放内存、高占用进程)、GPU、温度与风扇(各组温度、风扇转速与快捷模式)。</li>
|
||
<li><span class="log__kind">新增</span>网络详情:上下镜像的流量历史;连接探测格子(每 1 / 2 / 5 秒 ping 一次 Cloudflare、Google、阿里云、腾讯或路由器,显示延迟、抖动、丢包);接口、物理地址、Wi-Fi 信号与速率、VPN / 代理;本地 IPv4 / IPv6、路由器、公网 IPv4 / IPv6,点击即可拷贝;归属地显示 SVG 国旗、城市、ASN 与网络运营方;各进程上传下载速率。</li>
|
||
<li><span class="log__kind">新增</span>DNS:显示正在使用的 DNS 与配置方式,一键刷新 DNS 缓存,一键切换为自动、Cloudflare、Google、腾讯 DNSPod、阿里云,或手动填写地址(逐个校验为 IPv4 / IPv6)。流量经过 VPN / 代理时提示 DNS 可能被接管。</li>
|
||
</ul>
|
||
<details class="log__rest">
|
||
<summary>还有 40 项</summary>
|
||
<ul class="log__list">
|
||
<li><span class="log__kind">新增</span>主窗口:左侧边栏切换仪表盘、CPU、GPU、内存、网络、温度与风扇、进程、防休眠、清理;指标页右上角直接开关该项的菜单栏显示;宽度与高度都可调整,卡片按比例放大。打开主窗口时应用出现在程序坞中,关闭后回到仅菜单栏运行。</li>
|
||
<li><span class="log__kind">新增</span>CPU 详情:顶部是占用、状态(空闲 / 适中 / 繁忙 / 满载)、与 30 秒前相比的变化和温度余量,下面是走势线与用户 / 系统 / 空闲构成条;核心热力图(每行一个核心、每列一次采样);核心分工(各类核心平均占用与最忙的核心);排队程度(平均负载折算到每个核心,并提示负载在上升还是下降);按应用汇总 CPU。</li>
|
||
<li><span class="log__kind">新增</span>内存详情:顶部是还可用多少、压力状态与最近 60 秒的压力走势条;内存水位条(App / 联动 / 压缩 / 缓存 / 空闲);压缩与交换(压缩省下的内存、压缩比、交换区用量与实时换入换出速率,持续写盘时提示);按应用汇总内存(合并辅助进程,显示占已用内存的比例)。</li>
|
||
<li><span class="log__kind">新增</span>用 Apple 智能解释进程:在进程上右键或点进程页的星形按钮,由系统自带的本机大模型说明它是什么、占用是否正常、能否退出;把路径、所属应用和签名方一起交给模型以减少猜测,全程不联网(需要 macOS 26 并开启 Apple 智能)。</li>
|
||
<li><span class="log__kind">新增</span>IP 归属地改为本地 MaxMind GeoLite2 数据库查询:自己实现 .mmdb 读取器(不依赖第三方库),国家、城市与 ASN 完全离线查;数据库由官网服务器每周二、周五用 MaxMind 账号同步,应用每 3 天检查清单、下载并按 sha256 校验后替换,也可以从文件导入;设置中可选是否包含城市库(约 60 MB);数据库就绪前暂用 ipinfo.io 在线查询,网络详情里标明数据来源。</li>
|
||
<li><span class="log__kind">新增</span>本机信息页:机型图与名称、系统版本与版号、芯片与各类核心、内存与图形、存储用量、电池健康与循环次数、每台显示器的尺寸 / 原生分辨率 / 显示分辨率 / 刷新率、机型标识符、序列号(默认遮住,点眼睛图标显示,截图时始终遮住)与启动时间。</li>
|
||
<li><span class="log__kind">新增</span>进程管理器(主窗口“进程”页):包括 root 与其他用户的系统进程(通过系统自带的 ps 读取,不需要辅助工具);列出 CPU、CPU 时间、内存、线程、唤醒次数、磁盘读写与用户,点列标题排序;可搜索名称、PID 或用户,筛选全部 / 我的 / 系统,切换按进程或按应用合并;选中后显示路径与详情,可在访达中显示、用 Apple 智能解释、退出或强制退出(二次确认,系统进程与 loginwindow 等禁止结束);底部汇总用户 / 系统 / 空闲与全系统进程数、线程数。</li>
|
||
<li><span class="log__kind">新增</span>进程显示应用的本地化名称(如“微信”);按应用汇总时,同一应用的主进程与辅助进程合并计算。</li>
|
||
<li><span class="log__kind">新增</span>仪表盘顶部是健康评分和芯片、内存、系统版本、运行时长、机型徽章,下面是 CPU 柱状历史、GPU 折线、内存面积图、磁盘、网络双线、风扇三列卡片,以及核心负载、电池环形图、高占用进程和快捷开关。</li>
|
||
<li><span class="log__kind">新增</span>CPU 按超级核、性能核、能效核分组显示各核心负载;内存口径与活动监视器一致,并显示内存压力;网速读取 64 位计数器,大流量下不会回绕。</li>
|
||
<li><span class="log__kind">新增</span>温度与风扇:启动时枚举一次 SMC 键并按前缀归类,不按芯片型号硬编码,显示 CPU、GPU、内存、电池和掌托温度。</li>
|
||
<li><span class="log__kind">新增</span>按界面需要分级采样:只显示菜单栏时只采集菜单栏用到的指标,打开详情或主窗口时按页面加采,锁屏、屏幕休眠和系统睡眠时暂停。</li>
|
||
<li><span class="log__kind">新增</span>风扇调速:自动、降温、强冷、自定义四种模式。自定义模式下 CPU 达到安全温度会自动交还系统控制,应用退出或断开连接时风扇恢复自动。</li>
|
||
<li><span class="log__kind">新增</span>防休眠:屏幕保持常亮、仅系统不休眠、合盖后继续运行,可设定持续时间;使用电池且电量低于下限时自动关闭合盖运行。</li>
|
||
<li><span class="log__kind">新增</span>辅助工具:通过 SMAppService 注册,只提供设置风扇转速、切换合盖不睡眠、刷新 DNS、释放内存、为网络服务设置 DNS 几个固定操作(DNS 地址与服务名在辅助工具内再次校验);运行时读取自己的签名团队,只接受同一团队签名的 OpenStats 调用;异常退出后下次开机自动恢复风扇与睡眠设置。</li>
|
||
<li><span class="log__kind">新增</span>清理:扫描应用缓存、日志与崩溃报告、Chrome / Edge / Brave / Arc / Firefox / Safari 缓存、Xcode 编译缓存、模拟器缓存、npm 缓存、Xcode 归档、未完成的下载、安装包和废纸篓。按类别显示大小,可展开查看具体项目;清理前二次确认,操作写入 <code>~/Library/Logs/OpenStats/cleanup.log</code>。</li>
|
||
<li><span class="log__kind">新增</span>清理的安全边界:只清理白名单目录,钥匙串、密码管理器、VPN、Cookie、历史记录一律不碰;正在运行的应用和浏览器自动跳过,执行前逐项重新校验。</li>
|
||
<li><span class="log__kind">新增</span>系统维护:一键刷新 DNS 缓存、释放内存,已安装辅助工具时直接执行,否则请求一次管理员授权。</li>
|
||
<li><span class="log__kind">新增</span>进程页按 CPU 或内存排序,辅助进程归并显示为所属应用。</li>
|
||
<li><span class="log__kind">新增</span>设置(主窗口侧边栏的“设置”分组):外观、登录时启动、刷新频率、温度单位、菜单栏布局 / 显示项 / 样式 / 弹窗内容、连接探测与公网 IP 查询、风扇安全温度、合盖运行电量下限、辅助工具安装与卸载。</li>
|
||
<li><span class="log__kind">新增</span>统一外观:浅色为白底蓝色、深色为黑底蓝色,主窗口与弹窗共用同一底色;侧边栏、标题栏与页面不分栏着色,红绿灯按钮与页面标题对齐;卡片为浅灰 / 深灰实色。侧边栏的太阳 / 月亮按钮一键切换,也可以跟随系统。</li>
|
||
<li><span class="log__kind">新增</span>截图命令 <code>OpenStats --snapshot <目录></code>:用本机实时数据渲染主窗口各页、详情弹窗、设置和菜单栏的浅色与深色截图,IP 与硬件地址替换为示例值。</li>
|
||
<li><span class="log__kind">样式</span>网络详情的流量历史:上传 / 下载峰值移到标题行(“60 秒峰值 ↑ … ↓ …”,箭头按上传绿、下载蓝着色),图表上不再压文字。</li>
|
||
<li><span class="log__kind">样式</span>设置并入主窗口:侧边栏新增“设置”分组(通用、菜单栏、辅助工具、关于);网络设置(连接探测、公网 IP、IP 归属地数据库)放到“网络”页底部,风扇安全温度放到“温度与风扇”页底部,合盖运行电量下限放到“防休眠”页底部;弹窗齿轮、菜单栏右键“设置…”与 ⌘, 都打开主窗口的通用设置;不再有单独的设置窗口,已有偏好全部保留;导航较多时侧边栏可滚动。</li>
|
||
<li><span class="log__kind">样式</span>主窗口侧边栏的选中样式:左侧一条两端渐隐的细线,选中项有发光的蓝色光条,切换时带回弹地滑过去,右侧拖出渐淡的蓝色高亮;不再整块填蓝。</li>
|
||
<li><span class="log__kind">样式</span>仪表盘“快捷开关”改为开关样式:防休眠、合盖运行、散热模式各一行,右侧开关,下面一行小字说明当前状态。</li>
|
||
<li><span class="log__kind">样式</span>进程表按窗口宽度自动隐藏次要列,窄窗口里名称列不会被挤没。</li>
|
||
<li><span class="log__kind">样式</span>内存详情的“释放内存”移到标题栏,执行中与完成后在按钮上显示进度和结果;主窗口内存页顶栏同样提供。</li>
|
||
<li><span class="log__kind">样式</span>主窗口默认 1072×720,可自由调整大小;滚动条改为浮层样式,只在滚动时出现。</li>
|
||
<li><span class="log__kind">样式</span>菜单栏字号缩小并统一:两行布局为 7pt 标签加 10pt 数值,单行布局 11pt,网速两行 9pt;每种风格内部只用一套字号,指标之间留出更宽的间距。</li>
|
||
<li><span class="log__kind">样式</span>柱状历史去掉满高的灰色底槽,只保留一条淡基线,负载起伏更清楚。</li>
|
||
<li><span class="log__kind">样式</span>面板加宽为三列布局,高度按内容自动计算,常见屏幕上不需要滚动。</li>
|
||
<li><span class="log__kind">样式</span>更换应用图标,面板左上角和关于页使用同一图标。</li>
|
||
<li><span class="log__kind">样式</span>首次启动默认在菜单栏显示 CPU、内存与网速。</li>
|
||
<li><span class="log__kind">修复</span>深色菜单栏上 CPU、RAM 小标签颜色过深,几乎看不清。</li>
|
||
<li><span class="log__kind">修复</span>面板打开后高度会再调整一次、内容轻微回弹,看起来在抖动;面板打开时点击菜单栏图标关闭,会立刻又被打开。</li>
|
||
<li><span class="log__kind">修复</span>风扇被其他程序设为手动模式时,误显示为由 OpenStats 控制。</li>
|
||
<li><span class="log__kind">修复</span>风扇转速、PID 等数字出现千分位分隔符,例如 1,350 RPM。</li>
|
||
<li><span class="log__kind">修复</span>关闭液态玻璃后点击菜单栏图标,面板看起来打不开:面板内容被放大成两倍,窗口里只显示空白的一角。</li>
|
||
<li><span class="log__kind">修复</span>面板第一次打开时高度偏小:打开瞬间温度、风扇、进程等数据还没采集,现在启动时先完整采集一次。</li>
|
||
</ul>
|
||
</details>
|
||
</article>
|
||
</div>
|
||
<!-- changelog:end -->
|
||
</div>
|
||
</section>
|
||
|
||
<section class="band band--alt" id="faq">
|
||
<div class="shell narrow">
|
||
<div class="section-head"><h2>常见问题</h2></div>
|
||
<details class="faq">
|
||
<summary>会不会很耗电?</summary>
|
||
<p>只显示菜单栏时只采集菜单栏用到的指标,M5 Max 实测约 0.3% CPU、16 MB 内存;锁屏、屏幕休眠和系统睡眠时暂停采样与探测。</p>
|
||
</details>
|
||
<details class="faq">
|
||
<summary>辅助工具是做什么的,安全吗?</summary>
|
||
<p>调风扇、合盖不睡眠、刷新 DNS、修改 DNS 服务器和释放内存需要系统权限,由一个通过 SMAppService 注册的辅助工具完成。它只提供这几个固定操作,不执行任意命令,DNS 地址会再次校验;只接受同一开发团队签名的 OpenStats 调用,应用退出时自动恢复风扇与睡眠设置。</p>
|
||
</details>
|
||
<details class="faq">
|
||
<summary>会联网吗?</summary>
|
||
<p>只有几项可关闭的功能会:打开网络详情时向 Cloudflare 查询一次公网地址(10 分钟内不重复);连接探测按你设定的间隔 ping 你选择的目标;每 3 天从本站检查 IP 归属地数据库的更新。归属地与 ASN 在本机查询。没有账号,没有统计上报。</p>
|
||
</details>
|
||
<details class="faq">
|
||
<summary>为什么不上 App Store?</summary>
|
||
<p>App Store 的沙盒不允许访问 SMC、读取其他应用的缓存和安装特权辅助工具,而这正是大部分功能。</p>
|
||
</details>
|
||
<details class="faq">
|
||
<summary>清理会不会删掉重要文件?</summary>
|
||
<p>只清理白名单目录中的缓存与日志,钥匙串、密码管理器、VPN、Cookie、历史记录一律不碰;清理前可以展开查看每一项,下载目录中的内容会先移到废纸篓。</p>
|
||
</details>
|
||
<details class="faq" id="install">
|
||
<summary>怎么安装、卸载?</summary>
|
||
<p>下载 DMG 后把 OpenStats 拖进“应用程序”;也可以用 Homebrew:<code>brew install --cask gentpan/tap/openstats</code>。卸载时先在“设置 › 辅助工具”里卸载辅助工具,再把应用移到废纸篓;用 Homebrew 安装的执行 <code>brew uninstall --zap --cask openstats</code>。</p>
|
||
</details>
|
||
<details class="faq">
|
||
<summary>菜单栏图标的顺序怎么调?</summary>
|
||
<p>按住 ⌘ 键拖动任意一个图标即可,松开后位置会一直保留,重启也不变。新开启的项目由 macOS 安排初始位置,可能离其他图标较远,拖到一起就好。这是系统自带的功能,对所有菜单栏图标都有效。</p>
|
||
</details>
|
||
<details class="faq">
|
||
<summary>支持 Intel Mac 吗?</summary>
|
||
<p>目前在 Apple Silicon 上开发和测试,Intel 机型的风扇与温度读取尚未验证。</p>
|
||
</details>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="footer">
|
||
<div class="shell footer__inner">
|
||
<span class="footer__brand"><img src="assets/icon.png?v=ca6e7cfe" alt="" width="20" height="20">OpenStats</span>
|
||
<span class="footer__fine">© 2026 GiantAccel, LLC</span>
|
||
<span class="footer__fine">OpenStats 是独立的第三方应用,与 Apple 没有隶属关系。</span>
|
||
</div>
|
||
</footer>
|
||
|
||
<script src="app.js?v=ca6e7cfe" defer></script>
|
||
<script src="replica.js?v=ca6e7cfe" defer></script>
|
||
</body>
|
||
</html>
|