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

Add settings profiles #594

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open

Conversation

xbmo
Copy link

@xbmo xbmo commented May 19, 2021

This commit implements a feature discussed in #213.

It allows users to create settings profiles which store the changes they make on the settings menu under a user-defined name. Multiple profiles can be created, deleted and switched between.

It has been implemented in a non-intrusive way for those who don't wish to use this feature, as the only thing that is different to their experience is the 'save as new profile' box at the bottom of the settings menu.

This update has introduced new text into the UI which would need translating before release.

create_profile

active_profile

profile_in_header

@xbmo xbmo marked this pull request as ready for review May 19, 2021 15:28
@cgutman cgutman added the enhancement New feature or request label Jul 21, 2021
@Proryanator
Copy link

Proryanator commented Nov 8, 2021

I would love if this got merged in! Some games look amazing at 4K@60, some games I prefer to play at 1080@120. This would be so helpful to quickly swap profiles.

@cgutman would you be up for taking a look at this so it can get merged in? :)

@ZacTyAdams
Copy link

ZacTyAdams commented Dec 7, 2022

I was about to start work on this feature until I found this. Will this PR be completed anytime soon?

@cgutman

@cgutman
Copy link
Member

cgutman commented Dec 9, 2022

Yeah the main thing was basically the design of how profiles would work with different hosts and apps. It seems like we probably want a combination of per-app, per-host, and global settings with some sort of precedence system.

You probably want the freedom to make global changes to things like video decoder, finding PCs on the local network, UI language, etc. without having to go update every profile. For things like muting host PC speakers, you probably want that per-host. Settings like remote desktop mouse mode, HDR, and resolution probably tend to be per per-app.

However, there's a ton of overlap between per-app, per-host, and global settings. Bitrate might be a global or per-host setting, depending on if the network bottleneck is on the client or host side. Resolution and frame rate might be a global or per-app setting depending on your host PC performance and personal preference between image quality and performance. Reversing the scrolling direction might be global or per-host, depending on whether the host or client has inverted scrolling.

As a user, how do I create and manage these profiles? How do I set precedence for each of these settings? How can I easily tell which combination of settings are the actual ones being applied (and if something isn't applied as expected, how can I figure out why?)

I don't have a clear idea answer to these design questions. If anyone has thoughts on this, I'd be happy to hear them.

@ZacTyAdams
Copy link

I don't think you need to get that far into the weeds when it comes to the first iteration of the feature. A simple menu that offers the ability to snapshot your current host-level settings (all of them from host speakers, to bitrate, to resolution, etc) and give them a name is a perfect MVP. Most users are only connecting to one host but may have changes that need to be made depending on their client conditions like whether or not they are on wifi or ethernet, whether or not they need to change the resolution due to a particular app or game, or if they are enabling remote desktop mouse. I posted a message in Discord if there is any way I could help build this out as I am a user who definitely needs this with my client setup.

@xbmo
Copy link
Author

xbmo commented Dec 12, 2022

My thinking at the time was similar to what @ZacTyAdams has said, a MVP/simple approach to having this functionality available.

A solution could go as deep as per-app, per-host etc, but from my experience as a user in emulators like Dolphin on Android, it comes with it's own issues such as it becoming difficult to keep track of the level at which something has been changed, and more per-app management.

The way it's set up here, users aren't impacted by it unless it's a feature they want to interact with. At which point, there is some complexity in managing these profiles, but whatever solution is ultimately used will always have that to a certain degree.

@ASchwad
Copy link

ASchwad commented Dec 23, 2023

Any updates on this? Is there anything we can contribute to push this PR?

As a user, how do I create and manage these profiles? How do I set precedence for each of these settings? How can I easily tell which combination of settings are the actual ones being applied (and if something isn't applied as expected, how can I figure out why?)

As far as I understand the PR, profiles can be managed in the client settings. The applied settings are visible at the top before selecting a host. Personally, this is exactly what is was looking for - simple and straightforward.

@Proryanator
Copy link

Proryanator commented Jan 17, 2024

I'm still pretty interested in this feature on clients; I often change res/fps/bitrates for different games.

@Two-Play
Copy link

@xbmo @cgutman Hi, why hasn't this been merged yet? I just wanted to implement this feature and found this good PR. Can I do something to make it merged (faster)?

by the way, really cool project, thanks for all that

@Proryanator
Copy link

+1 for getting this implemented (7 month check in here).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants