def get_idle_time(): """get idle time from X server""" display = Xlib.display.Display() info = display.query_extension(EXTNAME) display.display.set_extension_major(EXTNAME, info.major_opcode) millis = screen_saver_query_info(display.screen().root).idle_time return datetime.timedelta(milliseconds=millis)
def init_display(): global display, UseXTest display = Xlib.display.Display() # window = display.get_input_focus()._data["focus"] if UseXTest and not display.query_extension("XTEST"): UseXTest = False
def run(self): self.xlock.acquire() # get X objects self.display = Xlib.display.Display(':0') display = self.display self.root = display.screen().root root = self.root if not display.has_extension("RANDR"): print "RANDR extension not found" sys.exit(1) display.query_extension('RANDR') if mplugd.verbose: r = display.xrandr_query_version() print "RANDR extension version %d.%d" % (r.major_version, r.minor_version) # set which types of events we want to receive root.xrandr_select_input( randr.RRScreenChangeNotifyMask | randr.RRCrtcChangeNotifyMask | randr.RROutputChangeNotifyMask | randr.RROutputPropertyNotifyMask ) self.xlock.release() self.initflag.set() import time # enter event loop while not self.stop: for x in range(0, self.root.display.pending_events()): e = self.root.display.next_event() mp_ev = XMP_Event(self, e) self.queue.push(mp_ev) # TODO find something better time.sleep(1)
import Xlib.protocol.event UseXTest = True try: import Xlib.ext.xtest except ImportError: UseXTest = False print "no XTest extension; using XSendEvent" import sys, time display = Xlib.display.Display() window = display.get_input_focus()._data["focus"] if UseXTest and not display.query_extension("XTEST"): UseXTest = False special_X_keysyms = { '\b': "BackSpace", ' ': "space", '\t': "Tab", '\n': "Return", # for some reason this needs to be cr, not lf '\r': "Return", '\e': "Escape", '!': "exclam", '#': "numbersign", '%': "percent", '$': "dollar", '&': "ampersand", '"': "quotedbl",
import Xlib.protocol.event UseXTest = True try : import Xlib.ext.xtest except ImportError: UseXTest = False print("no XTest extension; using XSendEvent") import sys, time display = Xlib.display.Display() window = display.get_input_focus()._data["focus"]; if UseXTest and not display.query_extension("XTEST") : UseXTest = False special_X_keysyms = { '\b' : "BackSpace", ' ' : "space", '\t' : "Tab", '\n' : "Return", # for some reason this needs to be cr, not lf '\r' : "Return", '\e' : "Escape", '!' : "exclam", '#' : "numbersign", '%' : "percent", '$' : "dollar", '&' : "ampersand", '"' : "quotedbl",