On Mon, Oct 12, 2015 at 02:14:17PM +0100, Alan Griffiths wrote: > On 12/10/15 12:53, Alexandros Frantzis wrote: > > So, my take is that the only config that clients need to be notified > > about is the base one. Clients also need to be able to set the session > > and base configs (subject to permission restrictions): > > I know the current scheme also has issues, but how would a settings > application work with this approach (of not being able to read the > current settings)?
The settings app only cares about the current base configuration, which it will be able to get with mir_connection_create_base_config() and set with mir_connection_apply_base_config(). A separate active config concept is not really interesting for a GUI setting app because when the settings app has the focus (i.e., when the user interacts with it) the active config will be the base config (since the settings app won't set a session config). So, what is shown by the settings app will be in sync with reality when it matters. If we want for the settings app to always be in sync with the active config, even when another app with a session config has the focus, then we indeed need a separate active config change notification and way to get it. However, as soon as the user tries to interact with the settings app the config displayed by the app will change back to the base config. This could be a bit confusing for users, but in any case could be added later. For a command line application that gets/sets the base config, being able to report the active config is more reasonable, since no focus is involved. However, I fear that it also may be misleading because perhaps users will expect that they can force a particular change to the active config, but this is not true if a session config is active (they can only change the base config and then the focused session will react to this change any way it wants, possibly ignoring it). Having session configs (instead of a single global config) constitutes a slight paradigm shift in the world of display configuration in Linux, and it will take some time for both users and us to get used to it and find a proper way to communicate the semantics. Having proper names for functions and tools would be a good start (e.g. mir_set_base_display_config for a command line tool instead of mir_set_display_config). Thanks, Alexandros -- Mir-devel mailing list Mir-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/mir-devel