### Functions that can be used as callbacks for mouse/keyboard bindings ###
############################################################################
-#############################################################################
-### Options that can be modified to change the default hooks' behaviors. ###
-### ###
-#############################################################################
-
import ob
import otk
-def state_above(data, add=2):
- """Toggles, adds or removes the 'above' state on a window."""
+StateRemove = 0
+StateAdd = 1
+StateToggle = 2
+
+def state_above(data, add=StateAdd):
+ """Toggles, adds or removes the 'above' state on a window.
+ The second paramater should one of: StateRemove, StateAdd, or
+ StateToggle."""
if not data.client: return
ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(),
otk.Property_atoms().net_wm_state, data.client.window(),
add, otk.Property_atoms().net_wm_state_above)
-def state_below(data, add=2):
- """Toggles, adds or removes the 'below' state on a window."""
+def state_below(data, add=StateAdd):
+ """Toggles, adds or removes the 'below' state on a window.
+ The second paramater should one of: StateRemove, StateAdd, or
+ StateToggle."""
if not data.client: return
ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(),
otk.Property_atoms().net_wm_state, data.client.window(),
add, otk.Property_atoms().net_wm_state_below)
-def state_shaded(data, add=2):
- """Toggles, adds or removes the 'shaded' state on a window."""
+def state_shaded(data, add=StateAdd):
+ """Toggles, adds or removes the 'shaded' state on a window.
+ The second paramater should one of: StateRemove, StateAdd, or
+ StateToggle."""
if not data.client: return
ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(),
otk.Property_atoms().net_wm_state, data.client.window(),
add, otk.Property_atoms().net_wm_state_shaded)
+def state_maximize(data, add=StateAdd):
+ """Toggles, adds or removes the horizontal and vertical 'maximized' state
+ on a window. The second paramater should one of: StateRemove, StateAdd,
+ or StateToggle."""
+ if not data.client: return
+ ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(),
+ otk.Property_atoms().net_wm_state, data.client.window(),
+ add, otk.Property_atoms().net_wm_state_maximized_horz,
+ otk.Property_atoms().net_wm_state_maximized_vert)
+
+def state_maximize_horz(data, add=StateAdd):
+ """Toggles, adds or removes the horizontal 'maximized' state on a window.
+ The second paramater should one of: StateRemove, StateAdd, or
+ StateToggle."""
+ if not data.client: return
+ ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(),
+ otk.Property_atoms().net_wm_state, data.client.window(),
+ add, otk.Property_atoms().net_wm_state_maximized_horz)
+
+def state_maximize_vert(data, add=StateAdd):
+ """Toggles, adds or removes the vertical 'maximized' state on a window.
+ The second paramater should one of: StateRemove, StateAdd, or
+ StateToggle."""
+ if not data.client: return
+ ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(),
+ otk.Property_atoms().net_wm_state, data.client.window(),
+ add, otk.Property_atoms().net_wm_state_maximized_vert)
+
+def state_skip_taskbar(data, add=StateAdd):
+ """Toggles, adds or removes the 'skip_taskbar' state on a window.
+ The second paramater should one of: StateRemove, StateAdd, or
+ StateToggle."""
+ if not data.client: return
+ ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(),
+ otk.Property_atoms().net_wm_state, data.client.window(),
+ add, otk.Property_atoms().net_wm_state_skip_taskbar)
+
+def state_skip_pager(data, add=StateAdd):
+ """Toggles, adds or removes the 'skip_pager' state on a window.
+ The second paramater should one of: StateRemove, StateAdd, or
+ StateToggle."""
+ if not data.client: return
+ ob.send_client_msg(otk.display.screenInfo(data.screen).rootWindow(),
+ otk.Property_atoms().net_wm_state, data.client.window(),
+ add, otk.Property_atoms().net_wm_state_skip_pager)
+
def iconify(data):
"""Iconifies the window on which the event occured"""
if not data.client: return
return
data.client.focus()
-def restart(data, other = ""):
- """Restarts openbox, optionally starting another window manager."""
- ob.openbox.restart(other)
-
def raise_win(data):
"""Raises the window on which the event occured"""
if not data.client: return
if not data.client: return
ob.openbox.screen(data.screen).lowerWindow(data.client)
+def toggle_maximize(data):
+ """Toggles the maximized status of the window on which the event occured"""
+ state_maximize(data, StateToggle)
+
+def toggle_maximize_horz(data):
+ """Toggles the horizontal maximized status of the window on which the event
+ occured"""
+ state_maximize_horz(data, StateToggle)
+
+def toggle_maximize_vert(data):
+ """Toggles the vertical maximized status of the window on which the event
+ occured"""
+ state_maximize_vert(data, StateToggle)
+
+def maximize(data):
+ """Maximizes the window on which the event occured"""
+ state_maximize(data, StateAdd)
+
+def maximize_horz(data):
+ """Horizontally maximizes the window on which the event occured"""
+ state_maximize_horz(data, StateAdd)
+
+def maximize_vert(data):
+ """Vertically maximizes the window on which the event occured"""
+ state_maximize_vert(data, StateAdd)
+
+def unmaximize(data):
+ """Unmaximizes the window on which the event occured"""
+ state_maximize(data, StateRemove)
+
+def unmaximize_horz(data):
+ """Horizontally unmaximizes the window on which the event occured"""
+ state_maximize_horz(data, StateRemove)
+
+def unmaximize_vert(data):
+ """Vertically unmaximizes the window on which the event occured"""
+ state_maximize_vert(data, StateRemove)
+
def toggle_shade(data):
"""Toggles the shade status of the window on which the event occured"""
- state_shaded(data)
+ state_shaded(data, StateToggle)
def shade(data):
"""Shades the window on which the event occured"""
- state_shaded(data, 1)
+ state_shaded(data, StateAdd)
def unshade(data):
"""Unshades the window on which the event occured"""
- state_shaded(data, 0)
+ state_shaded(data, StateRemove)
def change_desktop(data, num):
"""Switches to a specified desktop"""
if not data.client.desktop() == 0xffffffff:
send_to_desktop(data, 0xffffffff)
else:
- send_to_desktop(data, openbox.screen(data.screen).desktop())
+ send_to_desktop(data, ob.openbox.screen(data.screen).desktop())
def send_to_all_desktops(data):
"""Sends a client to all desktops"""
if follow:
change_desktop(data, d)
+def restart(data=0, other = ""):
+ """Restarts Openbox, optionally starting another window manager."""
+ ob.openbox.restart(other)
+
+def exit(data=0):
+ """Exits Openbox."""
+ ob.openbox.shutdown()
+
print "Loaded callbacks.py"