client = Openbox_findClient(openbox, data.window())
if not client: return
type = OBClient_type(client)
- # these types of windows dont get focus from window enter events
- if data.action() == EventEnterWindow:
- print "enter window"
- if (type == OBClient_Type_Dock or \
- type == OBClient_Type_Desktop):
- return
+ # !normal windows dont get focus from window enter events
+ if data.action() == EventEnterWindow and not OBClient_normal(client):
+ return
OBClient_focus(client)
def move(data):
client = Openbox_findClient(openbox, data.window())
if not client: return
+ # !normal windows dont get moved
+ if not OBClient_normal(client): return
+
dx = data.xroot() - data.pressx()
dy = data.yroot() - data.pressy()
OBClient_move(client, data.press_clientx() + dx, data.press_clienty() + dy)
client = Openbox_findClient(openbox, data.window())
if not client: return
+ # !normal windows dont get moved
+ if not OBClient_normal(client): return
+
px = data.pressx()
py = data.pressy()
dx = data.xroot() - px
data.press_clientheight() + dy);
def restart(data):
+ """Restarts openbox"""
Openbox_restart(openbox, "")
-def toggle_shade(data):
- print "toggle_shade"
-
def raise_win(data):
+ """Raises the window on which the event occured"""
client = Openbox_findClient(openbox, data.window())
if not client: return
screen = Openbox_screen(openbox, OBClient_screen(client))
OBScreen_restack(screen, 1, client)
def lower_win(data):
+ """Lowers the window on which the event occured"""
client = Openbox_findClient(openbox, data.window())
if not client: return
screen = Openbox_screen(openbox, OBClient_screen(client))
OBScreen_restack(screen, 0, client)
def toggle_shade(data):
+ """Toggles the shade status of the window on which the event occured"""
client = Openbox_findClient(openbox, data.window())
if not client: return
print "toggle_shade"
OBClient_shade(client, not OBClient_shaded(client))
def shade(data):
+ """Shades the window on which the event occured"""
client = Openbox_findClient(openbox, data.window())
if not client: return
OBClient_shade(client, 1)
def unshade(data):
+ """Unshades the window on which the event occured"""
client = Openbox_findClient(openbox, data.window())
if not client: return
OBClient_shade(client, 0)
+
+def next_desktop(data):
+ screen = Openbox_screen(openbox, data.screen())
+ d = OBScreen_desktop(screen)
+ n = OBScreen_numDesktops(screen)
+ if (d == (n-1)):
+ d = 0
+ else:
+ d = d + 1
+ OBScreen_changeDesktop(screen, d)
+
+def prev_desktop(data):
+ screen = Openbox_screen(openbox, data.screen())
+ d = OBScreen_desktop(screen)
+ n = OBScreen_numDesktops(screen)
+ if (d > 0):
+ d = d - 1
+ else:
+ d = n - 1
+ OBScreen_changeDesktop(screen, d)
#########################################
### Convenience functions for scripts ###
#########################################
def execute(bin, screen = 0):
+ """Executes a command on the specified screen. It is recommended that you
+ use this call instead of a python system call. If the specified screen
+ is beyond your range of screens, the default is used instead."""
Openbox_execute(openbox, screen, bin)
print "Loaded builtins.py"