def run(self): events = XEvents() events.start() while not events.listening(): # Wait for init time.sleep(1) try: while events.listening(): evt = events.next_event() if not evt: time.sleep(0.5) continue if evt.type != "EV_MOV" and # Only track key movement or (evt.type != "EV_KEY" or evt.value != 1): # Only count key down, not up. continue if evt.type == "EV_MOV": self.thishour_distance += distance(evt.value, self.lastmove) self.lastmove = evt.value if evt.type == "EV_KEY": self.thishour_count+=1 if time.time() > self.nextsave: self.save() if datetime.now().hour != self.thishour.hour: self.set_thishour() except KeyboardInterrupt: events.stop_listening() self.save()
def run(self): events = XEvents() events.start() while not events.listening(): # Wait for init time.sleep(1) try: while events.listening(): evt = events.next_event() if not evt: time.sleep(0.5) continue if evt.type != "EV_KEY" or evt.value != 1: # Only count key down, not up. continue self.thishour_count += 1 if time.time() > self.nextsave: self.save() if datetime.now().hour != self.thishour.hour: self.set_thishour() except KeyboardInterrupt: events.stop_listening() self.save()
def run(self): events = XEvents() events.start() while not events.listening(): # Wait for init time.sleep(1) try: while events.listening(): evt = events.next_event() if not evt: time.sleep(0.5) continue if evt.type != "EV_KEY" or evt.value != 1: # Only count key down, not up. continue self.thishour_count += 1 if time.time() > self.nextsave: self.save() except KeyboardInterrupt: events.stop_listening() self.save() except: print "Caught exception, probably not connected to the interwebs..."
def run(self): events = XEvents() events.start() while not events.listening(): # Wait for init time.sleep(1) try: while events.listening(): evt = events.next_event() if not evt: time.sleep(0.5) continue if evt.type != "EV_KEY" or evt.value != 1: # Only count key down, not up. continue self.thishour_count+=1 if time.time() > self.nextsave: self.save() except KeyboardInterrupt: events.stop_listening() self.save() except: print "Caught exception, probably not connected to the interwebs..."
def run(self): events = XEvents() events.start() lastkeyat = time.time() while not events.listening(): # Wait for init time.sleep(1) try: while events.listening(): evt = events.next_event() if time.time() - lastkeyat > 0.75 and self.muted: self.togglemute() self.muted = False if not evt: time.sleep(0.5) continue if evt.type != "EV_KEY" or evt.value != 1: # Only count key down, not up. continue if not self.muted and not "BTN_" in evt.code: self.togglemute() self.muted = True lastkeyat = time.time() self.thishour_count+=1 if time.time() > self.nextsave: self.save() if datetime.now().hour != self.thishour.hour: self.set_thishour() except KeyboardInterrupt: events.stop_listening() self.save()
def run(self): events = XEvents() events.start() while not events.listening(): # Wait for init time.sleep(1) last_mov = None try: modifier_state = 0 while events.listening(): evt = events.next_event() if not evt: time.sleep(0.5) continue # read modifier state if evt.type == 'EV_KEY' and evt.code in MODIFIERS.iterkeys(): if evt.value: modifier_state |= MODIFIERS[evt.code] else: modifier_state &= ~MODIFIERS[evt.code] # Key press (evt.value == 1) or release (evt.value == 0) if evt.type == 'EV_KEY' and evt.value == 1: if evt.code.startswith('KEY'): if evt.code == 'KEY_DUNNO': idx = (evt.scancode, modifier_state) else: idx = (evt.code, modifier_state) self.keyboard_events[idx] += 1 if evt.code.startswith('BTN'): self.mouse_events[(evt.code, modifier_state)] += 1 if evt.type == 'EV_MOV': # EV_MOV's value is a tuple with the current mouse coordinates. # To track movement, we need to compare with the last position x, y = evt.value if last_mov: self.mouse_distance_x += abs(x - last_mov[0]) self.mouse_distance_y += abs(y - last_mov[1]) last_mov = x, y # Scrolling if evt.type == 'EV_REL': if evt.code == 'REL_WHEEL': if evt.value > 0: self.mouse_events[('WHEEL_UP', modifier_state)] += evt.value if evt.value < 0: self.mouse_events[('WHEEL_DOWN', modifier_state)] += -evt.value if evt.code == 'REL_WHEEL' or (evt.type == 'EV_KEY' and evt.value == 1 and evt.code not in MODIFIERS.iterkeys()): print("type %s value %s code %s scancode %s" % (evt.type, evt.value, evt.code, evt.scancode), end=' ') print("S:%d C:%d A:%d M:%d S:%d" % (modifier_state & MODIFIERS['KEY_SHIFT_L'], modifier_state & MODIFIERS['KEY_CONTROL_L'], modifier_state & MODIFIERS['KEY_ALT_L'], modifier_state & MODIFIERS['KEY_META_L'], modifier_state & MODIFIERS['KEY_SUPER_L'])) if time.time() > self.nextsave: print("Mouse:", self.mouse_distance_x, self.mouse_distance_y) self.save() if datetime.now().hour != self.thishour.hour: self.set_thishour() except KeyboardInterrupt: events.stop_listening() self.save()