# timer **Repository Path**: blake365/timer ## Basic Information - **Project Name**: timer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-16 - **Last Updated**: 2025-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 桌面时钟 - Desktop Timer 一个基于 Electron 开发的现代化桌面时钟应用程序,具有翻页动画效果和置顶显示功能。 ## ✨ 功能特点 ### 🕐 时间显示 - **北京时间显示**:准确显示北京时间(UTC+8) - **数字翻页效果**:小时和分钟的数字变化时有流畅的3D翻页动画 - **冒号闪烁**:时分分隔符定期闪烁,增加视觉动感 - **大字体显示**:清晰易读的大号数字显示 ### 📅 日期信息 - **完整日期**:显示年月日(如:2024年01月15日) - **中文星期**:显示中文格式的星期信息 - **年度周数**:显示当前是年度第几周 ### 🪟 窗口控制 - **默认置顶**:程序启动时自动置顶显示 - **置顶切换**:可通过按钮或菜单切换置顶状态 - **无边框设计**:现代化的无边框窗口设计 - **自动隐藏菜单**:菜单栏默认隐藏,鼠标悬停时显示 - **拖拽移动**:可通过顶部区域拖拽移动窗口 ### 🎨 界面设计 - **渐变背景**:优雅的紫色渐变背景 - **毛玻璃效果**:按钮和控件具有透明毛玻璃效果 - **响应式设计**:适配不同屏幕尺寸 - **macOS风格按钮**:红色圆形关闭按钮 ## 🚀 安装和运行 ### 🐧 Linux 用户(推荐方式) #### 方法一:一键安装(推荐) ```bash # 1. 下载或克隆项目到本地 git clone cd timer # 2. 运行安装脚本 ./install.sh # 3. 在应用程序菜单中找到"桌面时钟"并启动 ``` #### 方法二:直接运行 ```bash # 1. 确保已安装Node.js和npm # 2. 双击 desktop-timer.sh 文件 # 或者在终端中运行: ./desktop-timer.sh ``` #### 方法三:开发者模式 ```bash # 安装依赖 cnpm install # 或者 npm install # 运行程序 npm start ``` ### 环境要求 - Node.js (推荐 v16+) - npm 或 cnpm - Linux 桌面环境(支持 .desktop 文件) ### 📁 项目文件说明 ``` timer/ ├── package.json # 项目配置和依赖 ├── main.js # Electron主进程 ├── index.html # 界面结构 ├── style.css # 样式和动画 ├── renderer.js # 渲染进程逻辑 ├── desktop-timer.sh # Linux启动脚本 ⭐ ├── desktop-timer.desktop # Linux桌面文件 ⭐ ├── install.sh # Linux安装脚本 ⭐ ├── README.md # 项目文档 └── node_modules/ # 依赖包 ``` ## 🛠️ 技术实现 ### 核心技术栈 - **Electron**: 跨平台桌面应用框架 - **HTML5/CSS3**: 现代化界面设计 - **JavaScript ES6+**: 应用逻辑实现 - **Node.js**: 后端支持 ### 关键技术点 #### 1. 翻页动画效果 ```css /* 3D翻页动画 */ .digit-flip.flipping .digit-top { animation: flipTop 0.6s ease-in-out; } @keyframes flipTop { 0% { transform: rotateX(0deg); } 100% { transform: rotateX(-90deg); } } ``` #### 2. 北京时间计算 ```javascript getBeijingTime() { const now = new Date() const utc = now.getTime() + (now.getTimezoneOffset() * 60000) const beijingTime = new Date(utc + (8 * 3600000)) return beijingTime } ``` #### 3. 窗口置顶控制 ```javascript // 主进程 ipcMain.on('toggle-always-on-top', () => { isAlwaysOnTop = !isAlwaysOnTop mainWindow.setAlwaysOnTop(isAlwaysOnTop) }) ``` #### 4. 无边框窗口设计 ```javascript new BrowserWindow({ frame: false, titleBarStyle: 'hidden', autoHideMenuBar: true, alwaysOnTop: true }) ``` ## 🎮 使用方法 ### 基本操作 1. **启动程序**: - 双击 `desktop-timer.sh` 文件 - 或在应用程序菜单中找到"桌面时钟" - 或运行 `npm start` 2. **移动窗口**:拖拽窗口顶部区域移动位置 3. **置顶切换**:点击"置顶显示"/"取消置顶"按钮 4. **显示菜单**:将鼠标移到窗口上方显示菜单栏 5. **关闭程序**:点击右上角红色关闭按钮或使用 `Ctrl+Q` ### 快捷键 - `Ctrl+Q` (Linux/Windows) / `Cmd+Q` (macOS):退出程序 ### 🔧 Linux 特殊说明 #### 桌面文件集成 安装后,应用会在以下位置创建文件: - 应用程序:`~/.local/share/desktop-timer/` - 桌面文件:`~/.local/share/applications/desktop-timer.desktop` #### 卸载方法 ```bash # 删除应用程序文件 rm -rf ~/.local/share/desktop-timer # 删除桌面文件 rm ~/.local/share/applications/desktop-timer.desktop ``` #### 权限问题 如果遇到权限问题,请确保脚本有执行权限: ```bash chmod +x desktop-timer.sh chmod +x desktop-timer.desktop ``` ## 🔧 配置选项 ### 窗口设置 - **默认尺寸**:400x300 像素 - **默认置顶**:启用 - **可调整大小**:禁用 - **边框**:无边框设计 ### 时间设置 - **时区**:北京时间 (UTC+8) - **更新频率**:每秒更新 - **显示格式**:24小时制 ## 🎯 核心特性详解 ### 翻页动画机制 - 每个数字由上下两个半部分组成 - 数字变化时触发3D旋转动画 - 使用CSS3 transform 和 perspective 实现立体效果 - 动画时长600ms,使用ease-in-out缓动 ### 置顶功能实现 - 通过Electron的setAlwaysOnTop API实现 - 支持菜单栏和按钮两种切换方式 - 状态同步更新UI显示 ### 无边框窗口设计 - 移除系统默认标题栏和边框 - 自定义拖拽区域实现窗口移动 - 添加自定义关闭按钮 - 菜单栏自动隐藏/显示 ## 🐛 已知问题 - Linux系统下可能需要额外的窗口管理器支持 - 某些Linux发行版的置顶功能可能不完全兼容 - 首次运行需要下载依赖,可能需要网络连接 ## 🔮 未来计划 - [ ] 添加秒数显示选项 - [ ] 支持多种主题切换 - [ ] 添加闹钟功能 - [ ] 支持自定义字体 - [ ] 添加透明度调节 - [ ] 支持多时区显示 - [ ] 创建 AppImage 和 deb 安装包 ## 📄 许可证 MIT License ## 👨‍💻 开发信息 - **开发工具**:Electron v28.0.0 - **开发时间**:2024年 - **兼容系统**:Windows, macOS, Linux - **测试环境**:Ubuntu 22.04, Linux Mint, Fedora ## 🆘 故障排除 ### 常见问题 **Q: 双击脚本没有反应?** A: 确保脚本有执行权限:`chmod +x desktop-timer.sh` **Q: 提示找不到Node.js?** A: 请先安装Node.js:`sudo apt install nodejs npm` **Q: 应用无法置顶?** A: 某些窗口管理器可能不支持,尝试更换桌面环境或窗口管理器 **Q: 如何完全卸载?** A: 运行卸载命令删除所有相关文件 --- *感谢使用桌面时钟应用!如有问题或建议,欢迎反馈。*