
Elias:此项目的诞生是出于对 Pap.er app 的喜爱。当前公开版本仅能读取本地壁纸,临时替代 升级 macOS 26后,因崩溃而无法使用的 Pap.er 。
MyWallPaper
1. 缘起
矫情的自己,遇到了“矫情”的 Pap.er
大致是 1 7年的夏天,发现了一个叫做 Pap.er 的应用。当时相较其他壁纸 App ,走极简风的 Paper 略显“矫情”。这恰好对了正在特立独行,矫情的自己的胃口。这一相看,便是 9 年。 直至……去年 ( 25 年) 9月,电脑升级 macOS 26 之后,一直闪退,给开发者 发送邮件 也如石沉大海。
2. “又一次的缘分”
其实,在看到越来越多的留言(估计是从 app store 同步过来的评论)提到闪退无法解决的评论也越来越多。随着时间的流逝,对作者“弃坑”可能性的猜测也越来越强烈。在邮件发出的两个月后,午后,在又一次的知乎摸鱼之旅中,刷到了一篇关于 QT ant design 组件的文章。鬼使神差地,一个冲动从心而生:与其等着作者修复,还有其弃坑的风险,何不抄一个自己用? 于是,在一番简单的权衡后,选择了 Cpp + QT + Qml 的组合。为什么不选 electron、rn 之类的, 纯粹觉得js恶心 自然地,在花费 1 天多(接近两天) 学习 cpp 语法和 STL 后,粗略了解了一下 QT 和 QML之后; 就在 Trae + ChatGPT + Claude + ChatGLM + Google 的协助下完成了对 Pap.er “复刻”。
在此,感谢 Bo Qian 的 C++ Standard Library 课程 (虽然有些错误),让我对STL有了个“整体”的了解。相关代码: STL-LEARNING
3. 说说 MyPaper
3.1 已有功能
之前也提到:MyPaper 的出现仅仅是因为 Pap.er 无法在 macOS 上运行。由于 Pap.er 使用多年,屯下的壁纸甚多。起初只是想写个 python 脚本和定时任务,实现定时随机更换壁纸即可,但想着平时 windows 和 macOS 的使用频率相近,为何不好好做个“看起来” 不错的 UI 呢? 毕竟,简洁好看,是当初选择它的第一原因。 如果只是脚本或者丑陋的 cmd窗口程序, 分享给好友使用时,还要教的话,那岂非浪费生命?于是, 它有了大致轮廓。 当前已完成功能:
- 与 Pap.er 大体相近的外观和交互形式:一个简单的列表,以及 常驻 system tray 或 status bar;
- 列表出现位置根据 windows/macOS 自动计算; 比如 windows 出现在右下角(托盘位置), macOS 出现在右上角(不考虑任务栏被拖动到其他位置的情况)
- 列表读取并展示壁纸,设置壁纸;
- 自定义壁纸文件夹;
- 壁纸历史列表,保存之前设置过的壁纸,方便回味;
- 定时更换壁纸;
- 设置持久化:使用QSettings, 当前, Windows中通过注册表保存设置;macOS 通过 plist 保存配置。
3.2 ToDos:
ToDos:
- 服务器端:实现壁纸爬虫,配合Agent爬取并筛选合格的壁纸(其实最好是人工手动筛选,保证壁纸质量),这也是 Pap.er 等“小清新”壁纸软件很重要的竞争力来源;
- 客户端定时更新最新壁纸,将 hotest 标签页的壁纸读取逻辑修改为从服务器端读取;
- 优化壁纸列表加载逻辑,通过 thumbnails(低质量)/原图(高质量) 图片配合提高加载速度;
- 项目代码架构优化,当前代码大部分由 AI 完成,说实话,质量
堪忧不错; - 如果决定持续迭代,尝试构建 CI/CD Pipeline 。
当前已有的功能已经基本上可以让 MyPaper 成为一个合格的“临时替代”并 “跑起来” 。因此,这里的 ToDos 其实已是可有可无,但这些功能完成,可以赋予它灵魂和生命力(其实就是不想花钱搞服务器,也不想白嫖一些服务,以及一点点私心)。再静待数月,如果 bug 还未修复,再考虑启动 ToDos 的计划。 如果有专业的程序员出手,优化一下,那更是荣幸之至。
4. 尝试用下 MyPaper

使用它可以自行编译或者直接下载使用;目前仓库是私密状态,待完善readme后会开放。
4.1 自行编译:
Windows:
安装 QT: 项目使用的是QT 6.10.1 (windows: MingW13.1.0, macOS: gcc), 因在 macOS 中使用低于 6 的 QT 会不可避免在编译时自动添加 AGL,一个macOS已经弃用的动态连接库,导致编译失败。不是不能解决,但为什么要浪费时间呢?前往官网下载QT安装完成后,应该能够在开始菜单中找到。
使用QT自带的终端(不是cmd! 不是cmd! 不是cmd!),使用这个终端 ,QT会自动链接需要的动态库。
以下操作在 QT 自带的终端中完成
切换到D盘:
D:
拉取仓库:
git clone https://github.com/craii/MyPaper.git cd MyPaper
如此完成后,会在 D 盘 中看到一个 MyPaper 文件夹,其中包含本项目代码和资源。
配置 release 版本:
cmake -S . -B build-release -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
-G "MinGW Makefiles" 这部分可以不写,但写了更稳妥
编译 release 版本:
cmake --build build-release
但注意,这时候的 wallpaper.exe 只能在自己的电脑中运行,因为运行必须的 QT链接库都没有带。如果让它能够在其他电脑中运行,需要将 wallpaper.exe 和 必要的库一起打包。
打包 Portable 版本:
还是在 同一个 Qt MinGW 命令行里:
cmake --build . --config Release









Comments 1 条评论
Google 收录也太快了
