Похоже, это специфично для Qt (из попытки в Qt Assistant). Я думаю, это потому, что Qt использует только расстояние прокрутки для своих событий колеса.
Вместо использования xmodmap здесь вы можете установить для расстояния прокрутки отрицательные значения.
Вы можете установить его через файл в /etc/X11/xorg.conf.d/
, для мыши, управляемой evdev:
Section "InputClass"
Identifier "Reverse Scrolling"
MatchIsPointer "on"
Option "VertScrollDelta" "-1"
Option "HorizScrollDelta" "-1"
Option "DialDelta" "-1"
EndSection
Или вы можете попробовать с помощью xinput
сначала:
xinput set-prop <идентификатор вашего устройства> «Evdev Scrolling Distance» -1 -1 -1
(Чтобы получить идентификатор устройства: xinput list
)
Свойства указаны вместе с фактическим устройством. Здесь xinput list-props 12
должен отображать свойства сенсорной панели. Поскольку это сенсорная панель Synaptics, из этой страницы руководства свойство должно быть:
xinput set-prop
(Только два значения, вертикальные и горизонтальные края.)
Правило в файле конфигурации должно работать с MatchIsTouchpad
:
Section "InputClass"
Identifier "Natural Scrolling"
MatchIsTouchpad "on"
Option "VertScrollDelta" "-1"
Option "HorizScrollDelta" "-1"
EndSection
Я хочу дополнить ответ @ Leiaz.
В моем случае я использую Logitech M325 .
$ xinput
⎡ Идентификатор указателя виртуального ядра = 2 [главный указатель (3)]
⎜ ↳ Идентификатор указателя XTEST виртуального ядра = 4 [подчиненный указатель (2)]
{ {1}} ⎜ ↳ HID 04b4: 0823 id = 10 [подчиненный указатель (2)]
⎜ ↳ Logitech M325 id = 12 [подчиненный указатель (2)]
⎜ ↳ Logitech M185 / M225 id = 11 [подчиненный указатель (2)]
$ xinput list-props 12
Устройство «Logitech M325»:
Устройство включено (152): 1
Матрица преобразования координат (154): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Accel Speed (286): 0.000000
libinput Accel Speed по умолчанию (287): 0.000000
Доступные профили Accel libinput (288): 1, 1
Профиль Accel libinput включен (289): 1, 0
Профиль libinput Accel Включено По умолчанию (290): 1, 0
libinput Natural Scrolling Включено (291): 0
libinput Natural Scrolling включено По умолчанию (292): 0
Доступны режимы отправки событий libinput (271) : 1, 0
Режим отправки событий libinput включен (272): 0, 0
Режим отправки событий libinput включен По умолчанию (273): 0, 0
{{ 1}} libinput Left Handed Enabled (293): 0
libinput Left Handed Enabled По умолчанию (294): 0
Доступные методы прокрутки libinput (295): 0, 0, 1
Метод прокрутки libinput включен (296): 0, 0, 0
Метод прокрутки libinput включен По умолчанию (297): 0, 0, 0
{{1 }} Кнопка прокрутки кнопки libinput (298): 2
Кнопка прокрутки кнопки libinput По умолчанию (299): 2
Эмуляция среднего уровня libinput включена (300): 0
{ {1}} libinput Middle Emul по умолчанию (301): 0
Узел устройства (274): «/ dev / input / event16»
Идентификатор продукта устройства (275): 1133, 16394
libinput Drag Lock Buttons (302):
libinput Horizontal Scroll Enabled (303): 1
Обратите внимание, что есть свойство "Natural Scrolling Enabled (291)", измените его на «1», направление вашего колеса мыши будет обратным.
$ xinput set-prop 12 291 1
Если вы хотите обернуть процедуру в сценарий оболочки, вот он:
#!/bin/bash
dev_id=$(xinput | sed -n '/Logitech M325/{s/^.*Logitech M325\s\+id=\([0-9]\+\).*$/\1/;p;}')
if [[ -z "$dev_id" ]];then
exit 1
fi
nse_id=$(xinput list-props "$dev_id" | sed -n '/Natural Scrolling Enabled ([0-9]\+)/{s/^.*Natural Scrolling Enabled (\([0-9]\+\)).*/\1/;p;}')
if [[ -z "$nse_id" ]];then
exit 1
fi
xinput set-prop "$dev_id" "$nse_id" 1
xinput list-props "$dev_id" | grep -o "Natural Scrolling Enabled ($nse_id):\s\+[0-9]"
Измените «Logitech M325» на имя вашего собственного устройства.