Skip to content

Add Deckamine plugin (v1.0.0) - #1134

Open
elyarim wants to merge 8 commits into
SteamDeckHomebrew:mainfrom
elyarim:fix/pr-1134-deckamine-conflicts
Open

elyarim wants to merge 8 commits into
SteamDeckHomebrew:mainfrom
elyarim:fix/pr-1134-deckamine-conflicts

Conversation

@elyarim

@elyarim elyarim commented Sep 26, 2026 •

Copy link
Copy Markdown

Add Deckamine to Plugin Store

Deckamine brings Apple-style Vehicle Motion Cues to SteamOS and Linux handhelds (ROG Ally, ROG Ally X, Steam Deck LCD & OLED, Legion Go, Ayaneo, etc.). It displays subtle, animated inertia dots along the screen edges synchronized with vehicle movement (accelerations, braking, turns) to resolve vestibular-visual sensory conflict and prevent motion sickness (kinetosis) while gaming in moving cars, trains, or planes.

Key Highlights

  • Zero Impact on Game Performance: Direct imperative DOM transforms with requestAnimationFrame spring physics; zero React re-renders during gameplay.
  • Universal Motion Sensor Engine: Automatically detects and reads hardware sensors from both Linux IIO (/sys/bus/iio/devices/ on ROG Ally, Legion Go, Ayaneo) and Steam Deck evdev (Steam Deck Motion Sensors on Steam Deck LCD & OLED).
  • Security & Privacy: 100% offline, zero network requests, read-only sensor access, and pointer-events: none overlay that never intercepts touch or controller inputs.
  • Customizable: Sensitivity, deadzone, dot size, opacity, color themes, axis inversion, and one-tap neutral calibration.

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.
  • Generative AI was NOT used to write a majority of the code I am submitting.

Plugin

  • I have verified that my plugin works properly on the Stable and Beta 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.
  • No: 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.

@elyarim
elyarim requested a review from a team as a code owner September 26, 2026 04:57
@github-actions github-actions Bot added the not-plugin Not related to plugins themselves label Sep 26, 2026
@github-actions

Copy link
Copy Markdown

Issues Found

  • Neither testing box is present in your description. Please include 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. ❤️

@github-actions github-actions Bot added the plugin-addition Adding a plugin to the Plugin Store label Sep 26, 2026
@elyarim

elyarim commented Sep 26, 2026

Copy link
Copy Markdown
Author

Updated description to follow template and included testing box.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented Oct 5, 2026

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 Oct 5, 2026
@elyarim

elyarim commented Oct 5, 2026

Copy link
Copy Markdown
Author

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.

Hola, quería dejar una actualización para evitar que esta PR quede marcada como stale. He seguido validando Deckamine en SteamOS y estoy recopilando/adjuntando el informe de pruebas del test realizado por terceros. El plugin sigue funcionando correctamente en el canal Stable/Beta y estoy trabajando en resolver cualquier comentario o feedback que aparezca. También estoy buscando más testers para validar la experiencia en otros dispositivos compatibles (ROG Ally, Legion Go, Ayaneo, etc.). Gracias por su paciencia y por mantener el repositorio saludable.

@github-actions github-actions Bot removed the stale label Oct 6, 2026
@AAGaming00 AAGaming00 removed the not-plugin Not related to plugins themselves label Oct 8, 2026
@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 Oct 16, 2026
@elyarim

elyarim commented Oct 16, 2026

Copy link
Copy Markdown
Author

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.

Thanks for the heads-up. I’m still actively working on this and recruiting additional testers. I’ll post an updated testing report and address any outstanding feedback soon.
Please keep the PR open for now — I don’t need to close it. If there are any specific issues you’d like me to resolve first, let me know.

@elyarim

elyarim commented Oct 16, 2026

Copy link
Copy Markdown
Author

Hey! I noticed this PR got marked as stale, but it’s still active and I’d appreciate a fresh review when you have a chance.

If there’s anything missing from my submission or anything I should update to help move this forward, please let me know and I’ll take care of it.

@github-actions github-actions Bot removed the stale label Oct 17, 2026
@AAGaming00
AAGaming00 requested review from a team and removed request for a team October 19, 2026 21:11
@AAGaming00 AAGaming00 moved this to Ready for review in Plugin Review Oct 19, 2026
@Tormak9970

Copy link
Copy Markdown
Contributor

@elyarim Code looks good, just a few things:

  • Could you clarify what Copilot was used for
  • Not required at all but I'd suggest splitting up your frontend code into a few files

@AAGaming00 AAGaming00 moved this from Ready for review to Changes requested in Plugin Review Oct 19, 2026
@elyarim

elyarim commented Oct 20, 2026

Copy link
Copy Markdown
Author

@elyarim Code looks good, just a few things:

  • Could you clarify what Copilot was used for
  • Not required at all but I'd suggest splitting up your frontend code into a few files

Thanks for the review, @Tormak9970!

Copilot usage: Copilot was used only for limited assistance (small wording/snippet suggestions and iteration support). It was not used to generate the majority of the code. The core implementation, architecture decisions, sensor integration logic, and validation/testing were done by me.

Frontend split: I split the frontend into separate modules (store.ts, rpc.ts, types.ts, DotOverlay.ts, GlobalMotionOverlay.tsx, SettingsPanel.tsx), and index.tsx now only registers the plugin. The behavior is unchanged and the build passes. Commit: elyarim/Deckamine@5a9a2da

I'll update the plugin entry to point to this commit and resolve the merge conflicts shortly.

@AAGaming00 AAGaming00 moved this from Changes requested to Ready for review in Plugin Review Oct 20, 2026
@elyarim
elyarim deployed to testing_env October 20, 2026 03:59 — with GitHub Actions Active
Tormak9970
Tormak9970 previously approved these changes Oct 20, 2026

@Tormak9970 Tormak9970 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good to me! Thanks for cleaning up the frontend and clarifying

@github-project-automation github-project-automation Bot moved this from Ready for review to Approved, needs testing in Plugin Review Oct 20, 2026
@sidharthify

Copy link
Copy Markdown
Contributor

LGTM.

@elyarim elyarim removed their assignment Oct 21, 2026
@elyarim
elyarim requested a review from Tormak9970 October 21, 2026 18:07
@AAGaming00
AAGaming00 requested a review from a team October 22, 2026 02:20
@AAGaming00 AAGaming00 moved this from Approved, needs testing to Ready for review in Plugin Review Oct 22, 2026

This branch is waiting to be deployed

1 waiting deployment
testing_env — 5d99607f Waiting Oct 22, 2026 by elyarim via Build plugin (deckamine, true) #4160
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

Status: Ready for review

Development

Successfully merging this pull request may close these issues.

4 participants