Run the session dbus from the emulator. The olpc run his own.

This commit is contained in:
Marco Pesenti Gritti 2006-08-22 10:37:24 +02:00
parent 1017bba22d
commit 49073039e9
2 changed files with 22 additions and 24 deletions

View File

@ -3,6 +3,7 @@ import socket
import sys import sys
from session.Process import Process from session.Process import Process
import sugar.env
def get_display_number(): def get_display_number():
"""Find a free display number trying to connect to 6000+ ports""" """Find a free display number trying to connect to 6000+ ports"""
@ -53,6 +54,22 @@ class XnestProcess(Process):
Process.start(self) Process.start(self)
os.environ['DISPLAY'] = ":%d" % (self._display) os.environ['DISPLAY'] = ":%d" % (self._display)
class DbusProcess(Process):
def __init__(self):
config = sugar.env.get_dbus_config()
cmd = "dbus-daemon --print-address --config-file %s" % config
Process.__init__(self, cmd)
def get_name(self):
return 'Dbus'
def start(self):
Process.start(self, True)
dbus_file = os.fdopen(self._stdout)
addr = dbus_file.readline().strip()
dbus_file.close()
os.environ["DBUS_SESSION_BUS_ADDRESS"] = addr
class Emulator: class Emulator:
"""The OLPC emulator""" """The OLPC emulator"""
def start(self): def start(self):
@ -64,6 +81,9 @@ class Emulator:
process = XnestProcess() process = XnestProcess()
process.start() process.start()
except: except:
print('Cannot run the emulator. You need to install\ print 'Cannot run the emulator. You need to install \
Xephyr or Xnest.') Xephyr or Xnest.'
sys.exit(0) sys.exit(0)
process = DbusProcess()
process.start()

View File

@ -4,31 +4,12 @@ import gobject
import time import time
import re import re
import dbus
import dbus.dbus_bindings
from sugar.presence import PresenceService from sugar.presence import PresenceService
from Shell import Shell from Shell import Shell
from ConsoleWindow import ConsoleWindow from ConsoleWindow import ConsoleWindow
from session.Process import Process from session.Process import Process
import sugar.env import sugar.env
class DbusProcess(Process):
def __init__(self):
config = sugar.env.get_dbus_config()
cmd = "dbus-daemon --print-address --config-file %s" % config
Process.__init__(self, cmd)
def get_name(self):
return 'Dbus'
def start(self):
Process.start(self, True)
dbus_file = os.fdopen(self._stdout)
addr = dbus_file.readline().strip()
dbus_file.close()
os.environ["DBUS_SESSION_BUS_ADDRESS"] = addr
class MatchboxProcess(Process): class MatchboxProcess(Process):
def __init__(self): def __init__(self):
kbd_config = os.path.join(sugar.env.get_data_dir(), 'kbdconfig') kbd_config = os.path.join(sugar.env.get_data_dir(), 'kbdconfig')
@ -49,9 +30,6 @@ class Session:
def start(self): def start(self):
"""Start the session""" """Start the session"""
process = DbusProcess()
process.start()
PresenceService.start() PresenceService.start()
process = MatchboxProcess() process = MatchboxProcess()