选择语言 / Choose your language
RESTY 是一款跨平台的视力保护提醒工具,通过智能计时器帮助你在工作与休息之间保持节奏,降低长期用眼的疲劳。应用由 React + Tauri 构建,既可在浏览器中快速调试,也可打包为原生桌面程序。
- 智能番茄计时:自定义工作/休息时长、自动阶段切换、支持暂停、继续、跳过与延长等操作。
- 多模式提醒:提供全屏强制休息与悬浮提醒两种模式,悬浮提醒支持透明度调节。
- 个性化体验:内置亮色、暗色、跟随系统三种主题,支持 en-US、en-GB、zh-CN、zh-TW 即时切换。
- 数据追踪:使用本地 JSON 文件记录会话历史、完成率与用眼行为统计,为健康习惯提供量化反馈。
- 系统集成:桌面版本支持托盘控制、开机自启动、窗口生命周期管理等多项原生能力。
- 在设置页配置适合自己的工作/休息节奏与提醒样式。
- 启动计时后,RESTY 会自动在工作与休息模式间切换。
- 提醒出现时,可选择休息、延长、跳过或强制休息。
- 打开统计面板,查看日/周/月度的眼部健康数据趋势。
- 通过配置导入导出,在多台设备之间同步习惯设定。
- 计时:固定或分段工作节奏、工作时长、休息时长、强制休息、心流模式、更多休息。
- 提醒:显示模式、全屏画面、悬浮位置、悬浮透明度、休息前通知、休息音乐。
- 外观:主题、语言。
- 系统:开机启动、静默开机启动、macOS 菜单栏模式、自动静默更新、数据导入导出。
- 数据:会话统计、导入/导出配置、清除历史记录。
bun install
bun run dev默认开发地址为 http://127.0.0.1:21421/。Windows 用户请使用 IPv4 地址以避免 IPv6 权限问题。
bun install
bun run tauri dev # 桌面调试
bun run tauri build # 生产构建开发时以 bun run tauri dev 为统一桌面入口。
RESTY/
├── src/ # React 前端
│ ├── components/ # 设置面板、提醒窗口、统计组件等
│ ├── pages/ # 页面入口(如设置页)
│ ├── store/ # Zustand 状态管理
│ ├── i18n/ # 国际化配置
│ └── utils/ # 计时器、配置与 IPC 工具函数
├── src-tauri/ # Rust 后端
│ ├── commands/ # 前后端通信命令
│ ├── services/ # 计时调度、数据库、系统集成模块
│ ├── lib.rs # Tauri 应用入口与窗口/托盘编排
│ └── main.rs # 调用库入口
└── public/locales/ # 语言资源包
- 前端:Vite + React + TypeScript,Zustand 管理状态,React Router 负责路由,所有文案通过 i18next 管理。
- 后端:Rust + Tauri + Tokio,实现计时器调度、JSON 文件持久化与系统集成。
- 新增语言:复制
public/locales/en-US/translation.json,翻译后在设置页语言列表中注册。
RESTY is a cross-platform eye-care companion that keeps you on a healthy work–break rhythm. Powered by React and Tauri, it can run as a lightweight web experience or as a native desktop application with deep operating-system integration.
- Adaptive Pomodoro Timer: configure focus and break durations, automatic phase switching, pause/resume/skip/extend controls, and a precise low-overhead timing loop.
- Flexible Reminder Surfaces: choose between full-screen enforced breaks or floating overlays, and tune floating-window opacity.
- Personalised Experience: light/dark/system themes and in-app language switching for en-US, en-GB, zh-CN, and zh-TW.
- Insightful Analytics: JSON-backed session history, completion-rate tracking, and work-versus-rest analytics that reinforce healthy habits.
- Desktop Integration: tray controls, launch-on-startup, window lifecycle management, and multi-surface support when running natively.
- Define your preferred focus/break cadence and reminder style in Settings.
- Start the timer and let RESTY automate the shift between focus and rest phases.
- Respond to prompts by resting, extending, or skipping when circumstances change.
- Review the analytics dashboard to understand daily, weekly, or monthly trends.
- Import or export configuration files to keep multiple devices in sync.
- Timer: fixed or segmented cadence, focus length, break length, enforced breaks, flow mode, and more-rest accounting.
- Reminder: display mode, fullscreen scene, floating position, floating opacity, pre-break notification, and rest music.
- Appearance: theme and language.
- System: auto-launch, silent auto-launch, macOS menu-bar mode, silent updates, and data transfer.
- Data: session analytics, import/export, history management.
bun install
bun run devOpen the printed http://127.0.0.1:21421/ URL in your browser. Stick to the IPv4 address on Windows to avoid IPv6 permission issues.
bun install
bun run tauri dev # desktop development
bun run tauri build # production bundleUse bun run tauri dev as the unified desktop development entry point.
RESTY/
├── src/ # React frontend
│ ├── components/ # Settings, reminder frames, analytics widgets
│ ├── pages/ # Route-level views (e.g. Settings)
│ ├── store/ # Zustand stores
│ ├── i18n/ # Internationalisation setup
│ └── utils/ # Timer helpers, configuration utilities, IPC client
├── src-tauri/ # Rust backend
│ ├── commands/ # Tauri command handlers (IPC entry points)
│ ├── services/ # Scheduler, persistence, platform integration
│ ├── lib.rs # Tauri entry, windows, and tray orchestration
│ └── main.rs # Calls the library entry
└── public/locales/ # Language packs
- Frontend: Vite + React + TypeScript, Zustand for state, React Router for navigation, i18next for localisation.
- Backend: Rust + Tauri + Tokio; commands and events expose timer control, analytics, and system hooks; local JSON files store settings and history.
- Localisation: duplicate
public/locales/en-US/translation.json, translate the strings, then register the new locale inside the Settings language selector.
保持节奏,关爱双眼 / Keep the flow, care for your eyes.