Skip to content

hongqiang-liu/TimeMaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TimeMaster

一个基于 WPF 的桌面时钟工具:常驻桌面显示当前时间,并在指定时间前弹出倒计时提醒,帮助你按时休息。

TimeMaster 预览

功能特性

  • 桌面悬浮时钟(默认置顶、无边框、可托盘常驻)
  • 定时提醒弹窗(支持倒计时秒数、主/副提示文案、是否自动关闭)
  • 设置界面可配置:
    • 开机启动
    • 鼠标穿透开关(可按需启用/停用)
    • 主时间窗大小(小 / 中 / 大 / 超大)
    • 主时间窗配色(黑底白字 / 白底黑字)
    • 提醒任务列表(新增、删除、启用、时间、文案等)
  • 浮窗交互增强:
    • 鼠标移入/移出动画效果(缩放、阴影、透明度)
    • 主浮窗右键菜单与托盘菜单完全一致

使用方式

1) 运行项目

dotnet build TimeMaster.sln
dotnet run --project .\TimeMaster\TimeMaster.csproj

2) 基本操作

  • 从系统托盘图标右键打开菜单
  • 主浮窗右键菜单与托盘菜单一致(显示时钟、设置、倒计时窗口、重启、退出)
  • 选择 设置 可进入配置界面

3) 鼠标穿透交互规则

  • 启用鼠标穿透 时:
    • 需要按住 LeftCtrl 才可对主浮窗进行左键拖动和右键菜单操作
  • 停用鼠标穿透 时:
    • 无需按 LeftCtrl,可直接左键拖动和右键菜单操作

交互规则示意图

发布独立 EXE

项目已内置三个发布配置(TimeMaster/Properties/PublishProfiles):

  • win-x64-singlefile.pubxml:自包含 + 单文件(包含 .NET 运行时)
  • win-x64-self-contained.pubxml:自包含 + 多文件目录(排障更方便)
  • win-x64-fdd-singlefile.pubxml:框架依赖 + 单文件(体积更小,目标机需安装 .NET Desktop Runtime)

1) 生成单文件 EXE(含运行时)

dotnet publish .\TimeMaster\TimeMaster.csproj -p:PublishProfile=win-x64-singlefile

输出目录: TimeMaster\bin\Release\net8.0-windows\publish\win-x64-singlefile\

2) 生成自包含目录版(含运行时)

dotnet publish .\TimeMaster\TimeMaster.csproj -p:PublishProfile=win-x64-self-contained

输出目录: TimeMaster\bin\Release\net8.0-windows\publish\win-x64-self-contained\

3) 生成轻量单文件(不含运行时)

dotnet publish .\TimeMaster\TimeMaster.csproj -p:PublishProfile=win-x64-fdd-singlefile

输出目录: TimeMaster\bin\Release\net8.0-windows\publish\win-x64-fdd-singlefile\

GitHub Actions 自动打包与发布

仓库已新增两个工作流:

  • .github/workflows/ci.yml:在 push / pull_request 时执行 Restore + Build
  • .github/workflows/release.yml:在推送 Tag(如 v1.0.0)时自动打包并发布 GitHub Release

触发自动发布

  1. 提交并推送代码到主分支
  2. 创建并推送版本 Tag(建议语义化版本)
git tag v1.0.0
git push origin v1.0.0
  1. GitHub Actions 会自动:
    • 发布三个构建产物(singlefile/self-contained/fdd-singlefile)
    • 生成 SHA256SUMS.txt
    • 创建 GitHub Release 并上传 zip 附件

手动触发

release.yml 支持 workflow_dispatch。手动触发时不会创建正式 Release(因无 Tag),但会把打包结果上传为 Actions Artifact。

提醒配置说明

提醒任务支持以下字段:

  • 名称:用于区分不同提醒
  • 触发时间:格式 HH:mm:ss
  • 倒计时(秒):在触发前多少秒开始弹窗倒计时
  • 文案1:必须包含 {0} 占位符(会显示剩余秒数)
  • 文案2:辅助提示语
  • 自动关闭:倒计时结束后是否自动关闭弹窗

配置文件

  • 运行时设置保存到:%LOCALAPPDATA%\TimeMaster\clock_settings.json
  • 首次运行会自动写入内置默认提醒(GoToBedMorningMeeting

开发环境

  • .NET 8
  • Windows(WPF)

如果这个项目对你有帮助,欢迎提出改进建议或提交 PR。

About

C#+wpf开发的windows上的时间浮窗工具,支持鼠标透传,支持倒计时提醒

Resources

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages