def state_above(data, add=2):
"""Toggles, adds or removes the 'above' state on a window."""
if not data.client: return
- send_client_msg(OBDisplay_screenInfo(data.screen).rootWindow(),
- OBProperty.net_wm_state, data.client.window(), add,
- openbox.property().atom(OBProperty.net_wm_state_above))
+ send_client_msg(display.screenInfo(data.screen).rootWindow(),
+ Property_atoms().net_wm_state, data.client.window(), add,
+ Property_atoms().net_wm_state_above)
def state_below(data, add=2):
"""Toggles, adds or removes the 'below' state on a window."""
if not data.client: return
- send_client_msg(OBDisplay_screenInfo(data.screen).rootWindow(),
- OBProperty.net_wm_state, data.client.window(), add,
- openbox.property().atom(OBProperty.net_wm_state_below))
+ send_client_msg(display.screenInfo(data.screen).rootWindow(),
+ Property_atoms().net_wm_state, data.client.window(), add,
+ Property_atoms().net_wm_state_below)
def state_shaded(data, add=2):
"""Toggles, adds or removes the 'shaded' state on a window."""
if not data.client: return
- send_client_msg(OBDisplay_screenInfo(data.screen).rootWindow(),
- OBProperty.net_wm_state, data.client.window(), add,
- openbox.property().atom(OBProperty.net_wm_state_shaded))
+ send_client_msg(display.screenInfo(data.screen).rootWindow(),
+ Property_atoms().net_wm_state, data.client.window(), add,
+ Property_atoms().net_wm_state_shaded)
def close(data):
"""Closes the window on which the event occured"""
if not data.client: return
- send_client_msg(OBDisplay_screenInfo(data.screen).rootWindow(),
- OBProperty.net_close_window, data.client.window(), 0)
+ send_client_msg(display.screenInfo(data.screen).rootWindow(),
+ Property_atoms().net_close_window, data.client.window(), 0)
def focus(data):
"""Focuses the window on which the event occured"""
# pick a corner to anchor
if not (resize_nearest or data.context == MC_Grip):
- corner = OBClient.TopLeft
+ corner = Client.TopLeft
else:
x = px - data.press_clientx
y = py - data.press_clienty
if y < data.press_clientheight / 2:
if x < data.press_clientwidth / 2:
- corner = OBClient.BottomRight
+ corner = Client.BottomRight
dx *= -1
else:
- corner = OBClient.BottomLeft
+ corner = Client.BottomLeft
dy *= -1
else:
if x < data.press_clientwidth / 2:
- corner = OBClient.TopRight
+ corner = Client.TopRight
dx *= -1
else:
- corner = OBClient.TopLeft
+ corner = Client.TopLeft
data.client.resize(corner,
data.press_clientwidth + dx,
data.press_clientheight + dy);
-def restart(data):
- """Restarts openbox"""
- openbox.restart("")
+def restart(data, other = ""):
+ """Restarts openbox, optionally starting another window manager."""
+ openbox.restart(other)
def raise_win(data):
"""Raises the window on which the event occured"""
if not data.client: return
- openbox.screen(data.screen).restack(1, data.client)
+ openbox.screen(data.screen).raiseWindow(data.client)
def lower_win(data):
"""Lowers the window on which the event occured"""
if not data.client: return
- openbox.screen(data.screen).restack(0, data.client)
+ openbox.screen(data.screen).lowerWindow(data.client)
def toggle_shade(data):
"""Toggles the shade status of the window on which the event occured"""
def change_desktop(data, num):
"""Switches to a specified desktop"""
- root = OBDisplay_screenInfo(data.screen).rootWindow()
- send_client_msg(root, OBProperty.net_current_desktop, root, num)
+ root = display.screenInfo(data.screen).rootWindow()
+ send_client_msg(root, Property_atoms().net_current_desktop, root, num)
def next_desktop(data, no_wrap=0):
"""Switches to the next desktop, optionally (by default) cycling around to
d = n - 1
change_desktop(data, d)
+def send_to_all_desktops(data):
+ """Sends a client to all desktops"""
+ if not data.client: return
+ send_client_msg(display.screenInfo(data.screen).rootWindow(),
+ Property_atoms().net_wm_desktop, data.client.window(),
+ 0xffffffff)
+
def send_to_desktop(data, num):
"""Sends a client to a specified desktop"""
if not data.client: return
- send_client_msg(OBDisplay_screenInfo(data.screen).rootWindow(),
- OBProperty.net_wm_desktop, data.client.window(), num)
+ send_client_msg(display.screenInfo(data.screen).rootWindow(),
+ Property_atoms().net_wm_desktop, data.client.window(), num)
def send_to_next_desktop(data, no_wrap=0, follow=1):
"""Sends a window to the next desktop, optionally (by default) cycling
"""Sets up for focusing windows by clicking on or in the window.
Optionally, clicking on or in a window can raise the window to the
front of its stacking layer."""
- mbind("1", MC_Titlebar, MousePress, focus)
- mbind("1", MC_Handle, MousePress, focus)
- mbind("1", MC_Grip, MousePress, focus)
- mbind("1", MC_Window, MousePress, focus)
+ mbind("Left", MC_Titlebar, MousePress, focus)
+ mbind("Left", MC_Handle, MousePress, focus)
+ mbind("Left", MC_Grip, MousePress, focus)
+ mbind("Left", MC_Window, MousePress, focus)
if click_raise:
- mbind("1", MC_Titlebar, MousePress, raise_win)
- mbind("1", MC_Handle, MousePress, raise_win)
- mbind("1", MC_Grip, MousePress, raise_win)
- mbind("1", MC_Window, MousePress, raise_win)
+ mbind("Left", MC_Titlebar, MousePress, raise_win)
+ mbind("Left", MC_Handle, MousePress, raise_win)
+ mbind("Left", MC_Grip, MousePress, raise_win)
+ mbind("Left", MC_Window, MousePress, raise_win)
def setup_sloppy_focus(click_focus = 1, click_raise = 0):
"""Sets up for focusing windows when the mouse pointer enters them.
bottom of its stacking layer.
* Double-left click on a window's titlebar will toggle shading it
"""
- mbind("A-1", MC_Frame, MouseMotion, move)
- mbind("1", MC_Titlebar, MouseMotion, move)
- mbind("1", MC_Handle, MouseMotion, move)
+ mbind("A-Left", MC_Frame, MouseMotion, move)
+ mbind("Left", MC_Titlebar, MouseMotion, move)
+ mbind("Left", MC_Handle, MouseMotion, move)
- mbind("A-3", MC_Frame, MouseMotion, resize)
- mbind("1", MC_Grip, MouseMotion, resize)
+ mbind("A-Right", MC_Frame, MouseMotion, resize)
+ mbind("Left", MC_Grip, MouseMotion, resize)
- mbind("1", MC_Titlebar, MousePress, raise_win)
- mbind("1", MC_Handle, MousePress, raise_win)
- mbind("A-1", MC_Frame, MousePress, raise_win)
- mbind("A-2", MC_Frame, MouseClick, lower_win)
- mbind("2", MC_Titlebar, MouseClick, lower_win)
- mbind("2", MC_Handle, MouseClick, lower_win)
+ mbind("Left", MC_Titlebar, MousePress, raise_win)
+ mbind("Left", MC_Handle, MousePress, raise_win)
+ mbind("A-Left", MC_Frame, MousePress, raise_win)
+ mbind("A-Middle", MC_Frame, MouseClick, lower_win)
+ mbind("Middle", MC_Titlebar, MouseClick, lower_win)
+ mbind("Middle", MC_Handle, MouseClick, lower_win)
- mbind("1", MC_Titlebar, MouseDoubleClick, toggle_shade)
+ mbind("Left", MC_Titlebar, MouseDoubleClick, toggle_shade)
def setup_window_buttons():
"""Sets up the default behaviors for the buttons in the window titlebar."""
- mbind("1", MC_CloseButton, MouseClick, close)
+ mbind("Left", MC_CloseButton, MouseClick, close)
def setup_scroll():
"""Sets up the default behaviors for the mouse scroll wheel.
* control-alt-scrolling on a window will send it to the next/previous
desktop, and switch to the desktop with the window
"""
- mbind("4", MC_Titlebar, MouseClick, shade)
- mbind("5", MC_Titlebar, MouseClick, unshade)
+ mbind("Up", MC_Titlebar, MouseClick, shade)
+ mbind("Down", MC_Titlebar, MouseClick, unshade)
- mbind("A-4", MC_Frame, MouseClick, next_desktop)
- mbind("A-4", MC_Root, MouseClick, next_desktop)
- mbind("A-5", MC_Frame, MouseClick, prev_desktop)
- mbind("A-5", MC_Root, MouseClick, prev_desktop)
+ mbind("A-Up", MC_Frame, MouseClick, next_desktop)
+ mbind("A-Up", MC_Root, MouseClick, next_desktop)
+ mbind("A-Down", MC_Frame, MouseClick, prev_desktop)
+ mbind("A-Down", MC_Root, MouseClick, prev_desktop)
- mbind("C-A-4", MC_Frame, MouseClick, send_to_next_desktop)
- mbind("C-A-5", MC_Frame, MouseClick, send_to_prev_desktop)
+ mbind("C-A-Up", MC_Frame, MouseClick, send_to_next_desktop)
+ mbind("C-A-Down", MC_Frame, MouseClick, send_to_prev_desktop)
def setup_fallback_focus():
"""Sets up a focus fallback routine so that when no windows are focused,
- the last window on the desktop that had focus will be focused."""
+ the last window to have focus on the desktop will be focused."""
focus_stack = []
def focused(data):
#global focus_stack
def placewindows_random(data):
if not data.client: return
client_area = data.client.area()
- screen = OBDisplay_screenInfo(data.screen)
+ screen = display.screenInfo(data.screen)
+ # XXX - USE THE FRAME'S SIZE!!
width = screen.width() - client_area.width()
height = screen.height() - client_area.height()
global ob_rand