Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add 'Crosshair' plugin to DB #745

Merged
merged 9 commits into from
Jan 16, 2025

Conversation

xXJSONDeruloXx
Copy link
Contributor

@xXJSONDeruloXx xXJSONDeruloXx commented Jan 12, 2025

Crosshair Plugin

This plugin overlays a customizable crosshair on the screen for use in games on the Steam Deck. It provides predefined crosshairs for 800p (Steam Deck) and 1080p (external displays, other handhelds) and allows users to adjust the crosshair position dynamically via the plugin UI.

Checklist:

Developer Checklist

  • 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 Checklist

  • 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 alternatively provides more/alternative functionality to a similar plugin already on the store.

Plugin Backend Checklist

  • 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.

Testing

  • Tested on SteamOS Stable/Beta Update Channel.

  • Tested on SteamOS Preview Update Channel.

Copy link
Member

@TrainDoctor TrainDoctor left a comment

Choose a reason for hiding this comment

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

Please remove assets, backend, defaults and py_modules folders as you do not appear to be making use of them. If you are using the existing license for the plugin-template please update it's contents to reflect this. If not, please include the original license info at the bottom and the new license above it (in the same file). Please also remove the root and debug flags from plugin.json.

Once you have made these changes, the PR can proceed.

I am currently experimenting with a concept for testing plugin submissions and plugin updates. I would request that you submit testing reports for at least 2 other plugin submissions/updates (preferably the oldest PRs still active). Then if no other plugin author (as I will be encouraging all others to do the same) or tester submits a testing report I will request that a member of the SDH team tests your plugin update/submission according to the testing guidelines.

@TrainDoctor TrainDoctor added the needsfix An issue/change request needs to be resolved label Jan 12, 2025
@xXJSONDeruloXx
Copy link
Contributor Author

@TrainDoctor all adjustments made as requested, and I will do the testing reports for other plugins here shortly!

@xXJSONDeruloXx
Copy link
Contributor Author

@TrainDoctor reviewed 2 plugins; Pause games and web browser. Please let me know if theres anything else needed!

@TrainDoctor
Copy link
Member

@TrainDoctor reviewed 2 plugins; Pause games and web browser. Please let me know if theres anything else needed!

Please make sure you're reports follow the format specified in the link below:
https://wiki.deckbrew.xyz/user-guide/testing#submitting-a-test-report

I greatly appreciate you taking the time to make those plugin testing reports. Just need to make sure they include the actual information that's needed for a report to be considered valid.

@TrainDoctor
Copy link
Member

@TrainDoctor all adjustments made as requested, and I will do the testing reports for other plugins here shortly!

Make sure to push your changes to the submodule in your fork of the plugin database, otherwise they won't be picked up properly.

@xXJSONDeruloXx
Copy link
Contributor Author

@TrainDoctor had a kerfuffle, should be good now!

@TrainDoctor TrainDoctor requested review from a team January 13, 2025 06:32
@TrainDoctor TrainDoctor requested a review from a team January 13, 2025 06:33
@TrainDoctor TrainDoctor removed the needsfix An issue/change request needs to be resolved label Jan 13, 2025
@Tormak9970
Copy link
Contributor

Testing Report

Versions

Decky: v3.1.2-pre1
SteamOS: v3.6.20 (Stable)

Summary

Major blocking issues

  • No button to remove the crosshair
  • The crosshair is not removed when the plugin is uninstalled

Minor issues

None

Currently installed plugins

  • TabMaster - Dev (essentially v2.7.3)
  • CSS Loader - 2.1.2
  • SteamGridDB - 1.4.0

Yay/nay on to send to the production store or if it requires more testing.

  • Needs a button to remove the crosshair and crosshair should be removed when the plugin is uninstalled / updated

@Tormak9970 Tormak9970 mentioned this pull request Jan 13, 2025
6 tasks
@xXJSONDeruloXx
Copy link
Contributor Author

@Tormak9970 if user adjusts stats overlay level at all from QAM it will overwrite crosshairs, even if plugin is uninstalled. Still its not the best user experience, will investigate a remove button

@wynn1212
Copy link
Contributor

Testing Report

Currently installed plugins

  • Free Loader - 1.3.0-6f8f352
  • Crosshair - 1.0.0-5d9b69f
  • Picture in Picture - 1.0.0-8489d63
  • Pause Games - 1.0.0-b2be59f
  • Decky Terminal - 0.4.1
  • Bluetooth - 2.3.0
  • Emudecky - 1.0.8-cca33c1
  • Game Theme Music - 1.7.0-2d20293
  • ProtonDB Badges - 1.1.0
  • BT Wake Control - 1.1.2
  • PowerTools - 2.0.3
  • Notebook - 0.1.5
  • Decky Recorder - 0.4.1
  • Animation Changer - 1.3.1
  • CSS Loader - 2.1.2
  • Battery Tracker - 0.2.0
  • Wine Cellar - 0.1.6-cf38b52
  • AutoFlatpaks -1.6.7
  • Audio Loader - 1.6.0-5646408
  • NonSteamLaunchers - 1.0.1-2213950
  • SteamGridDB - 1.5.1-loaderv2-f5d753f
  • DeckSettings - 1.3.0-de05be7

Version

  • SteamOS 3.6.20_20241030.1 (Stable)
  • Steam version 1733265492 (Stable)
  • Decky V3.0.5 (Stable)

Major blocking issue

  • none

Minor issue

  • Crosshair will disappeared if user change any performance overlay
  • Performance overlay HUD will disappeared if user make a crosshair
  • Does not have remove crosshair button

Summary

Yay/nay on to send to the production store or if it requires more testing.

Overall, it needs more tweaking before send to the production store:

  • Adding a description to the Crosshair plugin page would be ideal; otherwise, users might be confused about how to remove the crosshair.
  • I suggest merging the MangoHUD configuration for the performance overlay with your crosshair overlay. Including a button to remove the crosshair would also be a great addition.

@xXJSONDeruloXx
Copy link
Contributor Author

Added remove crosshairs button. Currently I dont have a great way to let performance overlay remain when crosshairs are active, but can look into explaining to the user clearly within the interface

@xXJSONDeruloXx
Copy link
Contributor Author

@wynn1212 added remove button and information within the plugin interface to drive additional clarity

@TrainDoctor
Copy link
Member

@Tormak9970, @wynn1212, I'd like to know if the inability for performance overlays to coexist with the crosshairs is a blocking issue in your opinion. Ultimately the plugin author will be deferred to on design opinions but I want to know if you feel that this would be confusing/frustrating for users. Thank you both for your feedback.

@Tormak9970
Copy link
Contributor

Tormak9970 commented Jan 14, 2025

@Tormak9970, @wynn1212, I'd like to know if the inability for performance overlays to coexist with the crosshairs is a blocking issue in your opinion. Ultimately the plugin author will be deferred to on design opinions but I want to know if you feel that this would be confusing/frustrating for users. Thank you both for your feedback.

Personally, I think that there should be a disclaimer (maybe at the top of the plugin's QAM menu), indicating what happens if you apply the crosshair. A user could easily get confused if they applied the crosshair and their overlay just dissappears. @xXJSONDeruloXx if the user has a custom overlay does that get restored after the crosshair is disabled or is it lost perminantly?

@xXJSONDeruloXx
Copy link
Contributor Author

xXJSONDeruloXx commented Jan 14, 2025

@Tormak9970 i added a disclaimer in the plugin ui from your earlier comments. And if the user manually made a config for one of the 4 presets and toggle to it it will use that custom config, as the 'mangohud.xyz' temp file essentially overwrites the crosshair config in favor of "preset = 2" which references config defined elsewhere that crosshair itself does not touch. Crosshair only hijacks the temp file that typically defines the preset, not the config itself

Content of disclaimer, open to suggestions for the wording:

 NOTE: This plugin works by replacing the performance overlay with text that acts as a crosshair in your game. Currently you can not have both a performance overlay and crosshairs at the same time. To restore performance overlay, simply toggle one of the 4 levels from the QAM tab. 

@Tormak9970
Copy link
Contributor

@Tormak9970 i added a disclaimer in the plugin ui from your earlier comments. And if the user manually made a config for one of the 4 presets and toggle to it it will use that custom config, as the 'mangohud.xyz' temp file essentially overwrites the crosshair config in favor of "preset = 2" which references config defined elsewhere that crosshair itself does not touch. Crosshair only hijacks the temp file that typically defines the preset, not the config itself

Ok perfect. In that case @TrainDoctor I think its good to go

@wynn1212
Copy link
Contributor

@Tormak9970, @wynn1212, I'd like to know if the inability for performance overlays to coexist with the crosshairs is a blocking issue in your opinion. Ultimately the plugin author will be deferred to on design opinions but I want to know if you feel that this would be confusing/frustrating for users. Thank you both for your feedback.

From my perspective, as long as the description and disclaimer are clear, I think it would be acceptable. Without them, users might be confused about why their performance HUD suddenly disappears.

@wynn1212
Copy link
Contributor

Content of disclaimer, open to suggestions for the wording:

 NOTE: This plugin works by replacing the performance overlay with text that acts as a crosshair in your game. Currently you can not have both a performance overlay and crosshairs at the same time. To restore performance overlay, simply toggle one of the 4 levels from the QAM tab. 

@Tormak9970 Here’s another suggestion to ensure users are fully aware of the limitation: display a one-time dialog when the user presses the "Make Crosshair" button for the first time. This would help, as the disclaimer is located below the button on an 800p Steam Deck screen and might not be immediately noticeable.

@Tormak9970
Copy link
Contributor

Content of disclaimer, open to suggestions for the wording:

NOTE: This plugin works by replacing the performance overlay with text that acts as a crosshair in your game. Currently you can not have both a performance overlay and crosshairs at the same time. To restore performance overlay, simply toggle one of the 4 levels from the QAM tab.

@Tormak9970 Here’s another suggestion to ensure users are fully aware of the limitation: display a one-time dialog when the user presses the "Make Crosshair" button for the first time. This would help, as the disclaimer is located below the button on an 800p Steam Deck screen and might not be immediately noticeable.

I agree, that's a good idea, or alternatively move the notice above the buttons and make it more concise. Either way the user wouldn't miss it

@TrainDoctor
Copy link
Member

@xXJSONDeruloXx please implement one of the above suggested solutions or something that you feel ensures the user is aware of the interplay of adding the crosshair and the performance overlays (including custom overlays etc) and then this should be good to go imo.

@xXJSONDeruloXx
Copy link
Contributor Author

@TrainDoctor let me know if the merge commit causes issues, I am still new to working with submodules, thanks for all your assistance

@xXJSONDeruloXx
Copy link
Contributor Author

Implemented, thanks!

@wynn1212
Copy link
Contributor

wynn1212 commented Jan 15, 2025

The implementation looks good to me. Re-testing now...

(EDIT: No major/minor issue found on latest

SteamOS 3.7_20250114.1001 [Main],
Steam runtime 1736906505 [Beta],
Decky V3.1.2-pre1 [Preview]

and

SteamOS 3.6.20_20241030.1 [Stable],
Steam version 1733265492 [Stable],
Decky V3.0.5 [Stable],

the list of currently installed plugins remains unchanged, even though only this plugin has been updated to the latest version from the testing store. )

@xXJSONDeruloXx
Copy link
Contributor Author

Thank you for the review!

Copy link
Member

@TrainDoctor TrainDoctor left a comment

Choose a reason for hiding this comment

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

Changes look good according to testers. Good for production.

@TrainDoctor TrainDoctor merged commit 70081bb into SteamDeckHomebrew:main Jan 16, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

5 participants