Установка различных направлений прокрутки для каждого устройства Ubuntu 18.04 Gnome

Установка различных направлений прокрутки для каждого устройства Ubuntu 18.04 Gnome

В качестве основного устройства ввода на моей рабочей станции я использую комбинацию мыши и клавиатуры.

ПК также подключен к моему телевизору. Когда я смотрю телевизор, я люблю использовать дешевую клавиатуру с тачпадом. На ней нет бренда, но на задней стороне написано:

Wireless Keyboard
Model: ST-WK600
Art. nr.: IW.48.788

Поскольку я привык к «естественной прокрутке» на своем MacBook, я бы хотел использовать ее и для тачпада.

Однако мне бы хотелось, чтобы мышь вела себя так, как она ведет себя по умолчанию.

gnome-control-centerпоказывает только одну настройку для мыши и тачпада. Есть ли возможность задать поведение прокрутки для каждого устройства?

Центр управления Gnome

EDIT: hwinfo --shortвывод, сокращенный до соответствующих разделов.

Как вы видите, он включает в себя мою клавиатуру Logitech, USB-приемник MCE и unknown: Keyboard controller, как я подозреваю, комплект клавиатуры и сенсорной панели, поскольку раздела сенсорной панели нет, а /dev/input/miceуказано только одно устройство.

keyboard:
/dev/input/event6    Logitech LX710 Cordless Desktop Laser
/dev/input/event17   MCE IR Keyboard/Mouse (mceusb)
mouse:
/dev/input/mice      Logitech LX710 Cordless Desktop Laser
unknown:
                    FPU
                    DMA controller
                    PIC
                    Keyboard controller
                    Intel 7 Series/C216 Chipset Family MEI Controller #1
                    Intel 7 Series/C216 Chipset Family SMBus Controller
                    Feature Integration Technology Inc. (Fintek) F71610A or F71612A Consumer Infrared Receiver/Transceiver
/dev/input/event2    P&E Micro Smart Control
                    ASUSTek BCM20702A0

EDIT 2: xinput listвывод. Одним из HLHB155устройств должен быть тачпад.

$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ HLHB155 V1 10 27 01 Smart Control         id=10   [slave  pointer  (2)]
⎜   ↳ HLHB155 V1 10 27 01 Smart Control         id=11   [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=14   [slave  pointer  (2)]
⎜   ↳ MCE IR Keyboard/Mouse (mceusb)            id=16   [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)]
    ↳ HLHB155 V1 10 27 01 Smart Control         id=9    [slave  keyboard (3)]
    ↳ Media Center Ed. eHome Infrared Remote Transceiver (1934:5168)    id=12   [slave  keyboard (3)]
    ↳ Logitech USB Receiver                     id=13   [slave  keyboard (3)]
    ↳ Eee PC WMI hotkeys                        id=15   [slave  keyboard (3)]
    ↳ HLHB155 V1 10 27 01 Smart Control         id=17   [slave  keyboard (3)]
    ↳ Logitech USB Receiver                     id=18   [slave  keyboard (3)]
    ↳ MCE IR Keyboard/Mouse (mceusb)            id=19   [slave  keyboard (3)]

решение1

gsettings set org.gnome.desktop.peripherals.mouse natural-scroll false
gsettings set org.gnome.desktop.peripherals.touchpad natural-scroll true

Если вы получаетенет такого ключа, запустите dconfи найдитепрокрутитьилипрокрутка.

решение2

Это не настоящее решение, но вот небольшой скрипт на Python, который я написал для переключения масштаба дисплея и направления мыши, для переключения между столом (мышь и 100%) и диваном (трекпад и 200%).

Надеюсь, это будет полезно.

#!/usr/bin/python3

import subprocess
import sys

current = subprocess.check_output([
    'gsettings',
    'get',
    'org.gnome.desktop.interface',
    'scaling-factor'
])

if current == b'uint32 2\n':
    scale = 1
    natural = 'false'
elif current == b'uint32 1\n':
    scale = 2
    natural = 'true'
else:
    sys.exit('cannot determine current scale')

subprocess.call([
    'gsettings',
    'set',
    'org.gnome.desktop.interface',
    'scaling-factor',
    '%d' % (scale,)
])
subprocess.call([
    'gsettings',
    'set',
    'org.gnome.settings-daemon.plugins.xsettings',
    'overrides',
    "{'Gdk/WindowScalingFactor': <%d>}" % (scale,)
])
subprocess.call([
    'gsettings',
    'set',
    'org.gnome.desktop.peripherals.mouse',
    'natural-scroll',
    natural
])

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