Window API

class autokey.scripting.Window(mediator)[source]

Basic window management using wmctrl

Note: in all cases where a window title is required (with the exception of wait_for_focus()), two special values of window title are permitted:

ACTIVE:
  • select the currently active window

SELECT:
  • select the desired window by clicking on it

activate(title, switchDesktop=False, matchClass=False)[source]

Activate the specified window, giving it input focus

Usage: window.activate(title, switchDesktop=False, matchClass=False)

If switchDesktop is False (default), the window will be moved to the current desktop and activated. Otherwise, switch to the window’s current desktop and activate it there.

Parameters:
  • title – window title to match against (as case-insensitive substring match)

  • switchDesktop – whether or not to switch to the window’s current desktop

  • matchClass – if True, match on the window class instead of the title

close(title, matchClass=False)[source]

Close the specified window gracefully

Usage: window.close(title, matchClass=False)

Parameters:
  • title – window title to match against (as case-insensitive substring match)

  • matchClass – if True, match on the window class instead of the title

get_active_class()[source]

Get the class of the currently active window

Usage: window.get_active_class()

Returns:

the class of the currentle active window

Return type:

str

get_active_geometry()[source]

Get the geometry of the currently active window

Usage: window.get_active_geometry()

Returns:

a 4-tuple containing the x-origin, y-origin, width and height of the window (in pixels)

Return type:

tuple(int, int, int, int)

get_active_title()[source]

Get the visible title of the currently active window

Usage: window.get_active_title()

Returns:

the visible title of the currentle active window

Return type:

str

move_to_desktop(title, deskNum, matchClass=False)[source]

Move the specified window to the given desktop

Usage: window.move_to_desktop(title, deskNum, matchClass=False)

Parameters:
  • title – window title to match against (as case-insensitive substring match)

  • deskNum – desktop to move the window to (note: zero based)

  • matchClass – if True, match on the window class instead of the title

resize_move(title, xOrigin=-1, yOrigin=-1, width=-1, height=-1, matchClass=False)[source]

Resize and/or move the specified window

Usage: window.close(title, xOrigin=-1, yOrigin=-1, width=-1, height=-1, matchClass=False)

Leaving and of the position/dimension values as the default (-1) will cause that value to be left unmodified.

Parameters:
  • title – window title to match against (as case-insensitive substring match)

  • xOrigin – new x origin of the window (upper left corner)

  • yOrigin – new y origin of the window (upper left corner)

  • width – new width of the window

  • height – new height of the window

  • matchClass – if True, match on the window class instead of the title

set_property(title, action, prop, matchClass=False)[source]

Set a property on the given window using the specified action

Usage: window.set_property(title, action, prop, matchClass=False)

Allowable actions: add, remove, toggle Allowable properties: C{modal, sticky, maximized_vert, maximized_horz, shaded, skip_taskbar, skip_pager, hidden, fullscreen, above}

Parameters:
  • title – window title to match against (as case-insensitive substring match)

  • action – one of the actions listed above

  • prop – one of the properties listed above

  • matchClass – if True, match on the window class instead of the title

switch_desktop(deskNum)[source]

Switch to the specified desktop

Usage: window.switch_desktop(deskNum)

Parameters:

deskNum – desktop to switch to (note: zero based)

wait_for_exist(title, timeOut=5)[source]

Wait for window with the given title to be created

Usage: window.wait_for_exist(title, timeOut=5)

If the window is in existence, returns True. Otherwise, returns False if the window has not been created by the time the timeout has elapsed.

Parameters:
  • title – title to match against (as a regular expression)

  • timeOut – period (seconds) to wait before giving up

Return type:

boolean

wait_for_focus(title, timeOut=5)[source]

Wait for window with the given title to have focus

Usage: window.wait_for_focus(title, timeOut=5)

If the window becomes active, returns True. Otherwise, returns False if the window has not become active by the time the timeout has elapsed.

Parameters:
  • title – title to match against (as a regular expression)

  • timeOut – period (seconds) to wait before giving up

Return type:

boolean