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

Separate settings for external display #60

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

gyorgys
Copy link
Contributor

@gyorgys gyorgys commented Jun 8, 2023

Would like to get some early feedback on this feature.

My issue is that I use the XReal Airs (NReal Airs) with the SteamDeck, and they require very different settings than the internal display. So I need to keep changing the settings when I connect / disconnect them.

I assume people who use the SD in docked mode a lot might have a similar issue - they don't want the same settings on their TV that they set for the SD display.

So this change will poll every 3s to see whether an external display was connected or not. Settings will maintain separate settings for internal and external displays and apply them when the change is detected.

Note: I defaulted to no color manipulation for external displays. I think most people use this plugin to change the internal display right now. However, people who had extensive per app settings for external display will be inconvenienced.

Note2: best would be to detect the ID of the external display and have separate settings for each. Couldn't figure that one out :(

setListeningMode(setingsEnabled: boolean, panelVisible: boolean) {
if (setingsEnabled || panelVisible) {
this.register(panelVisible ? 1000 : 3000);
this.backend.toast(panelVisible ? "Monitoring displays" : "Monitoring displays in the background");
Copy link
Contributor Author

Choose a reason for hiding this comment

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

for testing only, will remove

@Scrumplex
Copy link
Member

Does the color transformation stuff (vibrancy slider) work with external displays as is? Gamescope has a separate atom for it called GAMESCOPE_COLOR_MATRIX_EXTERNAL IIRC, so I am not sure if we need that here

@gyorgys
Copy link
Contributor Author

gyorgys commented Jun 11, 2023

Does the color transformation stuff (vibrancy slider) work with external displays as is? Gamescope has a separate atom for it called GAMESCOPE_COLOR_MATRIX_EXTERNAL IIRC, so I am not sure if we need that here

You are right, let me fix.

How can I learn these things about Gamescope? Did you just look at source?

@Scrumplex
Copy link
Member

Did you just look at source?

yep. That also made me realize that the current way we do things is gonna eventually go away, as these color management properties have been replaced by the use of 3D LUTs. I have no idea how they work yet. See #62

@gyorgys
Copy link
Contributor Author

gyorgys commented Jun 12, 2023

For now, do you like the feature that I am trying to add?

Do you think it is OK to assume people's current settings are for internal display only?

Shall we add a setting to disable monitoring external display connection for people who don't need this? In that case, I think we could add a separate page for 'advanced settings' and move the separate gamma slider toggle there too.

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.

2 participants