返回资讯中心
外部精选
软件工程
#开发者实时流

ScreenGuard:面向 Linux 的开源数字健康与应用限制工具

来源标题:Show HN: ScreenGuard – Open-source digital wellbeing and app limits for Linux

ScreenGuard 是一款用 Flutter 开发的开源 Linux 桌面应用,提供屏幕时间统计、每日应用限额锁定和专注模式番茄钟屏蔽功能,支持 Wayland 与 X11。其仪表盘可查看今日、近 30 天累计及日均使用时长,并以周柱状图和环形图展示应用使用占比。X11 的窗口追踪与最小化功能目前处于社区测试阶段。

Hacker News 最新AdityaK_99992026/11/4 · 今天28 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

面向 Wayland 和 X11 的现代屏幕时间追踪、每日应用限额与专注模式。

ScreenGuard 是一款用 Flutter 构建、面向 Linux 的开源、隐私优先的桌面应用。它把 Android 风格的主动式 Digital Wellbeing、每日应用限额锁定和专注模式番茄钟会话屏蔽直接带到 Linux 桌面。

桌面环境与显示服务器支持

X11 测试须知:X11 窗口跟踪和活动窗口最小化目前正处于社区积极测试阶段。在提交与 X11 相关的 issue 或 bug 报告时,请附上截图或视频证据,并注明你的桌面环境名称与版本,以便问题能够被快速复现和解决。

本着开源透明和清晰归因的精神,以下是 ScreenGuard 开发过程中 AI 工具使用情况的准确说明:

  1. Digital Wellbeing 仪表盘

核心概览卡片:即时查看今日活跃屏幕时间,以及过去 30 天的累计总时长和日均值。

交互式每周柱状图:可视化一周中每一天的屏幕时间,并配有通俗易懂的提示信息(45m、1h 27m)。

应用占比环形图:按比例展示应用使用情况,并配有颜色编码图例。

单日应用明细:按使用时长排序展示每个被跟踪的应用,并配有自定义进度条。

多周历史:逐周向前/向后滑动(< / >)查看此前各周的数据。

交互式单日检查器:点击图表中的任意柱子,即可加载该特定日期的应用明细(例如“最常用应用(8 月 12 日,星期三)”)。

自定义与预设配额:使用预设按钮(30m、1h、2h、4h)为每个应用设置每日限额,或输入自定义分钟数。

90% 警告阈值:当使用量达到应用限额的 90% 时,桌面通知会发出提醒。

100% 时间到锁定屏幕:当达到每日限额时,ScreenGuard 会最小化当前活动窗口,并触发专用的锁定覆盖屏幕,提供以下选项:

增加 15 分钟(临时延长)

编辑限额

返回仪表盘

动画番茄钟计时器:预设会话(15m、25m、45m、60m),配有实时圆形倒计时环。

番茄钟周期与休息:配置专注/休息周期;计时器会在专注时段和休息时段之间自动切换。

干扰屏蔽:从可搜索的应用选择器(支持网格或列表布局)中选择分散注意力的应用。在专注会话进行期间,如果被屏蔽的应用被打开,ScreenGuard 会自动将其最小化。

严格自动关闭(可选):可选择在专注会话期间打开被屏蔽应用时直接关闭它们,而不是最小化。

专注统计:按天追踪已完成的专注会话。

带应用选择器的专注模式。窗口透明度由 Blur My Shell 实现。

通用:主题模式、桌面通知、音效、自定义音频和提醒事件。

限额与番茄钟:番茄钟周期、休息时长、严格自动关闭和已屏蔽应用的处理方式。

诊断:守护进程状态和可选择退出的匿名诊断。

更新:稳定版/测试版通道、检查频率和应用内更新状态。

数据:本地数据库大小/会话数、按日期范围删除、按特定日期删除以及全部清除。

下方截图中的窗口透明度由 GNOME 扩展 Blur My Shell 实现,而非 ScreenGuard。

设置 → 通用。窗口透明度由 Blur My Shell 实现。

设置 → 限额与番茄钟。窗口透明度由 Blur My Shell 实现。

设置 → 诊断。窗口透明度由 Blur My Shell 实现。

设置 → 更新。窗口透明度由 Blur My Shell 实现。

设置 → 数据。窗口透明度由 Blur My Shell 实现。

会话日志以 WAL 日志模式本地存储在 SQLite(~/.local/share/screenguard/usage.db)中。

你的屏幕时间数据永远不会离开你的电脑。没有云账户,也没有第三方跟踪。

匿名诊断默认可选择退出:崩溃追踪和每日一次的活跃安装 ping(随机安装 ID、版本、仅发行版/桌面环境信息)。可在 设置 → 诊断 → 发送匿名诊断 中禁用。

架构

graph TD A[ScreenGuard Flutter GUI] -->|SQLite WAL| DB[(usage.db)] B[screenguard-daemon] -->|SQLite WAL| DB B -->|轮询活动窗口| C{显示服务器} C -->|Wayland GNOME| D[GNOME Shell 扩展 D-Bus] C -->|X11 桌面| E[X11 EWMH xprop / xdotool] B -->|执行限额与专注| F[桌面通知 / 最小化窗口] Loading GUI 应用:使用 Flutter 与 Material 3 构建。

守护进程(screenguard-daemon):轻量级后台服务,编译为单一原生二进制文件。目前用 Dart 编写;v1.5 路线图目标是用 C 移植并保持行为一致,使用相同的 SQLite schema 和控制接口。

扩展(screenguard@screenguard.app):原生 GNOME Shell 扩展,通过 D-Bus(org.gnome.Shell.Extensions.ScreenGuard)导出活动窗口标题/类名。

X11 后端:通过 xprop 执行标准 EWMH _NET_ACTIVE_WINDOW 查询,并通过 xdotool 最小化窗口。

安装

在下方选择你的 Linux 发行版。只需将命令复制粘贴到终端即可。

选项 A — APT 仓库(推荐,可接收更新):

sudo wget -O /usr/share/keyrings/screenguard.asc https://adityakrishnan005-a11y.github.io/ScreenGuard/apt/key.asc echo "deb [signed-by=/usr/share/keyrings/screenguard.asc] https://adityakrishnan005-a11y.github.io/ScreenGuard/apt apt main" | sudo tee /etc/apt/sources.list.d/screenguard.list sudo apt update && sudo apt install screenguard

选项 B — 独立 .deb:

wget https://github.com/adityakrishnan005-a11y/ScreenGuard/releases/download/v0.1.1/screenguard_0.1.1_amd64.deb && sudo apt install ./screenguard_0.1.1_amd64.deb -y

Fedora / RHEL / Rocky Linux(Copr)

sudo dnf copr enable the-amibivert/screenguard sudo dnf install screenguard

Arch Linux / Manjaro(自定义仓库)

AUR 包即将推出(AUR 账户注册暂时中止)。在此之前,请使用我们签名的自定义仓库:

1. 导入并在本地信任签名密钥

curl -fsSL https://adityakrishnan005-a11y.github.io/ScreenGuard/arch/key.asc -o /tmp/screenguard.asc sudo pacman-key --add /tmp/screenguard.asc

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →