Skip to content

DSI allows you to perform basic interactions on your display server, like screenshotting a window or sending input to it.

License

Notifications You must be signed in to change notification settings

Commandcracker/display-server-interactions

Repository files navigation

Display Server Interactions

PyPI version Documentation Status Downloads Supported Python Versions

License GitHub stars GitHub forks GitHub issues Publish

DSI allows you to perform basic interactions on your display server, like screenshotting a window or sending input to it. Currently, DSI only supports X11/Xorg (GNU/Linux) and Windows but it aims to be cross-platform.

WARNING: Please Do not use DSI in production, because it's currently in development!

Quick overview

Look at the documentation for moor information

Get a window

from display_server_interactions import DSI
dsi = DSI()
window = dsi.get_active_window()

Get basic window information

print("Active window: ")
print("\tName: {}".format(window.name))
print("\tPID: {}".format(window.pid))

Take a screenshot of the window

import cv2
import numpy as np

img = np.array(window.get_image())
cv2.imshow(f'Screenshot of "{window.name}"', img)

while True:
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

Sending keys to a window

window.send_str("Hello World")

Move the mouse pointer

window.warp_pointer(x=42, y=73)

Sending mouse clicks

window.send_mouse_click(x=42, y=73)