В попытке продолжить использование своего ПК и одновременно автоматизировать приложение с графическим интерфейсом я создал на своей машине два указателя с помощью xinput, один из которых управляется мной, а другой — pyautogui.
В моей системе это делается так:
xinput create-master mynewpointer
xinput reattach 10 11
Я использую главный указатель 11 pyautogui использует указатель по умолчанию 2
Однако указатели конфликтуют друг с другом по-разному, и одной из основных проблем является отвлечение внимания друг от друга.
Даже использование xinput --map-to-output или --set-cp не работает, указатель все равно «перескакивает» с тестируемого окна/монитора, когда мой указатель захватывает фокус на новом окне.
Можно ли как-то разделить эти указатели?
решение1
Возможно, вместо этого вы могли бы просто использовать отдельный выделенный сервер X11 для приложения. Это может быть так же просто, как запуск
Xnest :1 &
и затем запустить ваше приложение под DISPLAY=: 1. Однако курсор не отображается, если реальный курсор не находится в окне, а перемещение курсора в окно приведет к перемещению курсора Xnest.
Другой альтернативой является запуск VNC-сервера. Это немного более независимо.
vncserver :1 securitytypes=none -interface localhost
vncviewer :1
Существует также Xephyr
вложенный сервер, который похож на Xnest, но добавляет множество функций, которых может не быть у базового сервера, а также существует в версии с OpenGL.