# tab-freezer **Repository Path**: MineLX/tab-freezer ## Basic Information - **Project Name**: tab-freezer - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-04 - **Last Updated**: 2026-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Tab Freezer Firefox 扩展:自动休眠闲置标签页,释放内存与 CPU。 ## 功能 - **自动休眠**:标签页闲置超过阈值(默认 5 分钟)后,使用 Firefox 原生 `tabs.discard()` 卸载页面、释放内存。 - **休眠页**:休眠后显示轻量的占位页,展示原网页标题、图标与 URL,点击「恢复」/ 按空格键(或移动鼠标)即可回到原网页。 - **手动休眠**:从 popup 或快捷键一键「休眠其他所有标签页」(`Ctrl+Alt+F`)/「休眠当前标签页」。 - **白名单与阈值**:在 popup 中把当前域名加入白名单、调整休眠阈值时间。 - **Split View 兼容**:分屏并排显示的两个标签页会一起保活,不会被自动或手动休眠。 - **可定制**:设置页可修改休眠页背景颜色、恢复按钮颜色,以及是否用移动鼠标恢复网页。 ## 结构 ``` manifest.json 扩展清单(Manifest V2)+ 快捷键命令 background.js 后台脚本:闲置检测 + discard 休眠 + 恢复 + 快捷键/消息 sleep/sleep.html 休眠占位页(一键恢复) popup/popup.html 工具栏弹窗界面(白名单 / 阈值 / 手动休眠) settings/settings.html 设置页(背景色 / 按钮色 / 鼠标恢复开关) icons/icon.svg 扩展图标 ``` ## 开发调试 ```bash npm install -g web-ext web-ext run --source-dir . --firefox /usr/bin/firefox ``` ## 技术要点 - 休眠采用 Firefox 原生 `browser.tabs.discard(tabId)` API,真正卸载 DOM/JS 内存,而非仅替换页面。 - 休眠页通过 `location.replace()` 回到原网址,后台会同步清除休眠标记并重新计时。 - 通过 `tab.splitViewId`(Firefox 149+)识别 Split View,分屏标签页视为 active 一并保活。