libvibrant / vibrantDeck

Plugin for the Steam Deck, to adjust color settings, like saturation or gamma
GNU Lesser General Public License v3.0
137 stars 7 forks source link

Separate settings for external display #60

Open gyorgys opened 1 year ago

gyorgys commented 1 year ago

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 :(

Scrumplex commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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.