示例#1
0
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)
示例#2
0
文件: pykey.py 项目: tukanos/scripts
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
示例#3
0
文件: pykey.py 项目: akkana/scripts
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
示例#4
0
	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)
示例#5
0
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",
示例#6
0
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",