diff -Naur disper/src/xrandr/__init__.py disper-new/src/xrandr/__init__.py --- disper/src/xrandr/__init__.py 2011-09-09 16:20:45.000000000 +0200 +++ disper-new/src/xrandr/__init__.py 2016-07-28 15:33:34.391703460 +0200 @@ -83,10 +83,20 @@ from core import Screen, xlib, rr +xopendisplay = None +class Display(Structure): pass + +def get_display(name): + global xopendisplay + if xopendisplay is None: + xopendisplay = xlib.XOpenDisplay + xopendisplay.restype = POINTER(Display) + return xopendisplay(name) + def get_current_display(): """Returns the currently used display""" display_url = os.getenv("DISPLAY") - dpy = xlib.XOpenDisplay(display_url) + dpy = get_display(display_url) return dpy def get_current_screen(): @@ -98,7 +108,7 @@ def get_screen_of_display(display, count): """Returns the screen of the given display""" - dpy = xlib.XOpenDisplay(display) + dpy = get_display(display) return Screen(dpy, count) def get_version():