X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=scripts%2Fcallbacks.py;h=07dca05efb1aacca07754d5f8eb6e8b8325cbeed;hb=d73d4247e7b98df679ca81b349da26dd1e2fabc1;hp=4d5092680d3cc2baa98395f7ecc5d483c014c6fc;hpb=225d4302d0b2bd40d03d3bfa54116c0adfe3143e;p=chaz%2Fopenbox diff --git a/scripts/callbacks.py b/scripts/callbacks.py index 4d509268..07dca05e 100644 --- a/scripts/callbacks.py +++ b/scripts/callbacks.py @@ -2,35 +2,86 @@ ### 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 @@ -76,17 +127,55 @@ def lower_win(data): 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""" @@ -132,7 +221,7 @@ def toggle_all_desktops(data): 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"""