Skip to content

Add Decky Clipper plugin#1003

Open
Managor wants to merge 15 commits intoSteamDeckHomebrew:mainfrom
Managor:submodule
Open

Add Decky Clipper plugin#1003
Managor wants to merge 15 commits intoSteamDeckHomebrew:mainfrom
Managor:submodule

Conversation

@Managor
Copy link
Copy Markdown

@Managor Managor commented Mar 19, 2026

Add Decky Clipper to Plugin Store

Decky Clipper is a successor to Decky Recorder. In its current state Decky Recorder is broken and adding this plugin would add a functioning recording program to Decky. I occasionally need to record the Steam UI, which the builtin tools don't provide.

Task Checklist

Developer

  • I am the original author or an authorized maintainer of this plugin.
  • I have abided by the licenses of the libraries I am utilizing, including attaching license notices where appropriate.

Plugin

  • I have verified that my plugin works properly on the Stable and Beta Main update channels of SteamOS.
  • I have verified my plugin is unique or provides more/alternative functionality to a plugin already on the store.

Backend

  • No: I am using a custom backend other than Python.
  • Not sure: I am using a tool or software from a 3rd party FOSS project that does not have it's dependencies statically linked.
  • No: I am using a custom binary that has all of it's dependencies statically linked.

Community

  • I have tested and left feedback on two other pull requests for new or updating plugins.
  • I have commented links to my testing report in this PR.

Testing

  • Tested by a third party on SteamOS Stable or Beta update channel.

@Managor Managor requested a review from a team as a code owner March 19, 2026 21:36
@github-actions github-actions Bot added the plugin-addition Adding a plugin to the Plugin Store label Mar 19, 2026
@github-actions
Copy link
Copy Markdown

Issues Found

  • Both testing boxes are present in your description. Please remove one of them per the Markdown comment above the testing section.

Next Steps

  1. If we found any issues above, please edit your pull request description to resolve them and leave a comment saying you've done so.
  2. For the quickest review, please see the Community section of the pull request template for how you can help other developers.
  3. Once your description is correct, a maintainer will review your pull request as soon as possible.

Thank you for your contribution! If you need any help, please reach out on our Discord server. ❤️

@Managor
Copy link
Copy Markdown
Author

Managor commented Mar 19, 2026

@Managor
Copy link
Copy Markdown
Author

Managor commented Mar 19, 2026

I accidentally added the wrong url. I'll fix that

@EMERALD0874
Copy link
Copy Markdown
Member

@Managor Just to confirm—this plugin is significantly different from Decky Recorder in terms of UX? If it's similar enough to be considered an "update", you could take ownership of the original plugin and this could be considered a refactor so users can easily update through the plugin store. Just let us know what you prefer.

@Managor
Copy link
Copy Markdown
Author

Managor commented Mar 20, 2026

I don't know if there's any migratory steps to take. As a novice I'd rather start from scratch to learn. Also Recorder is broken.

@Managor
Copy link
Copy Markdown
Author

Managor commented Mar 21, 2026

0.7.3 ironed out some kinks. Github artifacts seem to replace spaces with periods. Is there a way to have the space so that the list view shows "Decky Clipper" and not "Decky-Clipper"?

@Managor
Copy link
Copy Markdown
Author

Managor commented Mar 21, 2026

Decky recorder also does things that Clipper doesn't do and I don't see myself supporting. Better to start with a new store entry to keep the user expectations in check.

@maroun2

This comment was marked as outdated.

@Managor
Copy link
Copy Markdown
Author

Managor commented Mar 21, 2026

In the decky loader it showing 0.7.3 version.

Goddammit. I always forget to bump the version within package.json

@Managor
Copy link
Copy Markdown
Author

Managor commented Mar 21, 2026

@maroun2 That should be fixed now

@maroun2
Copy link
Copy Markdown
Contributor

maroun2 commented Mar 22, 2026

@Managor every video now have around 1s for me only no mather what. See the log please.
2026-03-22 06.32.29.log

@Managor
Copy link
Copy Markdown
Author

Managor commented Mar 24, 2026

@maroun2 Can you try the latest build? I changed nothing, but I created a new logging system that should help me understand more of what's happening.

It sounds a little bit like Managor/Decky-Clipper#1. Likely Chrome being a desktop app which makes it run at 0fps which causes the video to not work correctly. If possible, can you test with a game that outputs with a stable framerate?

@maroun2
Copy link
Copy Markdown
Contributor

maroun2 commented Mar 25, 2026

2026-03-25 19.03.39.log
I played whole level and the final file has 309kb, 2026-03-25_19_04_52-Kingdom Rush Frontiers.
@Managor

@Managor
Copy link
Copy Markdown
Author

Managor commented Mar 26, 2026

[2026-03-25 19:04:53,466][INFO]: STDOUT: ../gstreamer/subprojects/gst-plugins-bad/sys/va/gstvabaseenc.c(703): gst_va_base_enc_handle_frame (): /GstPipeline:pipeline0/GstVaH264Enc:vah264enc0
[2026-03-25 19:04:53,466][INFO]: STDOUT: Execution ended after 0:00:00.174378460
[2026-03-25 19:04:53,466][INFO]: STDOUT: Setting pipeline to NULL ...
[2026-03-25 19:04:53,466][INFO]: STDOUT: ERROR: from element /GstPipeline:pipeline0/GstPipeWireSrc:pipewiresrc0: Internal data stream error.
[2026-03-25 19:04:53,466][INFO]: STDOUT: Additional debug info:
[2026-03-25 19:04:53,466][INFO]: STDOUT: ../gstreamer/subprojects/gstreamer/libs/gst/base/gstbasesrc.c(3177): gst_base_src_loop (): /GstPipeline:pipeline0/GstPipeWireSrc:pipewiresrc0:

Seems like either VAAPI or pipewiresrc is the culprit here. Are you on a device other than Steam Deck? Different hardware configuration could explain why I haven't encountered this on my own device.
Never mind. It says description=(string)"AMD\ Custom\ GPU\ 0932" right there in the log and I have the same.
I have zero clue where to start with this.

I pushed another version and enabled the verbose flag for gstreamer. Hopefully that can help shed light on the issue.

@Managor
Copy link
Copy Markdown
Author

Managor commented Apr 3, 2026

I'm adding features. The core part of the plugin was ready long ago. I was thinking it would be nice for the users to get the latest stuff once the plugin enters the testing repo. The plan was to enter feature freeze the moment someone reviews the code.
I'll do a 1.0.0 release now.

@Managor Managor marked this pull request as ready for review April 3, 2026 20:02
Copy link
Copy Markdown
Member

@EMERALD0874 EMERALD0874 left a comment

Choose a reason for hiding this comment

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

  • Please confirm that your plugin needs root access.
  • Could you provide a little more information in your description? Like "Records your entire screen, including Steam UI" or something similar. It would be helpful for users who don't understand the difference between this and game recording.
  • Can you please explain how/why your plugin serves videos on a web server?
  • If you aren't using the py_modules folder, please remove it.
  • If you aren't using the defaults folder, please remove it.
  • If you aren't using the backend folder, please remove it.

@Managor
Copy link
Copy Markdown
Author

Managor commented Apr 10, 2026

  • No root access needed. Clipper uses the pipewire node provided by gamescope to record the screen. Steam native recording uses the same method but stops recording as soon as the game stops running. Should this be mentioned somewhere in the metadata?
  • Updated the description to explain what you can record and why.
  • I wasn't able to figure out a better way to view the videos in gamemode. It was a pain to go into desktop to view what you had actually recorded or use an external computer and connect with sftp (which a common user isn't going to do). I'm open for suggestions.
  • Deleted unused directories
  • backend directory is in use. It installs Gstreamer dependencies in the docker container and then copies them to the install zip since they're not preinstalled on the Deck. I'm waiting for vulkanh264enc to be available so I can drop vah264enc and this method of dependency adding.

Copy link
Copy Markdown

@mdeguzis mdeguzis left a comment

Choose a reason for hiding this comment

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

Is there a comparison table on how this stacks up to the native screen recording Valve already has?

@Managor
Copy link
Copy Markdown
Author

Managor commented Apr 14, 2026

Can you elaborate on what the comparison table should contain?

@mdeguzis
Copy link
Copy Markdown

I would review https://store.steampowered.com/gamerecording and see what the plugin would add / improve here. I used Decky Loader exclusively before Valve released recording officially, so it would be good to highlight differences and what this does better.

@Managor
Copy link
Copy Markdown
Author

Managor commented Apr 14, 2026

The readme already tells what it does better. Please provide concrete things you want to know.

@Managor Managor requested a review from EMERALD0874 April 16, 2026 00:59
@github-actions
Copy link
Copy Markdown

This pull request is stale as no updates or testing reports have been posted within the last 7 days. Please ensure you are actively recruiting testers or resolving the issues discussed. If you do not remove the stale label or comment, this will be closed in 7 days. Please close this pull request if you need more time to resolve issues so we can keep our repo healthy.

@github-actions github-actions Bot added the stale label Apr 23, 2026
@Managor
Copy link
Copy Markdown
Author

Managor commented Apr 23, 2026

Still waiting for @EMERALD0874 to review.

Copy link
Copy Markdown
Member

@EMERALD0874 EMERALD0874 left a comment

Choose a reason for hiding this comment

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

No commits have been made since my last review. Please update your submodule if you made the changes we've discussed (e.g., changing description and removing root in plugin.json). Also don't understand why debug is in the plugin.json.

@Managor
Copy link
Copy Markdown
Author

Managor commented Apr 23, 2026

Sorry about that. Didn't realize root was defined in plugin.json. That came with the template.

@EMERALD0874
Copy link
Copy Markdown
Member

Can you please update the description in plugin.json to provide more information? Like "Records your entire screen, including Steam UI" or something similar. It would be helpful for users who don't understand the difference between this and the Game Recording feature already present in Steam.

@Managor
Copy link
Copy Markdown
Author

Managor commented Apr 29, 2026

@EMERALD0874 Is there anything still missing?

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

Labels

plugin-addition Adding a plugin to the Plugin Store

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants