Re: [Sugar-devel] booth banner for Bolzano?
On 11/07/2009 07:41 PM, Sean DALY wrote: Hi Simon I will be bringing the Strawberry rollup booth banner to Bolzano; it will come in handy during Walter's talk and provide some visual scenery for us (as if the mountains weren't enough ;-) If you're able to bring the Blueberry banner, that would be great. If not, don't worry about it. Nope :/ I am already in the valley. I plan to bring several machines, any preferences from my collection which could be of use? XO-1s / Acer Aspire One / Acer Revo nettop / Dell Mini10v / Dell Latitude 2100 / EeePC / Classmate Gen1 Gen2 / Sony Vaio PCG-TR1 Maybe the Dell's and Acer are interesting. Regards, Simon ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
[Sugar-devel] Fwd: External Dependency Proposal: GtkImageView
This may interest to the developers of ImageView. Regards, Tomeu On Sun, Nov 8, 2009 at 08:16, Matthew Barnes mbar...@redhat.com wrote: I'd like to use Björn Lindqvist's GtkImageView widget [1] in Evolution for displaying image attachments inline. Evolution has been displaying image attachments inline on its own for ages, but GtkImageView does it better, is fully documented [2], and offers panning and zooming features that are nice for large images. I already have a working implementation in the form of a conditionally compiled inline-image plugin (which replaces our crusty old built-in image handling code), so the dependency would be optional. Approving GtkImageView as an external dependency might also make it more appealing to the gThumb and Eye of GNOME developers. Matthew Barnes [1] http://trac.bjourne.webfactional.com/ [2] http://trac.bjourne.webfactional.com/chrome/common/gtkimageview-docs/ ___ desktop-devel-list mailing list desktop-devel-l...@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list -- «Sugar Labs is anyone who participates in improving and using Sugar. What Sugar Labs does is determined by the participants.» - David Farning ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] OOM conditions
On Sat, Nov 7, 2009 at 12:06, Martin Dengler mar...@martindengler.com wrote: On Fri, Nov 06, 2009 at 04:50:53PM +, Tomeu Vizoso wrote: On Wed, Nov 4, 2009 at 14:16, Martin Dengler mar...@martindengler.com wrote: On Fri, Oct 30, 2009 at 11:22:13PM +0100, Tomeu Vizoso wrote: On Fri, Oct 30, 2009 at 16:58, Richard A. Smith rich...@laptop.org wrote: Working the table at the Boston book festival I was reminded how painful the OOM stuff is on a gen 1. The demo machines were in this state a lot as each visitor would open up a new program. Basically you have to just turn the unit off and restart as trying to recover is futile. What if activities had a higher oom_score? Would that protect enough the processes that once killed require a system restart (X, shell, etc)? See patch vs sugar-toolkit HEAD below[1] (I can backport to 0.82 if wanted). Maybe would be better to have the shell do that? So it works for non-python activities. Patch inline below. Looks great, thanks a lot. Have you seen less memory-induced lockups on the XO-1? Regards, Tomeu Regards, Tomeu Martin Thanks, Tomeu Martin (untested) patch against http://cgit.sugarlabs.org/sugar-toolkit/mainline/tree/src/sugar/activity/activityfactory.py : From 4bd6fb9f7f245c2aed92d6964746627d0c96cbec Mon Sep 17 00:00:00 2001 From: Martin Dengler mar...@martindengler.com Date: Sat, 7 Nov 2009 10:55:16 + Subject: [PATCH] sacrifice activities to the OOM killer first change the OOM-killer score of launched activities to be the maximum. See discussion at http://linux-mm.org/OOM_Killer --- src/sugar/activity/activityfactory.py | 35 + 1 files changed, 35 insertions(+), 0 deletions(-) diff --git a/src/sugar/activity/activityfactory.py b/src/sugar/activity/activityfactory.py index ee0fd92..5deee6e 100644 --- a/src/sugar/activity/activityfactory.py +++ b/src/sugar/activity/activityfactory.py @@ -65,6 +65,39 @@ def _close_fds(): pass +def __oom_adj_pid(pid, omm_adj_value=None): + Change a process' OOM likelihood to oom_adj_value. + + By default, use the value of gconf path + /desktop/sugar/performance/oom_adj_default; if none exists, make + this process most likely to be killed (oom_adj_value=15). + + Linux-specific. See http://linux-mm.org/OOM_Killer for details. + + oom_adj_fullpath = /proc/%s/oom_adj % pid + if os.path.exists(oom_adj_fullpath): + try: + + # get values/defaults from gconf + import gconf + gconf_dir = /desktop/sugar/performance + gconf_key = oom_adj_default + client = gconf.client_get_default() + if not client.dir_exists(gconf_dir): + client.add_dir(gconf_dir, gconf.CLIENT_PRELOAD_NONE) + if oom_adj_value is None: + oom_adj_value = client.get_int(gconf_dir + / + gconf_key) + if oom_adj_value is None: + oom_adj_value = 15 + client.set_int(gconf_dir + / + gconf_key, + oom_adj_value) + + file(oom_adj_fullpath).write(oom_adj_value) + + except: + pass + + def create_activity_id(): Generate a new, unique ID for this activity pservice = presenceservice.get_instance() @@ -276,6 +309,8 @@ class ActivityCreationHandler(gobject.GObject): stdout=log_file.fileno(), stderr=log_file.fileno()) + __oom_adj_pid(child.pid) + gobject.child_watch_add(child.pid, _child_watch_cb, (environment_dir, log_file)) -- 1.6.2.5 -- «Sugar Labs is anyone who participates in improving and using Sugar. What Sugar Labs does is determined by the participants.» - David Farning ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] OOM conditions
Slightly off-topic, has anyone tried compcache (http://code.google.com/p/compcache/) on an XO-1? I might if I can get it to work. 2009/11/8 Tomeu Vizoso to...@sugarlabs.org: On Sat, Nov 7, 2009 at 12:06, Martin Dengler mar...@martindengler.com wrote: On Fri, Nov 06, 2009 at 04:50:53PM +, Tomeu Vizoso wrote: On Wed, Nov 4, 2009 at 14:16, Martin Dengler mar...@martindengler.com wrote: On Fri, Oct 30, 2009 at 11:22:13PM +0100, Tomeu Vizoso wrote: On Fri, Oct 30, 2009 at 16:58, Richard A. Smith rich...@laptop.org wrote: Working the table at the Boston book festival I was reminded how painful the OOM stuff is on a gen 1. The demo machines were in this state a lot as each visitor would open up a new program. Basically you have to just turn the unit off and restart as trying to recover is futile. What if activities had a higher oom_score? Would that protect enough the processes that once killed require a system restart (X, shell, etc)? See patch vs sugar-toolkit HEAD below[1] (I can backport to 0.82 if wanted). Maybe would be better to have the shell do that? So it works for non-python activities. Patch inline below. Looks great, thanks a lot. Have you seen less memory-induced lockups on the XO-1? Regards, Tomeu Regards, Tomeu Martin Thanks, Tomeu Martin (untested) patch against http://cgit.sugarlabs.org/sugar-toolkit/mainline/tree/src/sugar/activity/activityfactory.py : From 4bd6fb9f7f245c2aed92d6964746627d0c96cbec Mon Sep 17 00:00:00 2001 From: Martin Dengler mar...@martindengler.com Date: Sat, 7 Nov 2009 10:55:16 + Subject: [PATCH] sacrifice activities to the OOM killer first change the OOM-killer score of launched activities to be the maximum. See discussion at http://linux-mm.org/OOM_Killer --- src/sugar/activity/activityfactory.py | 35 + 1 files changed, 35 insertions(+), 0 deletions(-) diff --git a/src/sugar/activity/activityfactory.py b/src/sugar/activity/activityfactory.py index ee0fd92..5deee6e 100644 --- a/src/sugar/activity/activityfactory.py +++ b/src/sugar/activity/activityfactory.py @@ -65,6 +65,39 @@ def _close_fds(): pass +def __oom_adj_pid(pid, omm_adj_value=None): + Change a process' OOM likelihood to oom_adj_value. + + By default, use the value of gconf path + /desktop/sugar/performance/oom_adj_default; if none exists, make + this process most likely to be killed (oom_adj_value=15). + + Linux-specific. See http://linux-mm.org/OOM_Killer for details. + + oom_adj_fullpath = /proc/%s/oom_adj % pid + if os.path.exists(oom_adj_fullpath): + try: + + # get values/defaults from gconf + import gconf + gconf_dir = /desktop/sugar/performance + gconf_key = oom_adj_default + client = gconf.client_get_default() + if not client.dir_exists(gconf_dir): + client.add_dir(gconf_dir, gconf.CLIENT_PRELOAD_NONE) + if oom_adj_value is None: + oom_adj_value = client.get_int(gconf_dir + / + gconf_key) + if oom_adj_value is None: + oom_adj_value = 15 + client.set_int(gconf_dir + / + gconf_key, + oom_adj_value) + + file(oom_adj_fullpath).write(oom_adj_value) + + except: + pass + + def create_activity_id(): Generate a new, unique ID for this activity pservice = presenceservice.get_instance() @@ -276,6 +309,8 @@ class ActivityCreationHandler(gobject.GObject): stdout=log_file.fileno(), stderr=log_file.fileno()) + __oom_adj_pid(child.pid) + gobject.child_watch_add(child.pid, _child_watch_cb, (environment_dir, log_file)) -- 1.6.2.5 -- «Sugar Labs is anyone who participates in improving and using Sugar. What Sugar Labs does is determined by the participants.» - David Farning ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] OOM conditions
On Sun, Nov 08, 2009 at 12:07:58PM +, Lucian Branescu wrote: Slightly off-topic, has anyone tried compcache (http://code.google.com/p/compcache/) on an XO-1? I might if I can get it to work. Yes. It works very well. http://www.google.com/search?q=compcache+xo Martin pgp7lEo0pz5B2.pgp Description: PGP signature ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Keep offline for Browse (offline bookmarks)
Hi Lucian, On 8 Nov 2009, at 15:17, Lucian Branescu wrote: The second point in this ticket http://bugs.sugarlabs.org/ticket/971 I've made a patch against the latest Browse, but trac doesn't let me post it (apparently I'm a bot). Besides being able to save pages for offline use, this patch will also allow distribution of HTML content in .zip files that have an 'index.html' inside. Browse will happily open such files (but they may need certain metadata). Sounds fantastic, I'm currently trying to reproduce Presence issues (have been bouncing questions the last few days off Michael off-list), but will try to give this patch a look in a few days. Regards, --Gary ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] Terminal.xo patch: do not die if the cwd is gone
Thanks for the patch. New version released (with a backport of Martin's patch as well) and should show up in ASLO soon. It is version 30, since no vacant version was left in between :-( -sdg- On Tue, Nov 3, 2009 at 9:34 PM, Martin Langhoff martin.langh...@gmail.com wrote: Attached is a trivial patch that handles gracefully the situation where cwd does not exist anymore or is no longer accessible to the olpc user. Without it, - mount a usb disk - open Terminal.xo, change directory to /media/my-usb-disk/ - close Terminal.xo - unmount / remove usb disk - try to open Terminal.xo = fails to start cheers, m -- martin.langh...@gmail.com mar...@laptop.org -- School Server Architect - ask interesting questions - don't get distracted with shiny stuff - working code first - http://wiki.laptop.org/go/User:Martinlanghoff -- Sayamindu Dasgupta [http://sayamindu.randomink.org/ramblings] ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] [ANNOUNCE] Get Books Activity 3, now with SneakerNet/ChappalNet support
Hi Jim, I think GIAB should stay. Get Books still has a few deficiencies : * Metadata: GIAB seems to pull in more metadata that what is currently offered by OPDS. * Large resultsets: The OPDS results returned by IA are chunked into segments of 50 items each. Get Books only handles the first segment. Getting it to handle the other segments (essentially, loading them automagically as the user scrolls down) requires quite a bit of coding effort (and the optimal way here would be probably to use threading, and threading in PyGTK can be a dangerous thing to tread on) - there is no timeframe for its implementation yet. * Formats: While the current format code is hardcoded, and I will offer whatever is there in the OPDS data from next version, it will not cover all the formats from IA. I would prefer not to hard-code anything (since I'm handling a number of sources, hardcoding for a particular source will lead to a lot of messy code) Let me know what you think. Thanks, Sayamindu On Sat, Nov 7, 2009 at 2:15 AM, Jim Simmons nices...@gmail.com wrote: Sayamindu, Regarding the friendly fork of Get Internet Archive Books, I'm thinking that perhaps you will soon have Get Books in good enough shape that the original Activity will no longer be needed, and at that point you should merge your clone with the mainline and take over the Activity. About the only thing that GIAB can do that you can't (yet) is give the user a choice of download formats. It shouldn't be too tough to implement that option if you restrict it to the Internet Archive. I could rename the original Activity in ASLO and rename its wiki page, then give you authority in git to update the mainline. You would need to renumber your Activity version to number 4, as GIAB is currently at version 3. It's pretty clear that GIAB is a dead end and what you're doing is the future. You've even addressed the future needs of the Rural Design Collective for distributing children's books on a thumb drive, which was something I had hoped to do with GIAB at some point. Let me know what you think. James Simmons Date: Fri, 6 Nov 2009 04:26:07 +0530 From: Sayamindu Dasgupta sayami...@gmail.com Subject: [Sugar-devel] [ANNOUNCE] Get Books Activity 3, now with SneakerNet/ChappalNet support To: OLPC Bookreader list bookrea...@lists.laptop.org, Sugar devel sugar-devel@lists.sugarlabs.org Message-ID: a1314bfe0911051456k2e7791a8h989e41265d127...@mail.gmail.com Content-Type: text/plain; charset=UTF-8 Hello, Get Books Activity is a friendly fork of Jim Simmon's Get Internet Archive Books activity and it allows Sugar users to search for and download Ebooks from various sources. One of the major points of concern for many was this activity required Internet access, and I have tried to address that issue with this release. The activity can now access catalogs in removable devices (pen drives, etc) and lets the user search through these catalogs. A removable device with a catalog will show up in the list of sources from which the books can be downloaded/copied. Utilizing this feature, one will be able to copy thousands of ebooks in a pen-drive, put a catalog file (catalog.xml) in the root[1] directory of the device, and send it to bandwidth starved areas. (think of a library on a stick ;-) Apart from the above features, this release also has some subtle changes in the behavior which will hopefully make the overall use experience better. (for example, changing the source in the middle of a search will trigger a new search within the new selected source) I do not consider this release to be stable, so I have not uploaded it to ASLO yet (I had to do a lot more refactoring that I would have liked to get the removable device support working). To download the activity (it should work with Sucrose 0.82 upwards), follow the link: http://dev.laptop.org/~sayamindu/GetBooks-3.xo To test the removable device support, in a USB drive, unzip http://dev.laptop.org/~sayamindu/books_on_a_stick.zip [2] (make sure that the catalog.xml file stays in the toplevel directory of the drive), and plug the USB drive in wherever you are running Sugar. Get Books is _supposed_ to detect removable devices as and when they are plugged in/removed, but if your device does not show up, try restarting the activity before trying anything else. Thanks, Sayamindu -- Sayamindu Dasgupta [http://sayamindu.randomink.org/ramblings] ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
[Sugar-devel] Problem converting an activity from 0.82 to 0.86
Last months I developed a activity for sugar. I used sugar 0.82 on Ubuntu 8.10. The activity is not ready yet, but works running in Xephyr. Now I am testing my new activity using Trisquel 3.0 with sugar 0.86.2. But I can not get the GUI running. On sugar 0.86.2 I got an exception when I try to set the canvas. Same source code works on 0.82. Maybe there is an error in my source code and 0.82 is more tolerant. How to port from 0.82 to 0.86? Is there a list of (breaking) changes or deprecated methods? Tanks, Thomas Here are the details: Log-File: 1257703419.020482 DEBUG Kandid: searching for extensions in /usr/share/sugar/activities/Kandid.activity 1257703419.114374 DEBUG Kandid: Starting activity... 1257703419.209278 WARNING root: No gtk.AccelGroup in the top level window. 1257703419.217976 WARNING root: No gtk.AccelGroup in the top level window. /var/lib/python-support/python2.6/sugar/graphics/window.py:290: DeprecationWarning: use toolbar_box instead of toolbox warnings.warn('use toolbar_box instead of toolbox', DeprecationWarning) 1257703419.278926 DEBUG Kandid: set_canvas(self._main_view) [gtk.HBox object at 0xa59ce3c (GtkHBox at 0xad9c628)] Traceback (most recent call last): File /usr/bin/sugar-activity, line 21, in module main.main() File /var/lib/python-support/python2.6/sugar/activity/main.py, line 146, in main create_activity_instance(activity_constructor, activity_handle) File /var/lib/python-support/python2.6/sugar/activity/main.py, line 35, in create_activity_instance activity = constructor(handle) File /usr/share/sugar/activities/Kandid.activity/activity.py, line 69, in __init__ self.set_canvas(self._main_view) File /var/lib/python-support/python2.6/sugar/activity/activity.py, line 402, in set_canvas Window.set_canvas(self, canvas) File /var/lib/python-support/python2.6/sugar/graphics/window.py, line 174, in set_canvas self._event_box.remove(self._canvas) TypeError: GtkContainer.remove() argument 1 must be gtk.Widget, not KandidCanvas Activity died: pid 5473 condition 256 data (None, open file 'fdopen', mode 'w' at 0x9d137a0) Source code: def __init__(self, handle): activity.Activity.__init__(self, handle) self._name = handle ka_debug.info('Starting activity...') # Set title for our Activity self.set_title('Kandid') # Attach sugar toolbox (Share, ...) toolbox = activity.ActivityToolbox(self) self.set_toolbox(toolbox) toolbox.show() # Create the main container #self._main_view = gtk.VBox() self._main_view = gtk.HBox() # Create GUI and attach that widget to our window self._canvas = ka_canvas.KandidCanvas() self._main_view.pack_start(self._canvas.widget) # Display everything self._canvas.widget.show() self._main_view.show() ka_debug.info('set_canvas(self._main_view) [%s]' % (self._main_view)) self.set_canvas(self._main_view) # -- Activity died here -- http://digital-defect.org ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
Re: [Sugar-devel] [ANNOUNCE] Get Books Activity 3, now with SneakerNet/ChappalNet support
Sayamindu, I'm not sure why you think you'd need to use multithreading to deal with the multiple chunks. Can't you just bring them in one at a time, parse as you go, and then display the finished result set all at once? I saw your Get Books activity got praised on the OLPC blog as being a key part of their latest efforts with Internet Archive books. (My name was listed also, but it was clearly your Activity they were praising). It just seemed to me that it would be a good idea to give your efforts an official status (its own git repository, wiki page, ASLO downloads, etc.) as soon as possible. Even with the shortcomings you mention it deserves that much. If you want to keep the original around for awhile it's fine with me. In the short run it won;'t hurt anything. In the long term it makes more sense to have just one Activity to find and get books on the Internet and just one Activity to read them. I understood from you that eventually Read would be able to use the formats I wrote View Slides and Read Etexts for. Those Activities could also stay around but they might be of more use to teachers and other adults than they would be to the young students Sugar is targetted at. James Simmons On Sun, Nov 8, 2009 at 2:22 PM, Sayamindu Dasgupta sayami...@gmail.com wrote: Hi Jim, I think GIAB should stay. Get Books still has a few deficiencies : * Metadata: GIAB seems to pull in more metadata that what is currently offered by OPDS. * Large resultsets: The OPDS results returned by IA are chunked into segments of 50 items each. Get Books only handles the first segment. Getting it to handle the other segments (essentially, loading them automagically as the user scrolls down) requires quite a bit of coding effort (and the optimal way here would be probably to use threading, and threading in PyGTK can be a dangerous thing to tread on) - there is no timeframe for its implementation yet. * Formats: While the current format code is hardcoded, and I will offer whatever is there in the OPDS data from next version, it will not cover all the formats from IA. I would prefer not to hard-code anything (since I'm handling a number of sources, hardcoding for a particular source will lead to a lot of messy code) Let me know what you think. Thanks, Sayamindu On Sat, Nov 7, 2009 at 2:15 AM, Jim Simmons nices...@gmail.com wrote: Sayamindu, Regarding the friendly fork of Get Internet Archive Books, I'm thinking that perhaps you will soon have Get Books in good enough shape that the original Activity will no longer be needed, and at that point you should merge your clone with the mainline and take over the Activity. About the only thing that GIAB can do that you can't (yet) is give the user a choice of download formats. It shouldn't be too tough to implement that option if you restrict it to the Internet Archive. I could rename the original Activity in ASLO and rename its wiki page, then give you authority in git to update the mainline. You would need to renumber your Activity version to number 4, as GIAB is currently at version 3. It's pretty clear that GIAB is a dead end and what you're doing is the future. You've even addressed the future needs of the Rural Design Collective for distributing children's books on a thumb drive, which was something I had hoped to do with GIAB at some point. Let me know what you think. James Simmons Date: Fri, 6 Nov 2009 04:26:07 +0530 From: Sayamindu Dasgupta sayami...@gmail.com Subject: [Sugar-devel] [ANNOUNCE] Get Books Activity 3, now with SneakerNet/ChappalNet support To: OLPC Bookreader list bookrea...@lists.laptop.org, Sugar devel sugar-devel@lists.sugarlabs.org Message-ID: a1314bfe0911051456k2e7791a8h989e41265d127...@mail.gmail.com Content-Type: text/plain; charset=UTF-8 Hello, Get Books Activity is a friendly fork of Jim Simmon's Get Internet Archive Books activity and it allows Sugar users to search for and download Ebooks from various sources. One of the major points of concern for many was this activity required Internet access, and I have tried to address that issue with this release. The activity can now access catalogs in removable devices (pen drives, etc) and lets the user search through these catalogs. A removable device with a catalog will show up in the list of sources from which the books can be downloaded/copied. Utilizing this feature, one will be able to copy thousands of ebooks in a pen-drive, put a catalog file (catalog.xml) in the root[1] directory of the device, and send it to bandwidth starved areas. (think of a library on a stick ;-) Apart from the above features, this release also has some subtle changes in the behavior which will hopefully make the overall use experience better. (for example, changing the source in the middle of a search will trigger a new search within the new selected source) I do not consider this release to be stable, so I
Re: [Sugar-devel] MANIFEST experiments
On Sun, Nov 08, 2009 at 02:29:51PM +0700, Philipp Kocher wrote: The patch is good to reduce the boot time, but doesn't work for activity developers. Yes, this is a known side-effect. It is an optimisation for users not developers. -- James Cameron http://quozl.linux.org.au/ ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel
[Sugar-devel] Soas03/04 Font Size?
Thanks to Luke Macken's new version of the LiveUSB-creator utility, I've been able to build both soas03.iso and soas04.iso sticks. I'm happy to report that Csound and csound-python work fine on both, no updates required. Very nice I've run into a major unexpected problem with both, however: the default font sizes have been increased so that my activities, nicely sized for both XO-1 and Strawberry, now considerably overflow the same screens. So I need to add code to compensate. It seems I either must know where to query the information about the SoaS version, or learn where the default font size, or related value, is stored. I guess I'd assume (rightly?) that default font size would not change further, so that I can set one option as XO-1 (this is already taken care of), another as Strawberry, and another as soas03/04/Blueberry and higher. Can someone indicate code (especially the location of crucial values) that I could use to accomplish the above, or something similar? I rather imagine I instigated this change be entering a bug stating that the Strawberry font size was too small. I like it much better now; I just need to make all versions of SoaS display my activities to look the same relative to screen size. ___ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel