desktop schemas review [was: Re: GSettings migration status]
- From: Christian Persch <chpe gnome org>
- To: GNOME Desktop Development List <desktop-devel-list gnome org>
- Subject: desktop schemas review [was: Re: GSettings migration status]
- Date: Sat, 3 Jul 2010 13:37:42 +0200
Hi;
I think we should use the opportunity of converting to gsettings to
redesign the desktop schemas, not just do a 1:1 translation from gconf.
Let me make some remarks about the gsettings desktop schemas as
they right now are in gsettings-desktop-schemas module.
--------------------------------------------
org.gnome.desktop.background.gschema.xml.in:
<key name="picture-options"
enum="org.gnome.desktop.GDesktopBackgroundStyle">
<default>'zoom'</default> <summary>Picture Options</summary>
<description>Determines how the image set by wallpaper_filename
is rendered. Possible values are "none", "wallpaper", "centered",
"scaled", "stretched", "zoom", "spanned".</description> </key>
I don't think we need to enumerate all choices in the <description>
here. With gsettings, the valid values are stored in the schema via the
enum, so this is unnecessary work for translators, and superflous.
Coincidentally, taking a look at all the <summary> and <description>
strings, it seems to me that once these value enumerations are taken
out, not too much remains that justifies the split between two strings.
IMHO we should consider dropping <summary> from gschema and only
provide for the one <description> strings.
<key name="picture-filename" type="s">
<default>'@datadir@/pixmaps/backgrounds/gnome/background-default.jpg'</default>
<summary>Picture Filename</summary>
<description>File to use for the background image.</description>
</key>
This is a common error. Filenames need to be stored as "ay" and *NOT*
"s" (since "s" is UTF-8). (I think this needs some enhancement in
glib-compile-schemas to be able to still put a string in <default>.)
<key name="picture-opacity" type="i">
<range min="0" max="100"/>
<default>100</default>
<summary>Picture Opacity</summary>
<description>Opacity with which to draw the background
picture.</description> </key>
IMHO, should be a "d" with <range min=0.0 max=1.0> instead.
Also, I wonder if all the picture-* keys should be inside a child schema
here.
---------------------------------------------------
org.gnome.desktop.default-applications.gschema.xml:
Looks like this should use a settings list, with a base schema
containing "exec", "needs-term" (should be "needs-terminal" as below)
keys, and an extended schema for the browser settings adding the
"nremote" key.
<key name="exec" type="s">
<default>'mozilla'</default>
<summary>Default browser</summary>
<description>Default browser for all URLs.</description>
</key>
I wonder if we should support "as" as argv here, instead. Also, whether
this should be "ay" (or "aay") since technically, programme names need
not be UTF-8.
---------------------------------------
org.gnome.desktop.interface.gschema.xml:
Looks ok, but maybe the keys could be named more consistently.
---------------------------------------
org.gnome.desktop.lockdown.gschema.xml:
I wonder if this schema should simply contain a flag setting, instead
of several boolean lockdown settings?
------------------------------------------
org.gnome.desktop.url-handlers.gschema.xml:
This should be a settings list, with a base schema for the "enabled",
"exec" and "needs-terminal" keys; actually the same base schema as the
default-applications schemas above.
-----------------------------------
org.gnome.system.proxy.gschema.xml:
Should use a settings list for the various (http/https/ftp/socks)
proxies.
Maybe the developers working on GIO proxy support could look at this
schema and see if it maps nicely to what their code supports ?
<key name="host" type="s">
<default>''</default>
<summary>HTTP proxy host name</summary>
<description>The machine name to proxy HTTP through.</description>
</key>
<key name="port" type="i">
<range min="0" max="65535"/>
<default>8080</default>
<summary>HTTP proxy port</summary>
<description>The port on the machine defined by
"/system/proxy/http/host" that you proxy through.</description>
</key>
IMHO this is _one_ setting that belongs together, as a "(sq)" tuple
(string, uint16).
-----------------------------------------------------
Finally, I'd like to suggest that gsettings-desktop-schemas install a
header file containing #define's for each schema ID, schema, path and
all the key names.
Regards,
Christian
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]