SMT2 是一个基于 Python 和 PySide6 开发的轻量级桌面应用程序,集成了系统监控和待办事项管理功能。该应用以系统托盘形式运行,占用资源极少,同时提供主题系统支持多种视觉风格。
- 实时显示当前时间
- 日进度:当天已过去的时间百分比
- 周进度 / 月进度 / 年进度
- CPU 使用率、内存使用率、C盘存储占用、电池电量
- 右键托盘菜单切换时间进度 / 性能监控模式
- 添加、编辑和删除待办事项
- 标记已完成的事项
- 自动提取任务标签,支持标签筛选
- 支持拖拽排序
- 完成或空白项自动销毁动画
- 首个待办事项同步显示到主面板底部
- 截止时间管理:右键事项配置截止时间、提前提醒、重复周期
- 过期标记:已过截止时间的事项自动显示删除线样式
- 到期提醒:截止时间前 N 分钟弹出右下角通知
SMT2 内置完整的主题系统,支持:
- 多套内置主题自由切换
- 用户自定义主题(工具箱 → 设置中可视化编辑所有颜色令牌)
- 主题选择持久化(重启后自动恢复)
- 每个主题可独立控制面板尺寸、圆角、字体大小等布局参数
- 策略模式:每个主题可自定义绘制逻辑,实现完全不同风格的布局
详细说明见下方 主题系统 章节。
- 半透明毛玻璃效果
- 支持拖拽移动窗口,屏幕边缘自动吸附嵌入
- 中键轮换面板模式(normal / compact / mini)
- 右键展开待办面板,双击关闭应用
- 系统托盘图标,支持窗口置顶
- 右下角通知弹窗:待办提醒、操作反馈以无干扰的右下角滑入通知展示
- 集成 Excel 转 Word 工具,支持模板化转换
- 设置面板:主题配置、颜色自定义、开机自启、标签提取规则等
| 主题 | 特点 |
|---|---|
| Classical 经典 | 深色半透明、4 圆环布局(250×90),传统风格 |
| Modern 现代 | 黑白灰极简、大字靠左时间 + 单日进度环 + 待办嵌入(180×90) |
- 托盘图标右键 → 「切换主题」子菜单
- 工具箱 → 设置 → 主题设置下拉框
在设置面板中:
- 点击「+ 新建自定义主题」
- 选择名称和布局基础(Classical 或 Modern 布局)
- 自由调整所有颜色令牌(点击色块打开取色器,
α滑块调节透明度) - 保存后自动应用,立即生效
自定义主题持久化保存在 resources/custom_themes.json。
src/themes/
├── __init__.py # ThemeManager 单例 + 全局便利函数
├── base_theme.py # ThemeDefinition 抽象基类 + paint_panel 策略方法
├── classical_theme.py # 经典主题实现
└── modern_theme.py # 现代主题实现
ThemeDefinition定义了get_color()、paint_panel()等接口CustomTheme支持基于任意内置主题的布局,仅覆盖颜色- 新增主题只需新建一个类注册到
_BUILTIN_THEMES字典 - QSS/DWM 统一:工具箱窗口的 QSS 样式切换和 Windows DWM 深色模式已集成到
ThemeManager中,切换主题时自动同步
主面板支持三种尺寸模式(鼠标中键轮换):
| 模式 | 经典尺寸 | 现代尺寸 | 显示内容 |
|---|---|---|---|
| normal | 250×90 | 180×90 | 完整信息 |
| compact | 180×70 | 190×66 | 精简圆环 |
| mini | 120×40 | 120×40 | 仅时间 |
- 运行应用后,在桌面显示悬浮面板,系统托盘出现图标
- 界面操作:
- 左键拖拽顶部区域移动窗口
- 右键唤出待办事项面板
- 中键轮换面板紧凑模式
- 双击顶部区域关闭应用
- 右键托盘图标 → 切换性能监控/时间进度模式、切换主题、打开工具箱
- 待办面板:
- 双击空白区域新建事项
- 编辑后回车确认
- 勾选复选框标记完成(自动收缩销毁动画)
- 拖动
☰标识调整顺序
- 设置:托盘右键 → 工具箱 → 设置
- Python 3.12
- PySide6 (Qt for Python)
- psutil (系统信息获取)
- jieba (中文标签提取)
- Nuitka (打包工具)
src/
├── configs/ # 配置读取(properties.json + 默认值)
├── themes/ # ★ 主题系统(ThemeManager、内置主题)
├── tray/ # 系统托盘图标
├── utils/ # 工具类(性能监控、自启管理、标签提取)
└── views/
├── main_views/ # 主界面组件
│ ├── main_widget.py # 主窗口(控制器 + 吸附逻辑)
│ ├── performance_panel.py # 性能/时间面板(委托绘制)
│ └── todo_panel.py # 待办事项面板
└── toolbox_views/ # 工具箱窗口
├── toolbox_window.py
├── setting_view.py # 设置面板(含主题配置 UI)
└── ...
resources/
├── properties.json # 用户配置
├── default_properties.json
├── custom_themes.json # ★ 用户自定义主题
└── themes/ # 主题 QSS 文件
使用 Nuitka 将应用打包为独立的可执行文件:
python -m nuitka --onefile --windows-console-mode=disable --enable-plugin=pyside6 --follow-import-to=need --output-dir=output --windows-icon-from-ico=resources/tray.png --windows-uac-admin main.py- 当前仅支持 Windows
- 应用启动后自动置顶显示
- 如需开机自启,在设置中勾选"开机自启"
本应用所有数据均存储在本地,不会上传任何用户数据到网络。待办事项、性能数据等个人信息完全保留在用户设备上。
欢迎贡献代码!请遵循以下步骤:
- Fork 本仓库。
- 创建一个新的分支:
git checkout -b feature-branch。 - 提交更改:
git commit -m 'Add new feature'。 - 推送到分支:
git push origin feature-branch。 - 创建一个 Pull Request。
本项目基于 MIT 许可证 开源。