2013-12-08 2 views
1

Я создал поддельный указатель мыши, используя команду xinput, как указано here, которая создает второй указатель, который находится в центре моего экрана.Linux: Xautomation с поддельным указателем мыши

Теперь я хотел бы автоматизировать его с помощью команды xte, но, к сожалению, xte только кажется захватывающим элементом аппаратной мыши, которую я хочу сохранить бесплатно.

На странице руководства для xte нет флагов для указания того, какой указатель взять под контроль. Мне было интересно, есть ли у кого-нибудь идеи?

NB: второй указатель чисто для меня, чтобы иметь возможность работать на том же компьютере, в то время как работает в графическом Трубопроводный


Edit: Так, глядя на источник ХТЕ я нашел ссылки на XQueryPointer

Bool XQueryPointer(display, w, root_return, child_return, root_x_return, root_y_return, 
        win_x_return, win_y_return, mask_return) 
     Display *display; 
     Window w; 
     Window *root_return, *child_return; 
     int *root_x_return, *root_y_return; 
     int *win_x_return, *win_y_return; 
     unsigned int *mask_return; 

//Arguments: 
display   Specifies the connection to the X server. 
w    Specifies the window. 
root_return  Returns the root window that the pointer is in. 
child_return Returns the child window that the pointer is located in, if any. 
root_x_return 
root_y_return Return the pointer coordinates relative to the root window's origin. 
win_x_return 
win_y_return Return the pointer coordinates relative to the specified window. 
mask_return  Returns the current state of the modifier keys and pointer buttons. 

из класса Xlib, который, как вы можете видеть, возвращает только первый указатель мыши и не дает опции для другого.


Edit2: Глядя через источник libx11-Dev Я находкой упоминания о нем в ./src/QuPntr.c и Xlibint.h, но код становится все труднее читать, и я из моя глубина здесь

ответ

0

xinput использует расширение XI2, чтобы допускать использование нескольких указателей. Эта библиотека (X11/extensions/XInput2.h) предоставляет функции, предваряемые «XI», которые принимают параметр устройства (тот же, на который ссылаются xinput --list), например XIQueryPointer, XIWarpPointer или XIGetClientPointer. Таким образом, вы можете программно управлять своим поддельным указателем, если ваш инструмент автоматизации не поддерживает XI2.

Простым способом может оказаться xinput --reattach аппаратное устройство (подчиненное устройство) новому указателю (ведущему устройству).

Очень поздний ответ Я знаю, но я наткнулся на этот вопрос через веб-поиск, поэтому добавляю то, что знаю для справки.

Смежные вопросы