Судя по всему, изменение матрицы преобразования координат действительно работает, просто я сделал это наоборот.
Установка на матрицу all -0 ничего не делает. Изменение случайных значений может иметь или не иметь эффекта.
В конце концов, я заметил, что увеличение нижнего -правого элемента матрицы замедляет работу мыши. Таким образом, изменение этого значения на что-то большее дает желаемый эффект.
Например :xinput set-prop 10 154 1 0 0 0 1 0 0 0 1000000
Это работало только с мышью с идентификатором 10.
Редактировать :Установка других 1 -значений на что-то маленькое -, скажем,0 -также делает его медленнее. Так что это тоже работает:xinput set-prop 10 154 0 0 0 0 0 0 0 0 1
Более того, xinput test 10
ничего не выводит при этом.
Однако при использовании вместе с xdotool я замечаю, что мой курсор прыгает в верхний -левый угол экрана. Я не уверен, что это все еще входит в рамки этого вопроса, но это все еще проблема.
Редактировать2 :Похоже, что прыжок в верхний -левый угол экрана вызван xdotool mousemove
. Если вы переместите мышь после выполнения такой команды с настройками матрицы, как указано выше, указатель мыши переместится в верхний -левый угол.
Чтобы этого не произошло, вы можете просто проследить за этим относительным движением. Например вот так:xdotool mousemove X Y mousemove_relative 1 1 mousemove_relative -- -1 -1
. Это переместит указатель к предоставленным координатам X и Y, и на него не повлияют дальнейшие движения мыши.
Я не думаю, что для этого существует широко доступный API. Однако Flatpak имеет реализацию mkstempat
, xdp_mkstempat
, лицензированную по лицензии LGPL версии 2 или более поздней.
Похоже, что в настоящее время это единственная легко -доступная реализация такой функции... Я подозреваю, что можно привести аргумент в пользу ее добавления в glib наряду с существующей g_mkstemp
glib и т. д.