<div dir="ltr"><div>Hi everyone,<br><br></div><div>I've made a bit of progress on this issue - "disable wallpaper" and "disable animations" somewhat work with Gnome3. The code is very simple:<br><br>
static void disable_animation()<br>{<br>    GSettings *desktop_settings = g_settings_new("org.gnome.desktop.interface");<br>    g_settings_set_boolean(desktop_settings, "enable-animations", FALSE);<br>
}<br><br>static void disable_wallpaper()<br>{<br>    GSettings *desktop_settings = g_settings_new("org.gnome.desktop.background");<br>    g_settings_set_boolean(desktop_settings, "draw-background", FALSE);<br>
}<br><br></div><div>But looks like this isn't enough. This implementation of disable_wallpaper actually freezes current background, it is still displayed just isn't scaled properly when e.g. resolution changes. I'd love some input from anyone with Gnome3 knowledge... What's expected behavior for Spice client in this case?<br>
<br></div><div>Disable_animations seems to not changing things much - at least I still see some animations when opening menu or pressing Action button (top left corner).<br><br></div><div>Another question is about --spice-disable-effects=font-smooth. While this can be changed via GSettings, I think it should be changed at X level, correct? Leading to subsequent question of supporting Wayland/Weston... Also I don't really see any use case for disabling anti-aliasing... Maybe configuring anti-aliasing level makes sense...<br>
<br></div><div>Next question is about --spice-color-depth. Right now it supports Windows-specific values of 16 and 32, for Linux we'd need to support 16 and 24. I think this setting should be adjusted at X level, similarly to anti-aliasing.<br>
<br></div><div>There is another level of complexity: changing these settings takes permanent effect, and user doesn't have any means to reset them except dconf-editor (not user friendly at all).<br>So looks like we'd need an '--spice-enable-effects' option (and by default, when enable/disable isn't set, use local-only detection - to be implemented). What do you think?<br>
<br></div><div>And finally, I haven't looked into KDE settings counterpart yet, but the question is already here - how should we bind to KDE settings API. Late binding via dlopen/dlsym - to be used only if KDE detected? Also, GSettings/Gnome3 support relies on GIO - and currently vdagent isn't dependent on this library (only on GLib). Should we not favor Gnome3 over KDE here and implement this feature symmetrically?<br>
<br></div><div>I'm really sorry for so much questions about this tiny feature... Implementing DE-specifics within a client doesn't seem so easy or proper way for me now...<br></div><div></div><div><br></div><br></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jul 5, 2013 at 9:45 PM, Hans de Goede <span dir="ltr"><<a href="mailto:hdegoede@redhat.com" target="_blank">hdegoede@redhat.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<div class="im"><br>
<br>
On 07/05/2013 06:07 PM, Fedor Lyakhov wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks for your answers!<br>
<br>
Looks like the issue is more complicated than I originally thought. But I'm still excited to continue working on it.<br>
Ok, I'm going to follow Hans' view now.<br>
</blockquote>
<br></div>
Good.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
One thing I don't understand: why would we want to apply these 'effects' settings via vdagentd (system level)? For me they belong to session level.<br>
</blockquote>
<br></div>
And they do, the suggestion to use the system dbus was related to your proposal where the agent would advertise<br>
settings and the session(s) settings manager would query them. If you follow my proposal the agent will be<br>
actively making the changes, and that certainly belongs in the session part of the agent.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Before the session is started there is no way for us to know will it be Gnome or KDE or w/e - it is decided upon login...<br>
</blockquote>
<br></div>
Correct, but if the session's settings manager will query the agent (the old design) there is no need to know<br>
the session type.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Also how this will work when Spice supports multiple client connections to one guest?<br>
</blockquote>
<br></div>
A good question, this is something which is best left for later.<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I'll investigate current ways of toggling 'effects' in Gnome and KDE - to understand how far we are from common standard way for doing this. Assuming there is no common way, what would you prefer:<br>
1. Implement DE-specific code within vdagent/vdagentd<br>
2. Introduce something like 'draft standard dbus interface for controlling DE effects', and add sample Gnome and KDE implementations (which would hide DE-specifics from vdagent).<br>
</blockquote>
<br></div>
I would prefer 1. You could also do 2 in parallel as a proof of concept, when starting<br>
a discussion about a unified dbus API for this, it helps to have some example code, but I<br>
believe that to get results quickly we should do 1 (we can still pursue 2 in parallel to<br>
work to a better solution in the future).<br>
<br>
Regards,<br>
<br>
Hans<br>
</blockquote></div><br><br clear="all"><br>-- <br>Best regards,<br>Fedor
</div>