Естественная прокрутка в 18,04 в масштабе всей системы?

Это - о получении 'естественной прокрутки' иначе 'инвертированная прокрутка' для работы со ВСЕМИ приложениями в масштабе всей системы с мышами USB и trackpoints. Эта проблема сводит меня с ума с тех пор 12.04, где я наконец получил ее работающий с набором обходных решений.

Я использую Ubuntu Studio 18.04 (рабочий стол xfce 4.12) и в Предпочтениях существует опция 'Natural Scrolling'. Это работает как ожидалось в браузере и файловом менеджере, и также в текстовых редакторах и т.д. Однако т.е. в xfce4-терминале и коврике для мыши (текстовый редактор) и некоторые другие приложения это - все еще 'неестественная прокрутка'

Кто-либо знает то, что статус разработки по этой теме? Я пропускаю что-то?

Любая справка ценится, прежде чем я запущу и протестирую все те обходные решения.

Studio Ubuntu 18.04.1 с xfce 4.12 4.15.0-20-lowlatency # SMP с 21 Ubuntu ВЫТЕСНЯЕТ

1
задан 18 September 2018 в 03:08

2 ответа

IIRC непоследовательная 'инвертированная прокрутка' поведение даже через значение по умолчанию (x) приложения человечности происходил из-за другой обработки прокрутки в GTK2 и GTK3. Не знайте, применяется ли это все еще..

Так или иначе я просто узнал, что "старый прием xinput" все еще работает (xUbuntu 18.04.1, xinput версия 1.6.2), таким образом, я мог бы также совместно использовать, как это работает. И как заставить его сохранить перезагрузки.

Тест / временное решение

Перечислите все свои в настоящее время доступные указатели и клавиатуры:

xinput list

Что-то вроде этого появится:

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Laser Mouse                  id=9    [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=12   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=10   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=13   [slave  keyboard (3)]

Выберите id из рассматриваемого указателя перечислите все его свойства устройства:

xinput list-props 12

Device 'TPPS/2 IBM TrackPoint':
    Device Enabled (143):   1
    Coordinate Transformation Matrix (145): 1.000000, ...
    libinput Natural Scrolling Enabled (281):   1
    libinput Natural Scrolling Enabled Default (282):   0
    libinput Scroll Methods Available (283):    0, 0, 1
    libinput Scroll Method Enabled (284):   0, 0, 1
    libinput Scroll Method Enabled Default (285):   0, 0, 1
    libinput Button Scrolling Button (286): 2
    ...


Это - то, в чем мы нуждаемся: libinput Natural Scrolling Enabled (281)

Для включения естественной прокрутки глобально т.е. для "TPPS/2 IBM TrackPoint" (для текущей сессии) сначала выключите его в 'Мыши и Сенсорной панели' предпочтения.
Введите одну из тех двух строк ниже, совершите нападки, Входят. (оба делают то же, потому что, чтобы читать или записать свойство можно использовать или его все (!) имя или его идентификатор),

xinput set-prop 12 "libinput Natural Scrolling Enabled" 1

xinput set-prop 12 "281" 1

Теперь протестируйте его в приложениях, где naturalscroling не работал бы через установки системы.

Постоянное решение

Если вышеупомянутый тест работал над Вашей машиной, можно применить изменения каждый раз, Вы входите в свою сессию с маленьким сценарием запуска. Часть сценария, которая соответствует deviceName из этого ответа о картах кнопки @zerobandwidth).

Сохраните код ниже как natural_scrolling.sh в Вашем корневом каталоге или в /any/path/youLike

#!/bin/bash
# Find all xinput devices whose name matches any of the arguments passed here,
# then set the Natural Scrolling' property to '1' regardless of its
# current state.

# expect multiple arguments, store them as array
deviceNames="$@"

# exit if no argument is passed
if [ "$deviceNames" = "" ]; then
        echo "No argument received, exiting."
        echo "Call this script with argument(s) like 'Logitech' that match"
        echo "any of your attached pointer devices."
    exit 1
fi

for deviceName in $deviceNames
do
    deviceId=$(xinput --list | awk -v search="$deviceName" \
    '$0 ~ search {match($0, /id=[0-9]+/);\
                  if (RSTART) \
                    print substr($0, RSTART+3, RLENGTH-3)\
                 }'\
     )
  # set device-specific property (works i.e for 'TrackPoint' & 'Logitech')
  xinput set-prop $id "libinput Natural Scrolling Enabled" 1
done

Mark исполняемый файл сценария:

chmod +x natural_scrolling.sh

Назовите его с уникальным (!) device_name строка (строки) как аргумент:

/any/path/youLike/natural_scrolling.sh Logitech TrackPoint

Добавьте его к своим приложениям запуска, т.е. через предпочтения Сессии и Запуска в xfce и протестируйте его, выйдя из системы и въезжайте задним ходом снова.

3
ответ дан 3 December 2019 в 06:51

Увы, у меня нет достаточной репутации для комментария, таким образом, я оказываюсь перед необходимостью добавлять это как ответ. Для любого натыкающегося на это, существует очень небольшая ошибка в коде выше. Предпоследняя строка:

xinput set-prop $id "libinput Natural Scrolling Enabled" 1

Должен читать:

xinput set-prop $deviceId "libinput Natural Scrolling Enabled" 1

Кроме того, я использую Logitech Ultrathin Mouse и по причине who-knows-what, это соединяется и как мышь и как клавиатура, и поэтому появляется дважды в xinput list. Я поэтому добавил передачу по каналу вывода к head -1 для ограничения, что возвращается только к первой записи (который в моем случае всегда является мышью):

...
                    print substr($0, RSTART+3, RLENGTH-3)\
                 }' | head -1 \
     )
...
1
ответ дан 3 December 2019 в 06:51

Другие вопросы по тегам:

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