Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2007-01-08 17:06:59 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2007-01-08 17:06:59 (GMT)
commitcae78d70415923c0deabd518f23dc534f11cfacd (patch)
tree482c96ed3f959b8f8f3d135d9ec1d905db6a541f
parent764eee81e57aa637c7d6c95d3d75f94d9f29d650 (diff)
Rework the console to use autoactivation, move it in services/
-rw-r--r--.gitignore1
-rw-r--r--configure.ac26
-rw-r--r--services/Makefile.am2
-rw-r--r--services/console/Makefile.am17
-rw-r--r--services/console/__init__.py (renamed from shell/console/__init__.py)0
-rwxr-xr-xservices/console/console.py (renamed from shell/console/console.py)74
-rw-r--r--services/console/interface/Makefile.am (renamed from shell/console/interface/Makefile.am)0
-rw-r--r--services/console/interface/__init__.py (renamed from shell/console/interface/__init__.py)0
-rw-r--r--services/console/interface/logviewer/Makefile.am (renamed from shell/console/interface/logviewer/Makefile.am)0
-rw-r--r--services/console/interface/logviewer/__init__.py (renamed from shell/console/interface/logviewer/__init__.py)0
-rw-r--r--services/console/interface/logviewer/logviewer.py (renamed from shell/console/interface/logviewer/logviewer.py)0
-rw-r--r--services/console/interface/memphis/Makefile.am (renamed from shell/console/interface/memphis/Makefile.am)0
-rw-r--r--services/console/interface/memphis/__init__.py (renamed from shell/console/interface/memphis/__init__.py)0
-rw-r--r--services/console/interface/memphis/memphis.py (renamed from shell/console/interface/memphis/memphis.py)0
-rw-r--r--services/console/interface/memphis/plugin.py (renamed from shell/console/interface/memphis/plugin.py)0
-rw-r--r--services/console/interface/memphis/plugins/Makefile.am (renamed from shell/console/interface/memphis/plugins/Makefile.am)0
-rw-r--r--services/console/interface/memphis/plugins/clean_size/Makefile.am (renamed from shell/console/interface/memphis/plugins/clean_size/Makefile.am)0
-rw-r--r--services/console/interface/memphis/plugins/clean_size/README (renamed from shell/console/interface/memphis/plugins/clean_size/README)0
-rw-r--r--services/console/interface/memphis/plugins/clean_size/__init__.py (renamed from shell/console/interface/memphis/plugins/clean_size/__init__.py)0
-rw-r--r--services/console/interface/memphis/plugins/clean_size/info.py (renamed from shell/console/interface/memphis/plugins/clean_size/info.py)0
-rw-r--r--services/console/interface/memphis/plugins/cpu/Makefile.am (renamed from shell/console/interface/memphis/plugins/cpu/Makefile.am)0
-rw-r--r--services/console/interface/memphis/plugins/cpu/README (renamed from shell/console/interface/memphis/plugins/cpu/README)0
-rw-r--r--services/console/interface/memphis/plugins/cpu/__init__.py (renamed from shell/console/interface/memphis/plugins/cpu/__init__.py)0
-rw-r--r--services/console/interface/memphis/plugins/cpu/info.py (renamed from shell/console/interface/memphis/plugins/cpu/info.py)0
-rw-r--r--services/console/interface/memphis/plugins/dirty_size/Makefile.am (renamed from shell/console/interface/memphis/plugins/dirty_size/Makefile.am)0
-rw-r--r--services/console/interface/memphis/plugins/dirty_size/README (renamed from shell/console/interface/memphis/plugins/dirty_size/README)0
-rw-r--r--services/console/interface/memphis/plugins/dirty_size/__init__.py (renamed from shell/console/interface/memphis/plugins/dirty_size/__init__.py)0
-rw-r--r--services/console/interface/memphis/plugins/dirty_size/info.py (renamed from shell/console/interface/memphis/plugins/dirty_size/info.py)0
-rw-r--r--services/console/interface/memphis/plugins/memphis_init/Makefile.am (renamed from shell/console/interface/memphis/plugins/memphis_init/Makefile.am)0
-rw-r--r--services/console/interface/memphis/plugins/memphis_init/README (renamed from shell/console/interface/memphis/plugins/memphis_init/README)0
-rw-r--r--services/console/interface/memphis/plugins/memphis_init/__init__.py (renamed from shell/console/interface/memphis/plugins/memphis_init/__init__.py)0
-rw-r--r--services/console/interface/memphis/plugins/memphis_init/info.py (renamed from shell/console/interface/memphis/plugins/memphis_init/info.py)0
-rw-r--r--services/console/interface/terminal/Makefile.am (renamed from shell/console/interface/terminal/Makefile.am)0
-rw-r--r--services/console/interface/terminal/__init__.py (renamed from shell/console/interface/terminal/__init__.py)0
-rw-r--r--services/console/interface/terminal/terminal.py (renamed from shell/console/interface/terminal/terminal.py)0
-rw-r--r--services/console/interface/xo/Makefile.am (renamed from shell/console/interface/xo/Makefile.am)0
-rw-r--r--services/console/interface/xo/__init__.py (renamed from shell/console/interface/xo/__init__.py)0
-rw-r--r--services/console/interface/xo/drwarea.py (renamed from shell/console/interface/xo/drwarea.py)0
-rw-r--r--services/console/interface/xo/xo.py (renamed from shell/console/interface/xo/xo.py)0
-rw-r--r--services/console/lib/Makefile.am (renamed from shell/console/lib/Makefile.am)0
-rw-r--r--services/console/lib/procmem/Makefile.am (renamed from shell/console/lib/procmem/Makefile.am)0
-rw-r--r--services/console/lib/procmem/__init__.py (renamed from shell/console/lib/procmem/__init__.py)0
-rw-r--r--services/console/lib/procmem/analysis.py (renamed from shell/console/lib/procmem/analysis.py)0
-rw-r--r--services/console/lib/procmem/proc.py (renamed from shell/console/lib/procmem/proc.py)0
-rw-r--r--services/console/lib/procmem/proc_smaps.py (renamed from shell/console/lib/procmem/proc_smaps.py)0
-rw-r--r--services/console/org.laptop.sugar.Console.service.in4
-rwxr-xr-xservices/console/sugar-console11
-rw-r--r--shell/Makefile.am6
-rw-r--r--shell/console/Makefile.am6
-rw-r--r--shell/data/kbdconfig2
-rwxr-xr-xshell/sugar-devel-console12
-rwxr-xr-xshell/sugar-shutdown4
-rw-r--r--shell/view/Shell.py11
-rwxr-xr-xsugar-emulator5
54 files changed, 83 insertions, 98 deletions
diff --git a/.gitignore b/.gitignore
index 4f204b6..d9c4635 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53,3 +53,4 @@ lib/src/sugar-marshal.h
lib/src/stamp-sugar-marshal.c
lib/src/stamp-sugar-marshal.h
services/clipboard/org.laptop.Clipboard.service
+services/console/org.laptop.sugar.Console.service
diff --git a/configure.ac b/configure.ac
index 951d6b9..142e1af 100644
--- a/configure.ac
+++ b/configure.ac
@@ -68,19 +68,19 @@ shell/view/Makefile
shell/view/home/Makefile
shell/view/frame/Makefile
shell/model/Makefile
-shell/console/lib/Makefile
-shell/console/lib/procmem/Makefile
-shell/console/Makefile
-shell/console/interface/Makefile
-shell/console/interface/xo/Makefile
-shell/console/interface/memphis/plugins/clean_size/Makefile
-shell/console/interface/memphis/plugins/dirty_size/Makefile
-shell/console/interface/memphis/plugins/Makefile
-shell/console/interface/memphis/plugins/memphis_init/Makefile
-shell/console/interface/memphis/plugins/cpu/Makefile
-shell/console/interface/memphis/Makefile
-shell/console/interface/logviewer/Makefile
-shell/console/interface/terminal/Makefile
+services/console/lib/Makefile
+services/console/lib/procmem/Makefile
+services/console/Makefile
+services/console/interface/Makefile
+services/console/interface/xo/Makefile
+services/console/interface/memphis/plugins/clean_size/Makefile
+services/console/interface/memphis/plugins/dirty_size/Makefile
+services/console/interface/memphis/plugins/Makefile
+services/console/interface/memphis/plugins/memphis_init/Makefile
+services/console/interface/memphis/plugins/cpu/Makefile
+services/console/interface/memphis/Makefile
+services/console/interface/logviewer/Makefile
+services/console/interface/terminal/Makefile
sugar/Makefile
sugar/__installed__.py
sugar/activity/Makefile
diff --git a/services/Makefile.am b/services/Makefile.am
index 9cf9b95..ceb990c 100644
--- a/services/Makefile.am
+++ b/services/Makefile.am
@@ -1 +1 @@
-SUBDIRS = presence nm clipboard datastore
+SUBDIRS = presence nm clipboard datastore console
diff --git a/services/console/Makefile.am b/services/console/Makefile.am
new file mode 100644
index 0000000..fe6aee0
--- /dev/null
+++ b/services/console/Makefile.am
@@ -0,0 +1,17 @@
+SUBDIRS = interface lib
+
+servicedir = $(datadir)/dbus-1/services
+service_in_files = org.laptop.sugar.Console.service.in
+service_DATA = $(service_in_files:.service.in=.service)
+
+$(service_DATA): $(service_in_files) Makefile
+ @sed -e "s|\@bindir\@|$(bindir)|" $< > $@
+
+sugardir = $(pkgdatadir)/shell/console
+sugar_PYTHON = \
+ __init__.py \
+ console.py
+
+bin_SCRIPTS = sugar-console
+
+DISTCLEANFILES = $(service_DATA)
diff --git a/shell/console/__init__.py b/services/console/__init__.py
index 8b13789..8b13789 100644
--- a/shell/console/__init__.py
+++ b/services/console/__init__.py
diff --git a/shell/console/console.py b/services/console/console.py
index c05e4bd..1b2a371 100755
--- a/shell/console/console.py
+++ b/services/console/console.py
@@ -17,6 +17,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import dbus
+import dbus.glib
import dbus.service
import os
import sys
@@ -26,12 +27,9 @@ import gobject
sys.path.append(os.path.dirname(__file__) + '/lib')
sys.path.append(os.path.dirname(__file__) + '/interface')
-DBUS_BUS = 'org.freedesktop.DBus'
-DBUS_PATH = '/org/freedesktop/DBus'
-
-CONSOLE_BUS = 'org.laptop.Sugar.DeveloperConsole'
-CONSOLE_PATH = '/org/laptop/Sugar/DeveloperConsole'
-CONSOLE_IFACE = 'org.laptop.Sugar.DeveloperConsole'
+CONSOLE_BUS = 'org.laptop.sugar.Console'
+CONSOLE_PATH = '/org/laptop/sugar/Console'
+CONSOLE_IFACE = 'org.laptop.sugar.Console'
class Console:
@@ -40,33 +38,16 @@ class Console:
# Main Window
self.window = gtk.Window()
self.window.set_title('Developer console')
- self.window.connect("delete-event", self._minimize_main_window)
+ self.window.connect("delete-event", self._delete_event_cb)
self.default_width = gtk.gdk.screen_width() * 95 / 100
self.default_height = gtk.gdk.screen_height() * 95 / 100
- self.default_mini_width = 150
- self.default_mini_height = 30
self.window.set_default_size(self.default_width, self.default_height)
self.window.realize()
self.window.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
- # Minimize Window
- self.mini_fixed = gtk.Fixed()
-
- # Minimize buttons
- button_restore = gtk.Button('Restore')
- button_restore.connect("clicked", self._restore_window)
-
- button_quit = gtk.Button('Quit')
- button_quit.connect("clicked", gtk.main_quit)
-
- mini_hbox = gtk.HBox()
- mini_hbox.pack_start(button_restore, True, True, 0)
- mini_hbox.pack_start(button_quit, True, True, 0)
- self.mini_fixed.add(mini_hbox)
-
# Notebook
self.notebook = gtk.Notebook()
@@ -77,52 +58,33 @@ class Console:
main_hbox = gtk.HBox()
main_hbox.pack_start(self.notebook, True, True, 0)
- main_hbox.pack_start(self.mini_fixed, True, True, 0)
main_hbox.show()
self.notebook.show()
self.window.add(main_hbox)
- self.window.show()
-
- self.mini_fixed.hide()
-
+
def _load_interface(self, interface, label):
mod = __import__(interface)
widget = mod.Interface().widget
widget.show()
self.notebook.append_page(widget, gtk.Label(label))
-
- def _restore_window(self, button):
- self.mini_fixed.hide_all()
- self.window.resize(self.default_mini_width, self.default_mini_height)
- self.notebook.show_all()
-
- def _minimize_main_window(self, window, gdkevent):
- self.notebook.hide_all()
- window.resize(self.default_mini_width, self.default_mini_height)
- self.mini_fixed.show_all()
+ def _delete_event_cb(self, window, gdkevent):
+ window.hide()
return True
-# We're using a DBUS-Service to avoid open devconsole more than one time
-class Init_Service(dbus.service.Object):
-
+class Service(dbus.service.Object):
def __init__(self, bus, object_path=CONSOLE_PATH):
dbus.service.Object.__init__(self, bus, object_path)
- CS = Console()
-
-bus = dbus.SessionBus()
-obj = bus.get_object(DBUS_BUS, DBUS_PATH)
+ self._console = Console()
+
+ @dbus.service.method(CONSOLE_IFACE)
+ def show(self):
+ self._console.window.present()
-dbus_iface = dbus.Interface(obj, DBUS_BUS)
-services = dbus_iface.ListNames()
+bus = dbus.SessionBus()
+name = dbus.service.BusName(CONSOLE_BUS, bus)
+obj = Service(name)
-# A temporal way to check if the service is running
-if not CONSOLE_BUS in services:
- name = dbus.service.BusName(CONSOLE_BUS, bus)
- obj = Init_Service(name)
- gtk.main()
-else:
- sys.exit(1)
- \ No newline at end of file
+gtk.main()
diff --git a/shell/console/interface/Makefile.am b/services/console/interface/Makefile.am
index 2654a4b..2654a4b 100644
--- a/shell/console/interface/Makefile.am
+++ b/services/console/interface/Makefile.am
diff --git a/shell/console/interface/__init__.py b/services/console/interface/__init__.py
index e69de29..e69de29 100644
--- a/shell/console/interface/__init__.py
+++ b/services/console/interface/__init__.py
diff --git a/shell/console/interface/logviewer/Makefile.am b/services/console/interface/logviewer/Makefile.am
index e6a6979..e6a6979 100644
--- a/shell/console/interface/logviewer/Makefile.am
+++ b/services/console/interface/logviewer/Makefile.am
diff --git a/shell/console/interface/logviewer/__init__.py b/services/console/interface/logviewer/__init__.py
index 614ed67..614ed67 100644
--- a/shell/console/interface/logviewer/__init__.py
+++ b/services/console/interface/logviewer/__init__.py
diff --git a/shell/console/interface/logviewer/logviewer.py b/services/console/interface/logviewer/logviewer.py
index 6bd4543..6bd4543 100644
--- a/shell/console/interface/logviewer/logviewer.py
+++ b/services/console/interface/logviewer/logviewer.py
diff --git a/shell/console/interface/memphis/Makefile.am b/services/console/interface/memphis/Makefile.am
index 319dad6..319dad6 100644
--- a/shell/console/interface/memphis/Makefile.am
+++ b/services/console/interface/memphis/Makefile.am
diff --git a/shell/console/interface/memphis/__init__.py b/services/console/interface/memphis/__init__.py
index 145d9d4..145d9d4 100644
--- a/shell/console/interface/memphis/__init__.py
+++ b/services/console/interface/memphis/__init__.py
diff --git a/shell/console/interface/memphis/memphis.py b/services/console/interface/memphis/memphis.py
index 8fbc85b..8fbc85b 100644
--- a/shell/console/interface/memphis/memphis.py
+++ b/services/console/interface/memphis/memphis.py
diff --git a/shell/console/interface/memphis/plugin.py b/services/console/interface/memphis/plugin.py
index 5ee8eb7..5ee8eb7 100644
--- a/shell/console/interface/memphis/plugin.py
+++ b/services/console/interface/memphis/plugin.py
diff --git a/shell/console/interface/memphis/plugins/Makefile.am b/services/console/interface/memphis/plugins/Makefile.am
index 2c6b1dd..2c6b1dd 100644
--- a/shell/console/interface/memphis/plugins/Makefile.am
+++ b/services/console/interface/memphis/plugins/Makefile.am
diff --git a/shell/console/interface/memphis/plugins/clean_size/Makefile.am b/services/console/interface/memphis/plugins/clean_size/Makefile.am
index 33565f5..33565f5 100644
--- a/shell/console/interface/memphis/plugins/clean_size/Makefile.am
+++ b/services/console/interface/memphis/plugins/clean_size/Makefile.am
diff --git a/shell/console/interface/memphis/plugins/clean_size/README b/services/console/interface/memphis/plugins/clean_size/README
index 3dd3ae3..3dd3ae3 100644
--- a/shell/console/interface/memphis/plugins/clean_size/README
+++ b/services/console/interface/memphis/plugins/clean_size/README
diff --git a/shell/console/interface/memphis/plugins/clean_size/__init__.py b/services/console/interface/memphis/plugins/clean_size/__init__.py
index 75ce1d1..75ce1d1 100644
--- a/shell/console/interface/memphis/plugins/clean_size/__init__.py
+++ b/services/console/interface/memphis/plugins/clean_size/__init__.py
diff --git a/shell/console/interface/memphis/plugins/clean_size/info.py b/services/console/interface/memphis/plugins/clean_size/info.py
index 25ed044..25ed044 100644
--- a/shell/console/interface/memphis/plugins/clean_size/info.py
+++ b/services/console/interface/memphis/plugins/clean_size/info.py
diff --git a/shell/console/interface/memphis/plugins/cpu/Makefile.am b/services/console/interface/memphis/plugins/cpu/Makefile.am
index 58e9eab..58e9eab 100644
--- a/shell/console/interface/memphis/plugins/cpu/Makefile.am
+++ b/services/console/interface/memphis/plugins/cpu/Makefile.am
diff --git a/shell/console/interface/memphis/plugins/cpu/README b/services/console/interface/memphis/plugins/cpu/README
index 9c7d6f3..9c7d6f3 100644
--- a/shell/console/interface/memphis/plugins/cpu/README
+++ b/services/console/interface/memphis/plugins/cpu/README
diff --git a/shell/console/interface/memphis/plugins/cpu/__init__.py b/services/console/interface/memphis/plugins/cpu/__init__.py
index e22a413..e22a413 100644
--- a/shell/console/interface/memphis/plugins/cpu/__init__.py
+++ b/services/console/interface/memphis/plugins/cpu/__init__.py
diff --git a/shell/console/interface/memphis/plugins/cpu/info.py b/services/console/interface/memphis/plugins/cpu/info.py
index 9cb1ad4..9cb1ad4 100644
--- a/shell/console/interface/memphis/plugins/cpu/info.py
+++ b/services/console/interface/memphis/plugins/cpu/info.py
diff --git a/shell/console/interface/memphis/plugins/dirty_size/Makefile.am b/services/console/interface/memphis/plugins/dirty_size/Makefile.am
index 47c5298..47c5298 100644
--- a/shell/console/interface/memphis/plugins/dirty_size/Makefile.am
+++ b/services/console/interface/memphis/plugins/dirty_size/Makefile.am
diff --git a/shell/console/interface/memphis/plugins/dirty_size/README b/services/console/interface/memphis/plugins/dirty_size/README
index ee4d1a5..ee4d1a5 100644
--- a/shell/console/interface/memphis/plugins/dirty_size/README
+++ b/services/console/interface/memphis/plugins/dirty_size/README
diff --git a/shell/console/interface/memphis/plugins/dirty_size/__init__.py b/services/console/interface/memphis/plugins/dirty_size/__init__.py
index f8e9e0a..f8e9e0a 100644
--- a/shell/console/interface/memphis/plugins/dirty_size/__init__.py
+++ b/services/console/interface/memphis/plugins/dirty_size/__init__.py
diff --git a/shell/console/interface/memphis/plugins/dirty_size/info.py b/services/console/interface/memphis/plugins/dirty_size/info.py
index 54a2e7e..54a2e7e 100644
--- a/shell/console/interface/memphis/plugins/dirty_size/info.py
+++ b/services/console/interface/memphis/plugins/dirty_size/info.py
diff --git a/shell/console/interface/memphis/plugins/memphis_init/Makefile.am b/services/console/interface/memphis/plugins/memphis_init/Makefile.am
index 53b398a..53b398a 100644
--- a/shell/console/interface/memphis/plugins/memphis_init/Makefile.am
+++ b/services/console/interface/memphis/plugins/memphis_init/Makefile.am
diff --git a/shell/console/interface/memphis/plugins/memphis_init/README b/services/console/interface/memphis/plugins/memphis_init/README
index 9c7d6f3..9c7d6f3 100644
--- a/shell/console/interface/memphis/plugins/memphis_init/README
+++ b/services/console/interface/memphis/plugins/memphis_init/README
diff --git a/shell/console/interface/memphis/plugins/memphis_init/__init__.py b/services/console/interface/memphis/plugins/memphis_init/__init__.py
index f5ada7e..f5ada7e 100644
--- a/shell/console/interface/memphis/plugins/memphis_init/__init__.py
+++ b/services/console/interface/memphis/plugins/memphis_init/__init__.py
diff --git a/shell/console/interface/memphis/plugins/memphis_init/info.py b/services/console/interface/memphis/plugins/memphis_init/info.py
index 6e524c7..6e524c7 100644
--- a/shell/console/interface/memphis/plugins/memphis_init/info.py
+++ b/services/console/interface/memphis/plugins/memphis_init/info.py
diff --git a/shell/console/interface/terminal/Makefile.am b/services/console/interface/terminal/Makefile.am
index 8df4650..8df4650 100644
--- a/shell/console/interface/terminal/Makefile.am
+++ b/services/console/interface/terminal/Makefile.am
diff --git a/shell/console/interface/terminal/__init__.py b/services/console/interface/terminal/__init__.py
index eb78b86..eb78b86 100644
--- a/shell/console/interface/terminal/__init__.py
+++ b/services/console/interface/terminal/__init__.py
diff --git a/shell/console/interface/terminal/terminal.py b/services/console/interface/terminal/terminal.py
index 3621fb2..3621fb2 100644
--- a/shell/console/interface/terminal/terminal.py
+++ b/services/console/interface/terminal/terminal.py
diff --git a/shell/console/interface/xo/Makefile.am b/services/console/interface/xo/Makefile.am
index b2035dd..b2035dd 100644
--- a/shell/console/interface/xo/Makefile.am
+++ b/services/console/interface/xo/Makefile.am
diff --git a/shell/console/interface/xo/__init__.py b/services/console/interface/xo/__init__.py
index 6610a0d..6610a0d 100644
--- a/shell/console/interface/xo/__init__.py
+++ b/services/console/interface/xo/__init__.py
diff --git a/shell/console/interface/xo/drwarea.py b/services/console/interface/xo/drwarea.py
index b0e598a..b0e598a 100644
--- a/shell/console/interface/xo/drwarea.py
+++ b/services/console/interface/xo/drwarea.py
diff --git a/shell/console/interface/xo/xo.py b/services/console/interface/xo/xo.py
index 3a3d668..3a3d668 100644
--- a/shell/console/interface/xo/xo.py
+++ b/services/console/interface/xo/xo.py
diff --git a/shell/console/lib/Makefile.am b/services/console/lib/Makefile.am
index 16782d7..16782d7 100644
--- a/shell/console/lib/Makefile.am
+++ b/services/console/lib/Makefile.am
diff --git a/shell/console/lib/procmem/Makefile.am b/services/console/lib/procmem/Makefile.am
index 257c13f..257c13f 100644
--- a/shell/console/lib/procmem/Makefile.am
+++ b/services/console/lib/procmem/Makefile.am
diff --git a/shell/console/lib/procmem/__init__.py b/services/console/lib/procmem/__init__.py
index e69de29..e69de29 100644
--- a/shell/console/lib/procmem/__init__.py
+++ b/services/console/lib/procmem/__init__.py
diff --git a/shell/console/lib/procmem/analysis.py b/services/console/lib/procmem/analysis.py
index d2a247a..d2a247a 100644
--- a/shell/console/lib/procmem/analysis.py
+++ b/services/console/lib/procmem/analysis.py
diff --git a/shell/console/lib/procmem/proc.py b/services/console/lib/procmem/proc.py
index 729aa13..729aa13 100644
--- a/shell/console/lib/procmem/proc.py
+++ b/services/console/lib/procmem/proc.py
diff --git a/shell/console/lib/procmem/proc_smaps.py b/services/console/lib/procmem/proc_smaps.py
index 9416c52..9416c52 100644
--- a/shell/console/lib/procmem/proc_smaps.py
+++ b/services/console/lib/procmem/proc_smaps.py
diff --git a/services/console/org.laptop.sugar.Console.service.in b/services/console/org.laptop.sugar.Console.service.in
new file mode 100644
index 0000000..90882fe
--- /dev/null
+++ b/services/console/org.laptop.sugar.Console.service.in
@@ -0,0 +1,4 @@
+[D-BUS Service]
+Name = org.laptop.Console
+Exec = @bindir@/sugar-console
+
diff --git a/services/console/sugar-console b/services/console/sugar-console
new file mode 100755
index 0000000..b971fb4
--- /dev/null
+++ b/services/console/sugar-console
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+import pygtk
+pygtk.require('2.0')
+
+import os, sys
+from sugar import env
+
+sys.path.insert(0, os.path.join(env.get_data_dir(), 'services/console'))
+
+import console
diff --git a/shell/Makefile.am b/shell/Makefile.am
index 8b1b2c2..550569d 100644
--- a/shell/Makefile.am
+++ b/shell/Makefile.am
@@ -1,11 +1,9 @@
-SUBDIRS = data model view console
+SUBDIRS = data model view
bin_SCRIPTS = \
sugar-activity \
sugar-activity-factory \
- sugar-shell \
- sugar-shutdown \
- sugar-devel-console
+ sugar-shell
sugardir = $(pkgdatadir)/shell
sugar_PYTHON = \
diff --git a/shell/console/Makefile.am b/shell/console/Makefile.am
deleted file mode 100644
index 19c9ce9..0000000
--- a/shell/console/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-SUBDIRS = interface lib
-
-sugardir = $(pkgdatadir)/shell/console
-sugar_PYTHON = \
- __init__.py \
- console.py
diff --git a/shell/data/kbdconfig b/shell/data/kbdconfig
index b6491db..287de52 100644
--- a/shell/data/kbdconfig
+++ b/shell/data/kbdconfig
@@ -6,6 +6,4 @@
<Alt>p=prev
<Alt>c=close
-<Alt><Shift>F12=!sugar-devel-console
<Alt>q=!sugar-emulator-shutdown
-<Alt><Shift>Escape=!sugar-shutdown
diff --git a/shell/sugar-devel-console b/shell/sugar-devel-console
deleted file mode 100755
index 707f834..0000000
--- a/shell/sugar-devel-console
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env python
-
-# Sugar developer console launcher
-import pygtk
-pygtk.require('2.0')
-
-import os, sys
-from sugar import env
-
-sys.path.insert(0, os.path.join(env.get_data_dir(), 'shell'))
-
-import console.console
diff --git a/shell/sugar-shutdown b/shell/sugar-shutdown
deleted file mode 100755
index e511b3d..0000000
--- a/shell/sugar-shutdown
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-dbus-send --system --print-reply --dest=org.freedesktop.Hal \
-/org/freedesktop/Hal/devices/computer \
-org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
diff --git a/shell/view/Shell.py b/shell/view/Shell.py
index 24e62a1..40c5c83 100644
--- a/shell/view/Shell.py
+++ b/shell/view/Shell.py
@@ -94,6 +94,8 @@ class Shell(gobject.GObject):
self._key_grabber.grab('F12')
self._key_grabber.grab('<alt>F5')
self._key_grabber.grab('<alt>F8')
+ self._key_grabber.grab('<alt>=')
+ self._key_grabber.grab('<alt>0')
self._key_grabber.grab('0xDC') # Camera key
self._key_grabber.grab('0xE0') # Overlay key
@@ -135,6 +137,8 @@ class Shell(gobject.GObject):
self._hw_manager.set_display_mode(HardwareManager.COLOR_MODE)
elif key == '<alt>F8':
self._hw_manager.set_display_mode(HardwareManager.B_AND_W_MODE)
+ elif key == '<alt>=' or key == '<alt>0':
+ self._show_console()
elif key == '<shft><alt>F9':
self._frame.notify_key_press()
elif key == '<shft><alt>F10':
@@ -154,6 +158,13 @@ class Shell(gobject.GObject):
box = self._home_window.get_home_box()
box.grab_and_rotate()
+ def _show_console(self):
+ bus = dbus.SessionBus()
+ proxy = bus.get_object('org.laptop.sugar.Console',
+ '/org/laptop/sugar/Console')
+ mgr = dbus.Interface(proxy, 'org.laptop.sugar.Console')
+ mgr.show()
+
def _shutdown(self):
bus = dbus.SystemBus()
proxy = bus.get_object('org.freedesktop.Hal',
diff --git a/sugar-emulator b/sugar-emulator
index b8c290c..98ec67f 100755
--- a/sugar-emulator
+++ b/sugar-emulator
@@ -63,6 +63,11 @@ if sourcedir:
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())
+
from sugar.emulator import Emulator
program = 'sugar-shell'