sugar-toolkit-gtk3/sugar-emulator

90 lines
2.7 KiB
Plaintext
Raw Normal View History

2007-01-20 13:38:58 +01:00
#!/usr/bin/env python
2006-10-16 13:35:07 +02:00
# Copyright (C) 2006, Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import os
import sys
import gtk
os.environ['SUGAR_EMULATOR'] = 'yes'
sourcedir = os.path.abspath(os.path.dirname(__file__))
2006-10-16 13:35:07 +02:00
if os.path.isfile(os.path.join(sourcedir, 'sugar/__uninstalled__.py')):
print 'Running sugar from ' + sourcedir + ' ...'
sys.path.insert(0, sourcedir)
else:
print 'Running the installed sugar...'
sourcedir = None
2006-10-16 13:35:07 +02:00
from sugar import env
2006-12-01 23:23:58 +01:00
from sugar import util
from sugar.emulator import Emulator
2006-10-16 13:35:07 +02:00
if sourcedir:
if os.environ.has_key('PYTHONPATH'):
old_path = os.environ['PYTHONPATH']
os.environ['PYTHONPATH'] = sourcedir + ':' + old_path
else:
os.environ['PYTHONPATH'] = sourcedir
bin_path = sourcedir
bin_path += ':' + os.path.join(sourcedir, 'shell')
bin_path += ':' + os.path.join(sourcedir, 'services/presence')
bin_path += ':' + os.path.join(sourcedir, 'services/clipboard')
if os.environ.has_key('PATH'):
old_path = os.environ['PATH']
os.environ['PATH'] = bin_path + ':' + old_path
else:
os.environ['PATH'] = bin_path
bin = os.path.join(sourcedir,
'services/presence/sugar-presence-service')
2006-12-01 23:23:58 +01:00
util.write_service('org.laptop.Presence', bin,
env.get_user_service_dir())
bin = os.path.join(sourcedir,
'services/clipboard/sugar-clipboard')
2006-12-01 23:23:58 +01:00
util.write_service('org.laptop.Clipboard', bin,
env.get_user_service_dir())
2006-10-16 13:35:07 +02:00
bin = os.path.join(sourcedir,
'services/datastore/sugar-data-store')
util.write_service('org.laptop.sugar.DataStore', bin,
env.get_user_service_dir())
bin = os.path.join(sourcedir,
'services/console/sugar-console')
util.write_service('org.laptop.sugar.Console', bin,
env.get_user_service_dir())
if len(sys.argv) == 1:
program = 'sugar-shell'
else:
program = sys.argv[1]
fullscreen = (gtk.gdk.screen_width() <= 1200 or
2007-01-31 17:30:57 +01:00
gtk.gdk.screen_height() <= 900) and \
(gtk.gdk.screen_width() / 4 * 3 ==
gtk.gdk.screen_height())
emulator = Emulator(fullscreen)
2006-10-16 13:35:07 +02:00
emulator.start()
os.execlp('dbus-launch', 'dbus-launch', '--exit-with-session', program)