def send_string(window, str, modifiers, press=True): xlib_display = get_xlib_display() mask = 0 for modifier in modifiers: if modifier == "Ctrl": mask |= Xlib.X.ControlMask elif modifier == "Alt": mask |= Xlib.X.Mod1Mask elif modifier == "Shift": mask |= Xlib.X.ShiftMask elif modifier == "Super": mask |= Xlib.X.Mod4Mask keycode = xlib_display.keysym_to_keycode(get_keysym(str)) if press: event_type = Xlib.protocol.event.KeyPress else: event_type = Xlib.protocol.event.KeyRelease event = event_type( root=xlib_display.screen().root, window=window, child=Xlib.X.NONE, same_screen=1, root_x=0, root_y=0, event_x=0, event_y=0, state=mask, detail=keycode, time=Xlib.X.CurrentTime, ) window.send_event(event, propagate=True)
def reparent(self, x, y): xlib_display = get_xlib_display() tray_xwindow = xlib_display.create_resource_object("window", self.winId().__int__()) emacs_xwindow = xlib_display.create_resource_object("window", self.emacs_xid) tray_xwindow.reparent(emacs_xwindow, x, y + 1) xlib_display.sync()
def reparent(self): xlib_display = get_xlib_display() emaf_xwindow = xlib_display.create_resource_object("window", self.winId().__int__()) emacs_xwindow = xlib_display.create_resource_object("window", self.emacs_xid) emaf_xwindow.reparent(emacs_xwindow, 0, 0) xlib_display.sync()
def reparent(self, x, y): xlib_display = get_xlib_display() browser_xwindow_id = self.winId().__int__() browser_xwindow = xlib_display.create_resource_object("window", browser_xwindow_id) emacs_xwindow = xlib_display.create_resource_object("window", emacs_xwindow_id) browser_xwindow.reparent(emacs_xwindow, x, y) xlib_display.sync()
def eventFilter(self, obj, event): if event.type() in [ QEvent.KeyPress, QEvent.KeyRelease, QEvent.MouseButtonPress, QEvent.MouseButtonRelease, QEvent.MouseMove, QEvent.MouseButtonDblClick, QEvent.Wheel, QEvent.InputMethod, QEvent.InputMethodQuery, QEvent.ShortcutOverride, QEvent.ActivationChange, QEvent.Enter, QEvent.WindowActivate, ]: QApplication.sendEvent(self, event) if event.type() == QEvent.KeyPress and event.key( ) == QtCore.Qt.Key_Control: self.press_ctrl_flag = True elif event.type() == QEvent.KeyRelease and event.key( ) == QtCore.Qt.Key_Control: self.press_ctrl_flag = False global emacs_xwindow_id xlib_display = get_xlib_display() xwindow = xlib_display.create_resource_object( "window", emacs_xwindow_id) mask = [] event_key = event.text() if event.modifiers( ) & QtCore.Qt.AltModifier == QtCore.Qt.AltModifier: mask.append("Alt") elif event.modifiers( ) & QtCore.Qt.ControlModifier == QtCore.Qt.ControlModifier: mask.append("Ctrl") elif event.modifiers( ) & QtCore.Qt.ShiftModifier == QtCore.Qt.ShiftModifier: mask.append("Shift") elif event.modifiers( ) & QtCore.Qt.MetaModifier == QtCore.Qt.MetaModifier: mask.append("Super") send_string(xwindow, event_key, mask, event.type() == QEvent.KeyPress) xlib_display.sync() else: if event.type() not in [12, 77]: call_method("%s %s" % (event.type(), event)) return False
def reparent(self): xlib_display = get_xlib_display() view_xid = self.winId().__int__() view_xwindow = xlib_display.create_resource_object("window", view_xid) emacs_xwindow = xlib_display.create_resource_object( "window", self.emacs_xid) view_xwindow.reparent(emacs_xwindow, self.x, self.y) xlib_display.sync()
def reparent(self): xlib_display = get_xlib_display() emaf_xwindow = xlib_display.create_resource_object( "window", self.winId().__int__()) emacs_xwindow = xlib_display.create_resource_object( "window", self.emacs_xid) emaf_xwindow.reparent(emacs_xwindow, 0, 0) xlib_display.sync()
def eventFilter(self, obj, event): if event.type() in [QEvent.KeyPress, QEvent.KeyRelease, QEvent.MouseButtonPress, QEvent.MouseButtonRelease, QEvent.MouseMove, QEvent.MouseButtonDblClick, QEvent.Wheel, QEvent.InputMethod, QEvent.InputMethodQuery, QEvent.ShortcutOverride, QEvent.ActivationChange, QEvent.Enter, QEvent.WindowActivate, ]: QApplication.sendEvent(self, event) if event.type() == QEvent.KeyPress and event.key() == QtCore.Qt.Key_Control: self.press_ctrl_flag = True elif event.type() == QEvent.KeyRelease and event.key() == QtCore.Qt.Key_Control: self.press_ctrl_flag = False global emacs_xwindow_id xlib_display = get_xlib_display() xwindow = xlib_display.create_resource_object("window", emacs_xwindow_id) mask = [] event_key = event.text() if event.modifiers() & QtCore.Qt.AltModifier == QtCore.Qt.AltModifier: mask.append("Alt") elif event.modifiers() & QtCore.Qt.ControlModifier == QtCore.Qt.ControlModifier: mask.append("Ctrl") elif event.modifiers() & QtCore.Qt.ShiftModifier == QtCore.Qt.ShiftModifier: mask.append("Shift") elif event.modifiers() & QtCore.Qt.MetaModifier == QtCore.Qt.MetaModifier: mask.append("Super") send_string(xwindow, event_key, mask, event.type() == QEvent.KeyPress) xlib_display.sync() else: if event.type() not in [12, 77]: call_method("%s %s" % (event.type(), event)) return False
event = event_type( root=xlib_display.screen().root, window=window, child=Xlib.X.NONE, same_screen=1, root_x=0, root_y=0, event_x=0, event_y=0, state=mask, detail=keycode, time=Xlib.X.CurrentTime, ) window.send_event(event, propagate=True) if __name__ == "__main__": xlib_display = get_xlib_display() xwindow = xlib_display.create_resource_object("window", 73400407) # send_string(xwindow, "x", ["Ctrl"], False) # send_string(xwindow, "x", ["Ctrl"], True) # send_string(xwindow, "h", [], False) # send_string(xwindow, "h", [], True) send_string(xwindow, "y", ["Super"], False) send_string(xwindow, "y", ["Super"], True) xlib_display.sync()