本项目基于enji_but_pyqt项目使用Claude AI进行跨平台重写,且AI是基于Kubuntu 25.10(Wayland)系统及桌面环境进行修改,其他系统和桌面环境请自行测试或编写)
视频效果请看:欸,我不是Windows程序吗?——胭脂,但是Linux
main.py — 删除 import ctypes 和 from win11toast import notify;AI自己实现了一个 notify() 函数,用系统的 notify-send 命令发桌面通知;任务栏隐藏功能在 Linux 下静默跳过
components.py — 修了 scaled() 里的标题栏偏移逻辑,Linux 不减那 16px(由 KWin 窗口管理器自己处理)
pyproject.toml — 移掉了 win11toast 依赖
新增 run_linux.sh 启动脚本
关键点:启动脚本里设置了 QT_QPA_PLATFORM=xcb,强制走 XWayland——这是最重要的一步,因为这个程序靠窗口精确定位来实现动画效果,Wayland 原生模式会完全禁用这个能力。
sudo apt install libnotify-bin # 桌面通知工具
pip install uv && uv sync # Python 依赖
./run_linux.sh
在非 16:9 的设备上显示异常以及部分场景未实现自动化
多屏幕下禁用一块屏幕会导致所有窗口挤在一起
16:10+16:9的双屏配置会导致部分窗口内容跑到另一块屏幕上(视频中能看出来)
使用 Python 3.13 + PySide6,仿照胭脂的PV制作的 Linux Wayland 窗口动画程序。灵感来自于 BSOD-MEMZ 和 《强 风 大 窗 口》。原项目为Windows平台,使用Claude AI进行修改跨平台(AI修改内容已在前文说的很详细了)
视频原PV:https://www.bilibili.com/video/BV1ucGzzuEhw
原作者:蛋包饭咖喱饭
Note
程序启动时需要释放和载入资源文件,可能要耗费较长时间;程序峰值内存占用可能达到 860MB
Note
程序在运行过程中会动态加载资源,如您的运行设备性能一般,动画的播放可能会发生滞后
测试过的系统:Kubuntu 25.10
可通过配置环境变量来控制任务栏显示/隐藏和部分调试选项,具体见代码 main.py main()
本项目使用 uv 管理环境,可以直接使用 uv sync 同步环境
- 与原PV相同的字体(我也好奇怎么找出来的)
- 基于时间的帧控制
- 动态资源加载
- 关键帧动画