Skip to content

feat(wallpaper): support shader wallpaper sources#1097

Draft
mhduiy wants to merge 1 commit into
linuxdeepin:masterfrom
mhduiy:shaderwallpaper
Draft

feat(wallpaper): support shader wallpaper sources#1097
mhduiy wants to merge 1 commit into
linuxdeepin:masterfrom
mhduiy:shaderwallpaper

Conversation

@mhduiy

@mhduiy mhduiy commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Add shader as a wallpaper source type and wire it through the wallpaper manager, notifier, persisted config, and wallpaper factory. Shader wallpapers are loaded from precompiled qsb packages and driven by a frame-synchronized clock so animation time follows actual rendered frames.

Extend the test wallpaper client to import .frag files by compiling them with qsb, caching shared shader packages under /tmp, and falling back to /usr/lib/qt6/bin/qsb when qsb is not in PATH. Add qt6-shader-baker as the examples runtime dependency.

Log: 支持导入并渲染 shader 动态壁纸

从长远来看,目前实现还有以下问题

  1. 单纯的shader壁纸很难实现复杂壁纸,而且就算实现了,性能消耗太大
  2. 不支持自定义纹理
  3. 现在写死利用了shadertoy的规范进行输入,应该建立自有规范
  4. 壁纸制作的成本比较高,不支持多个层级叠加效果

长远设想,或者是下一步打算

  • 支持纯shader 壁纸
  • 支持静态壁纸作为纹理,实现中
  • 支持多layer
  • 自研壁纸package
  • 自研壁纸编辑器

Add shader as a wallpaper source type and wire it through the wallpaper manager, notifier, persisted config, and wallpaper factory. Shader wallpapers are loaded from precompiled qsb packages and driven by a frame-synchronized clock so animation time follows actual rendered frames.

Extend the test wallpaper client to import .frag files by compiling them with qsb, caching shared shader packages under /tmp, and falling back to /usr/lib/qt6/bin/qsb when qsb is not in PATH. Add qt6-shader-baker as the examples runtime dependency.

Log: 支持导入并渲染 shader 动态壁纸

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @mhduiy, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: mhduiy

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@mhduiy mhduiy marked this pull request as draft July 3, 2026 02:44
@mhduiy

mhduiy commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

shaderBakeSource 还需修改

Comment thread debian/control
@zccrs

zccrs commented Jul 8, 2026

Copy link
Copy Markdown
Member

Add shader as a wallpaper source type and wire it through the wallpaper manager, notifier, persisted config, and wallpaper factory. Shader wallpapers are loaded from precompiled qsb packages and driven by a frame-synchronized clock so animation time follows actual rendered frames.

Extend the test wallpaper client to import .frag files by compiling them with qsb, caching shared shader packages under /tmp, and falling back to /usr/lib/qt6/bin/qsb when qsb is not in PATH. Add qt6-shader-baker as the examples runtime dependency.

Log: 支持导入并渲染 shader 动态壁纸

从长远来看,目前实现还有以下问题

  1. 单纯的shader壁纸很难实现复杂壁纸,而且就算实现了,性能消耗太大
  2. 不支持自定义纹理
  3. 现在写死利用了shadertoy的规范进行输入,应该建立自有规范
  4. 壁纸制作的成本比较高,不支持多个层级叠加效果

长远设想,或者是下一步打算

  • 支持纯shader 壁纸
  • 支持静态壁纸作为纹理,实现中
  • 支持多layer
  • 自研壁纸package
  • 自研壁纸编辑器

目标不要定义太复杂了,如果需要这么高级的定义能力,其实应该自己实现一个wallpaper程序代替默认的。

@mhduiy

mhduiy commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

Add shader as a wallpaper source type and wire it through the wallpaper manager, notifier, persisted config, and wallpaper factory. Shader wallpapers are loaded from precompiled qsb packages and driven by a frame-synchronized clock so animation time follows actual rendered frames.
Extend the test wallpaper client to import .frag files by compiling them with qsb, caching shared shader packages under /tmp, and falling back to /usr/lib/qt6/bin/qsb when qsb is not in PATH. Add qt6-shader-baker as the examples runtime dependency.
Log: 支持导入并渲染 shader 动态壁纸

从长远来看,目前实现还有以下问题

  1. 单纯的shader壁纸很难实现复杂壁纸,而且就算实现了,性能消耗太大
  2. 不支持自定义纹理
  3. 现在写死利用了shadertoy的规范进行输入,应该建立自有规范
  4. 壁纸制作的成本比较高,不支持多个层级叠加效果

长远设想,或者是下一步打算

  • 支持纯shader 壁纸
  • 支持静态壁纸作为纹理,实现中
  • 支持多layer
  • 自研壁纸package
  • 自研壁纸编辑器

目标不要定义太复杂了,如果需要这么高级的定义能力,其实应该自己实现一个wallpaper程序代替默认的。

嗯嗯,设想是做成一个类似于 Wallpaper Engine 的东西,但是确实一时半会实现不了。规范输入是有必要的,给设计壁纸的人提供通用接口。当前实现 shader 壁纸、自定义静态壁纸输入并且建立输入规范后重新打开此PR。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants