summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/Makefile.am2
-rw-r--r--scripts/globals.py9
-rw-r--r--src/openbox.cc29
3 files changed, 26 insertions, 14 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index ecf86a22..5b55ecae 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -1,6 +1,6 @@
scriptdir = $(libdir)/openbox/python
MAINTAINERCLEANFILES = Makefile.in
-script_DATA = clientmotion.py clicks.py
+script_DATA = clientmotion.py clicks.py globals.py
EXTRA_DIST = $(script_DATA)
distclean-local:
diff --git a/scripts/globals.py b/scripts/globals.py
new file mode 100644
index 00000000..98f71c34
--- /dev/null
+++ b/scripts/globals.py
@@ -0,0 +1,9 @@
+# openbox - pointer to the current Openbox instance
+openbox = Openbox_instance()
+
+# screen - list of all screens in the current openbox instance
+screen = []
+for i in range(Openbox_screenCount(openbox)):
+ screen.append(Openbox_screen(openbox, i))
+
+print "Loaded globals.py"
diff --git a/src/openbox.cc b/src/openbox.cc
index 687c69de..474ba029 100644
--- a/src/openbox.cc
+++ b/src/openbox.cc
@@ -159,24 +159,11 @@ Openbox::Openbox(int argc, char **argv)
_cursors.ul_angle = XCreateFontCursor(otk::OBDisplay::display, XC_ul_angle);
_cursors.ur_angle = XCreateFontCursor(otk::OBDisplay::display, XC_ur_angle);
- // start up python and run the user's startup script
- Py_SetProgramName(argv[0]);
- Py_Initialize();
- init_otk();
- init_openbox();
- PyRun_SimpleString("from _otk import *; from _openbox import *;");
- PyRun_SimpleString("openbox = Openbox_instance()");
-
- runPython(SCRIPTDIR"/clientmotion.py"); // moving and resizing clients
- runPython(SCRIPTDIR"/clicks.py"); // titlebar/root clicks and dblclicks
- runPython(_scriptfilepath.c_str());
-
// initialize all the screens
OBScreen *screen;
screen = new OBScreen(0, _config);
if (screen->managed()) {
_screens.push_back(screen);
- _screens[0]->manageExisting();
// XXX: "change to" the first workspace on the screen to initialize stuff
} else
delete screen;
@@ -186,6 +173,22 @@ Openbox::Openbox(int argc, char **argv)
::exit(1);
}
+ // start up python and run the user's startup script
+ Py_SetProgramName(argv[0]);
+ Py_Initialize();
+ init_otk();
+ init_openbox();
+ PyRun_SimpleString("from _otk import *; from _openbox import *;");
+
+ runPython(SCRIPTDIR"/globals.py"); // create/set global vars
+ runPython(SCRIPTDIR"/clientmotion.py"); // moving and resizing clients
+ runPython(SCRIPTDIR"/clicks.py"); // titlebar/root clicks and dblclicks
+ runPython(_scriptfilepath.c_str());
+
+ ScreenList::iterator it, end = _screens.end();
+ for (it = _screens.begin(); it != end; ++it)
+ (*it)->manageExisting();
+
// grab any keys set up before the screens existed
_bindings->grabKeys(true);