Какой исходный код мне нужно отредактировать и перекомпилировать, чтобы курсор работал медленнее?

Какой исходный код мне нужно отредактировать и перекомпилировать, чтобы курсор работал медленнее?

У меня Linux Mint 19.3 (MATE x64) и мышь Logitech G402, которую я хотел бы использовать с ним.

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

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

Настройки скорости указателя (меню «Пуск» -> «Настройки» -> «Мышь») практически не имеют значения, даже если я устанавливаю их на абсолютный минимум.

Вот вывод xinputс настройками по умолчанию:

$ xinput list-props "Logitech Gaming Mouse G402"
Device 'Logitech Gaming Mouse G402':
    Device Enabled (155):   1
    Coordinate Transformation Matrix (157): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Natural Scrolling Enabled (292):   0
    libinput Natural Scrolling Enabled Default (293):   0
    libinput Scroll Methods Available (294):    0, 0, 1
    libinput Scroll Method Enabled (295):   0, 0, 0
    libinput Scroll Method Enabled Default (296):   0, 0, 0
    libinput Button Scrolling Button (297): 2
    libinput Button Scrolling Button Default (298): 2
    libinput Middle Emulation Enabled (299):    1
    libinput Middle Emulation Enabled Default (300):    0
    libinput Accel Speed (301): 0.000000
    libinput Accel Speed Default (302): 0.000000
    libinput Accel Profiles Available (303):    1, 1
    libinput Accel Profile Enabled (304):   1, 0
    libinput Accel Profile Enabled Default (305):   1, 0
    libinput Left Handed Enabled (306): 0
    libinput Left Handed Enabled Default (307): 0
    libinput Send Events Modes Available (277): 1, 0
    libinput Send Events Mode Enabled (278):    0, 0
    libinput Send Events Mode Enabled Default (279):    0, 0
    Device Node (280):  "/dev/input/event5"
    Device Product ID (281):    1133, 49278
    libinput Drag Lock Buttons (308):   <no items>
    libinput Horizontal Scroll Enabled (309):   1

Единственная опция, которая может повлиять на скорость моего курсора, — это Матрица преобразования координат (также Скорость ускорения, но она не превышает -1, а мне нужно, чтобы она превышала -1). Если я установлю ее на 1 0 0 0 1 0 0 0 50, моя скорость курсора будет правильно разделена на 50.Однаконестандартная матрица преобразования координат приведет к тому, что игры, захватывающие курсор (например, Minecraft), будут работать некорректно, сбрасывая курсор почти в верхний левый угол экрана каждый раз, когда курсор освобождается, и заставляя моего персонажа резко вращаться в направлении верхнего левого угла во время захвата.

Похоже, у меня больше нет вариантов заставить мышь работать должным образом, используя предполагаемые методы, поэтому я чувствую, что мне придетсяотредактируйте исходный код, чтобы мой курсор двигался с разумной скоростью, как бы безумно это ни звучало. Я в таком отчаянии, что готов был бы вставить / 50.0что-нибудь жестко закодированное в какой-нибудь код на C, скомпилировать, установить и на этом закончить, но, к сожалению, я понятия не имею, куда это вставить.

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

решение1

Я нашел соответствующий код в libinput, в filter-low-dpi.c. Я разделил возвращаемое значение функции calculate_acceleration_factorна 50.0, затем скомпилировал и установил согласно инструкциям.

Если у вас возникли похожие проблемы, в зависимости от модели вашей мыши вам может потребоваться редактирование filter-mouse.c.

Связанный контент