Go to the source code of this file.
Data Structures | |
| struct | keysym_charmap |
| struct | charcodemap |
| struct | xdo |
| The main context. More... | |
| struct | xdo_active_mods |
| Represents the list of active modifier keys at the time of an xdo_get_active_modifiers call. More... | |
| struct | xdo_search |
| The window search query structure. More... | |
Typedefs | |
| typedef struct keysym_charmap | keysym_charmap_t |
| typedef struct charcodemap | charcodemap_t |
| typedef struct xdo | xdo_t |
| The main context. | |
| typedef struct xdo_active_mods | xdo_active_mods_t |
| Represents the list of active modifier keys at the time of an xdo_get_active_modifiers call. | |
| typedef struct xdo_search | xdo_search_t |
| The window search query structure. | |
Functions | |
| xdo_t * | xdo_new (char *display) |
| Create a new xdo_t instance. | |
| xdo_t * | xdo_new_with_opened_display (Display *xdpy, const char *display, int close_display_when_freed) |
| Create a new xdo_t instance with an existing X11 Display instance. | |
| const char * | xdo_version (void) |
| Return a string representing the version of this library. | |
| void | xdo_free (xdo_t *xdo) |
| Free and destroy an xdo_t instance. | |
| int | xdo_mousemove (const xdo_t *xdo, int x, int y, int screen) |
| Move the mouse to a specific location. | |
| int | xdo_mousemove_relative_to_window (const xdo_t *xdo, Window window, int x, int y) |
| Move the mouse to a specific location relative to the top-left corner of a window. | |
| int | xdo_mousemove_relative (const xdo_t *xdo, int x, int y) |
| Move the mouse relative to it's current position. | |
| int | xdo_mousedown (const xdo_t *xdo, Window window, int button) |
| Send a mouse press (aka mouse down) for a given button at the current mouse location. | |
| int | xdo_mouseup (const xdo_t *xdo, Window window, int button) |
| Send a mouse release (aka mouse up) for a given button at the current mouse location. | |
| int | xdo_mouselocation (const xdo_t *xdo, int *x, int *y, int *screen_num) |
| Get the current mouse location. | |
| int | xdo_mouse_wait_for_move_from (const xdo_t *xdo, int origin_x, int origin_y) |
| Wait for the mouse to move from a location. | |
| int | xdo_mouse_wait_for_move_to (const xdo_t *xdo, int dest_x, int dest_y) |
| Wait for the mouse to move to a location. | |
| int | xdo_click (const xdo_t *xdo, Window window, int button) |
| Send a click for a specific mouse button at the current mouse location. | |
| int | xdo_type (const xdo_t *xdo, Window window, char *string, useconds_t delay) |
| Type a string to the specified window. | |
| int | xdo_keysequence (const xdo_t *xdo, Window window, const char *keysequence, useconds_t delay) |
| Send a keysequence to the specified window. | |
| int | xdo_keysequence_up (const xdo_t *xdo, Window window, const char *keysequence, useconds_t delay) |
| Send key release (up) events for the given key sequence. | |
| int | xdo_keysequence_down (const xdo_t *xdo, Window window, const char *keysequence, useconds_t delay) |
| Send key press (down) events for the given key sequence. | |
| int | xdo_keysequence_list_do (const xdo_t *xdo, Window window, charcodemap_t *keys, int nkeys, int pressed, int *modifier, useconds_t delay) |
| Send a series of keystrokes. | |
| int | xdo_active_keys_to_keycode_list (const xdo_t *xdo, charcodemap_t **keys, int *nkeys) |
| Get a list of active keys. | |
| int | xdo_window_wait_for_map_state (const xdo_t *xdo, Window wid, int map_state) |
| Wait for a window to have a specific map state. | |
| int | xdo_window_wait_for_size (const xdo_t *xdo, Window window, unsigned int width, unsigned int height, int flags, int to_or_from) |
| int | xdo_window_move (const xdo_t *xdo, Window wid, int x, int y) |
| Move a window to a specific location. | |
| int | xdo_window_translate_with_sizehint (const xdo_t *xdo, Window window, int width, int height, int *width_ret, int *height_ret) |
| Apply a window's sizing hints (if any) to a given width and height. | |
| int | xdo_window_setsize (const xdo_t *xdo, Window wid, int w, int h, int flags) |
| Change the window size. | |
| int | xdo_window_setprop (const xdo_t *xdo, Window wid, const char *property, const char *value) |
| Change a window property. | |
| int | xdo_window_setclass (const xdo_t *xdo, Window wid, const char *name, const char *class) |
| Change the window's classname and or class. | |
| int | xdo_window_focus (const xdo_t *xdo, Window wid) |
| Focus a window. | |
| int | xdo_window_raise (const xdo_t *xdo, Window wid) |
| Raise a window to the top of the window stack. | |
| int | xdo_window_get_focus (const xdo_t *xdo, Window *window_ret) |
| Get the window currently having focus. | |
| int | xdo_window_wait_for_focus (const xdo_t *xdo, Window window, int want_focus) |
| Wait for a window to have or lose focus. | |
| int | xdo_window_get_pid (const xdo_t *xdo, Window window) |
| Get the PID owning a window. | |
| int | xdo_window_sane_get_focus (const xdo_t *xdo, Window *window_ret) |
| Like xdo_window_get_focus, but return the first ancestor-or-self window * having a property of WM_CLASS. | |
| int | xdo_window_activate (const xdo_t *xdo, Window wid) |
| Activate a window. | |
| int | xdo_window_wait_for_active (const xdo_t *xdo, Window window, int active) |
| Wait for a window to be active or not active. | |
| int | xdo_window_map (const xdo_t *xdo, Window wid) |
| Map a window. | |
| int | xdo_window_unmap (const xdo_t *xdo, Window wid) |
| Unmap a window. | |
| int | xdo_get_window_location (const xdo_t *xdo, Window wid, int *x_ret, int *y_ret, Screen **screen_ret) |
| Get a window's location. | |
| int | xdo_get_window_size (const xdo_t *xdo, Window wid, unsigned int *width_ret, unsigned int *height_ret) |
| Get a window's size. | |
| int | xdo_window_get_active (const xdo_t *xdo, Window *window_ret) |
| Get the currently-active window. | |
| int | xdo_set_number_of_desktops (const xdo_t *xdo, long ndesktops) |
| Set the number of desktops. | |
| int | xdo_get_number_of_desktops (const xdo_t *xdo, long *ndesktops) |
| Get the current number of desktops. | |
| int | xdo_set_current_desktop (const xdo_t *xdo, long desktop) |
| Switch to another desktop. | |
| int | xdo_get_current_desktop (const xdo_t *xdo, long *desktop) |
| Get the current desktop. | |
| int | xdo_set_desktop_for_window (const xdo_t *xdo, Window wid, long desktop) |
| Move a window to another desktop Uses _NET_WM_DESKTOP of the EWMH spec. | |
| int | xdo_get_desktop_for_window (const xdo_t *xdo, Window wid, long *desktop) |
| Get the desktop a window is on. | |
| int | xdo_window_search (const xdo_t *xdo, const xdo_search_t *search, Window **windowlist_ret, int *nwindows_ret) |
| Search for windows. | |
| unsigned char * | xdo_getwinprop (const xdo_t *xdo, Window window, Atom atom, long *nitems, Atom *type, int *size) |
| Generic property fetch. | |
| unsigned int | xdo_get_input_state (const xdo_t *xdo) |
| Get the current input state. | |
| const keysym_charmap_t * | xdo_keysym_charmap (void) |
| If you need the keysym-to-character map, you can fetch it using this method. | |
| const char ** | xdo_symbol_map (void) |
| If you need the symbol map, use this method. | |
| xdo_active_mods_t * | xdo_get_active_modifiers (const xdo_t *xdo) |
| Get the currently-active modifiers. | |
| int | xdo_clear_active_modifiers (const xdo_t *xdo, Window window, xdo_active_mods_t *active_mods) |
| Send any events necesary to clear the the active modifiers. | |
| int | xdo_set_active_modifiers (const xdo_t *xdo, Window window, const xdo_active_mods_t *active_mods) |
| Send any events necessary to make these modifiers active. | |
| void | xdo_free_active_modifiers (xdo_active_mods_t *active_mods) |
| Free the data allocated by xdo_get_active_modifiers. | |
| typedef struct xdo_active_mods xdo_active_mods_t |
Represents the list of active modifier keys at the time of an xdo_get_active_modifiers call.
| typedef struct xdo_search xdo_search_t |
The window search query structure.
| int xdo_active_keys_to_keycode_list | ( | const xdo_t * | xdo, |
| charcodemap_t ** | keys, | ||
| int * | nkeys | ||
| ) |
Get a list of active keys.
Uses XQueryKeymap.
| keys | Pointer to the array of charcodemap_t that will be allocated by this function. |
| nkeys | Pointer to integer where the number of keys will be stored. |
| int xdo_clear_active_modifiers | ( | const xdo_t * | xdo, |
| Window | window, | ||
| xdo_active_mods_t * | active_mods | ||
| ) |
Send any events necesary to clear the the active modifiers.
For example, if you are holding 'alt' when xdo_get_active_modifiers is called, then this method will send a key-up for 'alt'
| int xdo_click | ( | const xdo_t * | xdo, |
| Window | window, | ||
| int | button | ||
| ) |
Send a click for a specific mouse button at the current mouse location.
| window | The window you want to send the event to or CURRENTWINDOW |
| button | The mouse button. Generally, 1 is left, 2 is middle, 3 is right, 4 is wheel up, 5 is wheel down. |
| void xdo_free | ( | xdo_t * | xdo | ) |
Free and destroy an xdo_t instance.
If close_display_when_freed is set, then we will also close the Display.
| int xdo_get_current_desktop | ( | const xdo_t * | xdo, |
| long * | desktop | ||
| ) |
Get the current desktop.
Uses _NET_CURRENT_DESKTOP of the EWMH spec.
| desktop | pointer to long where the current desktop number is stored. |
| int xdo_get_desktop_for_window | ( | const xdo_t * | xdo, |
| Window | wid, | ||
| long * | desktop | ||
| ) |
Get the desktop a window is on.
Uses _NET_WM_DESKTOP of the EWMH spec.
| wid | the window to query |
| deskto | pointer to long where the desktop of the window is stored |
| unsigned int xdo_get_input_state | ( | const xdo_t * | xdo | ) |
Get the current input state.
This is a mask value containing any of the following: ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, or Mod5Mask.
| int xdo_get_number_of_desktops | ( | const xdo_t * | xdo, |
| long * | ndesktops | ||
| ) |
Get the current number of desktops.
Uses _NET_NUMBER_OF_DESKTOPS of the EWMH spec.
| ndesktops | pointer to long where the current number of desktops is stored |
| int xdo_get_window_location | ( | const xdo_t * | xdo, |
| Window | wid, | ||
| int * | x_ret, | ||
| int * | y_ret, | ||
| Screen ** | screen_ret | ||
| ) |
Get a window's location.
| wid | the window to query |
| x_ret | pointer to int where the X location is stored. If NULL, X is ignored. |
| y_ret | pointer to int where the Y location is stored. If NULL, X is ignored. |
| screen_ret | Pointer to Screen* where the Screen* the window on is stored. If NULL, this parameter is ignored. |
| int xdo_get_window_size | ( | const xdo_t * | xdo, |
| Window | wid, | ||
| unsigned int * | width_ret, | ||
| unsigned int * | height_ret | ||
| ) |
Get a window's size.
| wid | the window to query |
| width_ret | pointer to unsigned int where the width is stored. |
| height_ret | pointer to unsigned int where the height is stored. |
| unsigned char* xdo_getwinprop | ( | const xdo_t * | xdo, |
| Window | window, | ||
| Atom | atom, | ||
| long * | nitems, | ||
| Atom * | type, | ||
| int * | size | ||
| ) |
Generic property fetch.
| window | the window to query |
| atom | the Atom to request |
| nitems | the number of items |
| type | the type of the return |
| size | the size of the type |
| int xdo_keysequence | ( | const xdo_t * | xdo, |
| Window | window, | ||
| const char * | keysequence, | ||
| useconds_t | delay | ||
| ) |
Send a keysequence to the specified window.
This allows you to send keysequences by symbol name. Any combination of X11 KeySym names separated by '+' are valid. Single KeySym names are valid, too.
Examples: "l" "semicolon" "alt+Return" "Alt_L+Tab"
If you want to type a string, such as "Hello world." you want to instead use xdo_type.
| window | The window you want to send the keysequence to or CURRENTWINDOW |
| keysequence | The string keysequence to send. |
| delay | The delay between keystrokes in microseconds. |
| int xdo_keysequence_down | ( | const xdo_t * | xdo, |
| Window | window, | ||
| const char * | keysequence, | ||
| useconds_t | delay | ||
| ) |
Send key press (down) events for the given key sequence.
| int xdo_keysequence_list_do | ( | const xdo_t * | xdo, |
| Window | window, | ||
| charcodemap_t * | keys, | ||
| int | nkeys, | ||
| int | pressed, | ||
| int * | modifier, | ||
| useconds_t | delay | ||
| ) |
Send a series of keystrokes.
| window | The window to send events to or CURRENTWINDOW |
| keys | The array of charcodemap_t entities to send. |
| nkeys | The length of the keys parameter |
| pressed | 1 for key press, 0 for key release. |
| modifier | Pointer to integer to record the modifiers activated by the keys being pressed. If NULL, we don't save the modifiers. |
| delay | The delay between keystrokes in microseconds. |
| int xdo_keysequence_up | ( | const xdo_t * | xdo, |
| Window | window, | ||
| const char * | keysequence, | ||
| useconds_t | delay | ||
| ) |
Send key release (up) events for the given key sequence.
| const keysym_charmap_t* xdo_keysym_charmap | ( | void | ) |
If you need the keysym-to-character map, you can fetch it using this method.
| int xdo_mouse_wait_for_move_from | ( | const xdo_t * | xdo, |
| int | origin_x, | ||
| int | origin_y | ||
| ) |
Wait for the mouse to move from a location.
This function will block until the condition has been satisified.
| origin_x | the X position you expect the mouse to move from |
| origin_y | the Y position you expect the mouse to move from |
| int xdo_mouse_wait_for_move_to | ( | const xdo_t * | xdo, |
| int | dest_x, | ||
| int | dest_y | ||
| ) |
Wait for the mouse to move to a location.
This function will block until the condition has been satisfied.
| dest_x | the X position you expect the mouse to move to |
| dest_y | the Y position you expect the mouse to move to |
| int xdo_mousedown | ( | const xdo_t * | xdo, |
| Window | window, | ||
| int | button | ||
| ) |
Send a mouse press (aka mouse down) for a given button at the current mouse location.
| window | The window you want to send the event to or CURRENTWINDOW |
| button | The mouse button. Generally, 1 is left, 2 is middle, 3 is right, 4 is wheel up, 5 is wheel down. |
| int xdo_mouselocation | ( | const xdo_t * | xdo, |
| int * | x, | ||
| int * | y, | ||
| int * | screen_num | ||
| ) |
Get the current mouse location.
| x | integer pointer where the X coordinate will be stored |
| y | integer pointer where the Y coordinate will be stored |
| screen_num | integer pointer where the screen number will be stored |
| int xdo_mousemove | ( | const xdo_t * | xdo, |
| int | x, | ||
| int | y, | ||
| int | screen | ||
| ) |
Move the mouse to a specific location.
| x | the target X coordinate on the screen in pixels. |
| y | the target Y coordinate on the screen in pixels. |
| screen | the screen (number) you want to move on. |
| int xdo_mousemove_relative | ( | const xdo_t * | xdo, |
| int | x, | ||
| int | y | ||
| ) |
Move the mouse relative to it's current position.
| x | the distance in pixels to move on the X axis. |
| y | the distance in pixels to move on the Y axis. |
| int xdo_mousemove_relative_to_window | ( | const xdo_t * | xdo, |
| Window | window, | ||
| int | x, | ||
| int | y | ||
| ) |
Move the mouse to a specific location relative to the top-left corner of a window.
| x | the target X coordinate on the screen in pixels. |
| y | the target Y coordinate on the screen in pixels. |
| int xdo_mouseup | ( | const xdo_t * | xdo, |
| Window | window, | ||
| int | button | ||
| ) |
Send a mouse release (aka mouse up) for a given button at the current mouse location.
| window | The window you want to send the event to or CURRENTWINDOW |
| button | The mouse button. Generally, 1 is left, 2 is middle, 3 is right, 4 is wheel up, 5 is wheel down. |
| xdo_t* xdo_new | ( | char * | display | ) |
Create a new xdo_t instance.
| display | the string display name, such as ":0". If null, uses the environment variable DISPLAY. |
| xdo_t* xdo_new_with_opened_display | ( | Display * | xdpy, |
| const char * | display, | ||
| int | close_display_when_freed | ||
| ) |
Create a new xdo_t instance with an existing X11 Display instance.
| xdpy | the Display pointer given by a previous XOpenDisplay() |
| display | the string display name |
| close_display_when_freed | If true, we will close the display when xdo_free is called. Otherwise, we leave it open. |
| int xdo_set_active_modifiers | ( | const xdo_t * | xdo, |
| Window | window, | ||
| const xdo_active_mods_t * | active_mods | ||
| ) |
Send any events necessary to make these modifiers active.
This is useful if you just cleared the active modifiers and then wish to restore them after.
| int xdo_set_current_desktop | ( | const xdo_t * | xdo, |
| long | desktop | ||
| ) |
Switch to another desktop.
Uses _NET_CURRENT_DESKTOP of the EWMH spec.
| desktop | The desktop number to switch to. |
| int xdo_set_desktop_for_window | ( | const xdo_t * | xdo, |
| Window | wid, | ||
| long | desktop | ||
| ) |
Move a window to another desktop Uses _NET_WM_DESKTOP of the EWMH spec.
| wid | the window to move |
| desktop | the desktop destination for the window |
| int xdo_set_number_of_desktops | ( | const xdo_t * | xdo, |
| long | ndesktops | ||
| ) |
Set the number of desktops.
Uses _NET_NUMBER_OF_DESKTOPS of the EWMH spec.
| ndesktops | the new number of desktops to set. |
| const char** xdo_symbol_map | ( | void | ) |
If you need the symbol map, use this method.
The symbol map is an array of string pairs mapping common tokens to X Keysym strings, such as "alt" to "Alt_L"
| int xdo_type | ( | const xdo_t * | xdo, |
| Window | window, | ||
| char * | string, | ||
| useconds_t | delay | ||
| ) |
Type a string to the specified window.
If you want to send a specific key or key sequence, such as "alt+l", you want instead xdo_keysequence.
| window | The window you want to send keystrokes to or CURRENTWINDOW |
| string | The string to type, like "Hello world!" |
| delay | The delay between keystrokes in microseconds. 12000 is a decent choice if you don't have other plans. |
| int xdo_window_activate | ( | const xdo_t * | xdo, |
| Window | wid | ||
| ) |
Activate a window.
This is generally a better choice than xdo_window_focus for a variety of reasons, but it requires window manager support:
Requires your window manager to support this. Uses _NET_ACTIVE_WINDOW from the EWMH spec.
| wid | the window to activate |
| int xdo_window_focus | ( | const xdo_t * | xdo, |
| Window | wid | ||
| ) |
| int xdo_window_get_active | ( | const xdo_t * | xdo, |
| Window * | window_ret | ||
| ) |
Get the currently-active window.
Requires your window manager to support this. Uses _NET_ACTIVE_WINDOW from the EWMH spec.
| window_ret | Pointer to Window where the active window is stored. |
| int xdo_window_get_focus | ( | const xdo_t * | xdo, |
| Window * | window_ret | ||
| ) |
Get the window currently having focus.
| window_ret | Pointer to a window where the currently-focused window will be stored. |
| int xdo_window_get_pid | ( | const xdo_t * | xdo, |
| Window | window | ||
| ) |
Get the PID owning a window.
Not all applications support this. It looks at the _NET_WM_PID property of the window.
| window | the window to query. |
| int xdo_window_map | ( | const xdo_t * | xdo, |
| Window | wid | ||
| ) |
Map a window.
This mostly means to make the window visible if it is not currently mapped.
| wid | the window to map. |
| int xdo_window_move | ( | const xdo_t * | xdo, |
| Window | wid, | ||
| int | x, | ||
| int | y | ||
| ) |
Move a window to a specific location.
The top left corner of the window will be moved to the x,y coordinate.
| wid | the window to move |
| x | the X coordinate to move to. |
| y | the Y coordinate to move to. |
| int xdo_window_raise | ( | const xdo_t * | xdo, |
| Window | wid | ||
| ) |
Raise a window to the top of the window stack.
This is also sometimes termed as bringing the window forward.
| wid | The window to raise. |
| int xdo_window_sane_get_focus | ( | const xdo_t * | xdo, |
| Window * | window_ret | ||
| ) |
Like xdo_window_get_focus, but return the first ancestor-or-self window * having a property of WM_CLASS.
This allows you to get the "real" or top-level-ish window having focus rather than something you may not expect to be the window having focused.
| window_ret | Pointer to a window where the currently-focused window will be stored. |
| int xdo_window_search | ( | const xdo_t * | xdo, |
| const xdo_search_t * | search, | ||
| Window ** | windowlist_ret, | ||
| int * | nwindows_ret | ||
| ) |
Search for windows.
| search | the search query. |
| windowlist_ret | the list of matching windows to return |
| nwindows_ret | the number of windows (length of windowlist_ret) |
| int xdo_window_setclass | ( | const xdo_t * | xdo, |
| Window | wid, | ||
| const char * | name, | ||
| const char * | class | ||
| ) |
Change the window's classname and or class.
| name | The new class name. If NULL, no change. The new class. If NULL, no change. |
| int xdo_window_setprop | ( | const xdo_t * | xdo, |
| Window | wid, | ||
| const char * | property, | ||
| const char * | value | ||
| ) |
Change a window property.
Example properties you can change are WM_NAME, WM_ICON_NAME, etc.
| wid | The window to change a property of. |
| property | the string name of the property. |
| value | the string value of the property. |
| int xdo_window_setsize | ( | const xdo_t * | xdo, |
| Window | wid, | ||
| int | w, | ||
| int | h, | ||
| int | flags | ||
| ) |
Change the window size.
| wid | the window to resize |
| w | the new desired width |
| h | the new desired height |
| flags | if 0, use pixels for units. If SIZE_USEHINTS, then the units will be relative to the window size hints. |
| int xdo_window_translate_with_sizehint | ( | const xdo_t * | xdo, |
| Window | window, | ||
| int | width, | ||
| int | height, | ||
| int * | width_ret, | ||
| int * | height_ret | ||
| ) |
Apply a window's sizing hints (if any) to a given width and height.
This function wraps XGetWMNormalHints() and applies any resize increment and base size to your given width and height values.
| window | the window to use |
| width | the unit width you want to translate |
| height | the unit height you want to translate |
| width_ret | the return location of the translated width |
| height_ret | the return locatino of the translated height |
| int xdo_window_unmap | ( | const xdo_t * | xdo, |
| Window | wid | ||
| ) |
Unmap a window.
| wid | the window to unmap |
| int xdo_window_wait_for_active | ( | const xdo_t * | xdo, |
| Window | window, | ||
| int | active | ||
| ) |
Wait for a window to be active or not active.
Requires your window manager to support this. Uses _NET_ACTIVE_WINDOW from the EWMH spec.
| window | the window to wait on |
| active | If 1, wait for active. If 0, wait for inactive. |
| int xdo_window_wait_for_focus | ( | const xdo_t * | xdo, |
| Window | window, | ||
| int | want_focus | ||
| ) |
Wait for a window to have or lose focus.
| window | The window to wait on |
| want_focus | If 1, wait for focus. If 0, wait for loss of focus. |
| int xdo_window_wait_for_map_state | ( | const xdo_t * | xdo, |
| Window | wid, | ||
| int | map_state | ||
| ) |
Wait for a window to have a specific map state.
State possibilities: IsUnmapped - window is not displayed. IsViewable - window is mapped and shown (though may be clipped by windows on top of it) IsUnviewable - window is mapped but a parent window is unmapped.
| wid | the window you want to wait for. |
| map_state | the state to wait for. |
1.8.1.2