В современных производных версиях Debian, включая Mint, mingw32
больше не доступен; он был заменен наmingw-w64
:
sudo apt install mingw-w64
должно работать.
Этот пакет содержит 32-битные -и 64-битные -компиляторы для Windows. При переключении с mingw32
на mingw-w64
вам необходимо настроить целевые триоли :
.
i686-w64-mingw32
для 32-битной -Windows; x86_64-w64-mingw32
для 64-битной -Windows. Вместо этого используйте ускорение. Для 16000 DPI на моем HyperX Pulsefire Surge нормальное значение составляет -0,935. Эта ошибка также работает с панелью, которая автоматически скрывается, телепортирует мышь.
Попробуйте использовать XIWarpPointer для своей версии XWarpPointer. Что-то вроде:
#include <X11/extensions/XInput2.h>
int XWarpPointer(Display *display, Window src_w, Window dest_w, int src_x, int
src_y, unsigned int src_width, unsigned int src_height, int dest_x, int
dest_y){
static int isnew=1;
static int device=0;
int dev_temp;
if(XIGetClientPointer(display,dest_w,&dev_temp)){
isnew=0;
device=dev_temp;
}
if(isnew) return 1;
return XIWarpPointer(display,device,src_w,dest_w,src_x,src_y,src_width,src_height,dest_x,dest_y);
}
Скомпилируйте его с помощью gcc xwarp.c --shared -или xwarp.so -lXi, а затем просто используйте LD _PRELOAD
Мое «решение» состояло в том, чтобы выбрать матрицу преобразования, которая удерживает курсор на месте, когда он находится в центре.
Вы хотите использовать матрицу:
Где s — коэффициент масштабирования, который вы хотите использовать для своей мыши, например. 0,5 для половинной скорости. А x и y — это координаты центра вашего экрана.
Простой способ получить значение x,y — использовать xdotool getmouselocation
перед переходом.
Пример
Я хотел, чтобы моя чувствительность s = 0,4
После открытия инвентаря в minecraft,xdotool getmouseloation
сообщает, что у меня x = 960 и y = 1729. Вычисление моих смещений (1 -с )*x = 0,6 *960 = 576 и (1 -с )*y = 0,6 *1729 = 1037,4
Затем я соответствующим образом изменил матрицу преобразования координат
xinput set-prop 8 'Coordinate Transformation Matrix' 0.4 0 576 0 0.4 1037.4 0 0 1
(Моя мышь — устройство 8, скорее всего, для вас будет другим.)
Недостатки
Это устраняет проблему только для определенной координаты. Для чего-то вроде Minecraft, где вы обычно держите окно в одном и том же положении, этого исправления достаточно, и ваша мышь больше не будет прыгать при входе в ваш инвентарь.
В других случаях использования вы все равно будете испытывать скачки, но скачки будут меньше, когда ваша мышь находится близко к выбранным вами x, y.
Математические детали
Дополнительные сведения о математике см. в https://math.stackexchange.com/questions/2954781/calculating-the-translation-of-an-affine-matrix-so-that-it-centres-during-scalin
.