diff options
-rw-r--r-- | data/sugar.schemas.in | 11 | ||||
-rw-r--r-- | src/jarabe/intro/window.py | 18 |
2 files changed, 29 insertions, 0 deletions
diff --git a/data/sugar.schemas.in b/data/sugar.schemas.in index 48770de..bb69f9e 100644 --- a/data/sugar.schemas.in +++ b/data/sugar.schemas.in @@ -13,6 +13,17 @@ </locale> </schema> <schema> + <key>/schemas/desktop/sugar/user/default_nick</key> + <applyto>/desktop/sugar/user/default_nick</applyto> + <owner>sugar</owner> + <type>string</type> + <default>system</default> + <locale name="C"> + <short>Default nick</short> + <long>"disabled" to ask nick on initialization; "system" to reuse UNIX account long name.</long> + </locale> + </schema> + <schema> <key>/schemas/desktop/sugar/user/color</key> <applyto>/desktop/sugar/user/color</applyto> <owner>sugar</owner> diff --git a/src/jarabe/intro/window.py b/src/jarabe/intro/window.py index 94c6782..35c0cda 100644 --- a/src/jarabe/intro/window.py +++ b/src/jarabe/intro/window.py @@ -18,6 +18,7 @@ import os import logging from gettext import gettext as _ import gconf +import pwd import gtk import gobject @@ -111,6 +112,9 @@ class _NamePage(_Page): def get_name(self): return self._entry.props.text + def set_name(self, new_name): + self._entry.props.text = new_name + def activate(self): self._entry.props.widget.grab_focus() @@ -156,6 +160,20 @@ class _IntroBox(hippo.CanvasBox): self._current_page = None self._next_button = None + client = gconf.client_get_default() + default_nick = client.get_string('/desktop/sugar/user/default_nick') + if default_nick != 'disabled': + self._page = self.PAGE_COLOR + if default_nick == 'system': + pwd_entry = pwd.getpwuid(os.getuid()) + if pwd_entry.pw_gecos: + nick = pwd_entry.pw_gecos.split(',')[0] + self._name_page.set_name(nick) + else: + self._name_page.set_name(pwd_entry.pw_name) + else: + self._name_page.set_name(default_nick) + self._setup_page() def _setup_page(self): |