Спокойное приложение, не повинуясь Xmodmap

Можно хотеть играть со Связкой ключей.

7
14.08.2014, 10:21
2 ответа

Похоже, это специфично для 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 «Synaptics Scrolling Distance» -1 -1 (Только два значения, вертикальные и горизонтальные края.)

Правило в файле конфигурации должно работать с MatchIsTouchpad :

Section "InputClass"
        Identifier "Natural Scrolling"
        MatchIsTouchpad "on"
        Option "VertScrollDelta" "-1"
        Option "HorizScrollDelta" "-1"
EndSection
6
27.01.2020, 20:18

Я хочу дополнить ответ @ 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» на имя вашего собственного устройства.

1
27.01.2020, 20:18

Теги

Похожие вопросы