Establecer diferentes direcciones de desplazamiento por dispositivo Ubuntu 18.04 Gnome

Establecer diferentes direcciones de desplazamiento por dispositivo Ubuntu 18.04 Gnome

Estoy usando una combinación de teclado y mouse como dispositivo de entrada principal para mi estación de trabajo.

La PC también está conectada a mi televisor. Cuando veo televisión me gusta usar un teclado barato con panel táctil. No tiene marca, pero en la parte de atrás dice:

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

Como estoy acostumbrado al "desplazamiento natural" en mi macbook, también me gustaría usarlo para mi panel táctil.

Sin embargo, me gustaría que el mouse se comportara como lo hace de forma predeterminada.

gnome-control-centersolo muestra una configuración para el mouse y el panel táctil. ¿Existe la posibilidad de configurar el comportamiento de desplazamiento por dispositivo?

Centro de control de gnomos

EDITAR: hwinfo --shortsalida, reducir a secciones relevantes.

Como puede ver, incluye mi teclado Logitech, receptor USB MCE y unknown: Keyboard controller, que sospecho que es el combo de teclado táctil, porque no hay una sección de panel táctil y /dev/input/micesolo enumera un dispositivo.

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

EDITAR 2: xinput listsalida. Uno de los HLHB155dispositivos debería ser el panel táctil.

$ 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)]

Respuesta1

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

si recibesno existe tal clave, corre dconfy buscaDesplazarseodesplazamiento.

Respuesta2

No es una solución real, pero aquí hay un pequeño script en Python que preparé para alternar el zoom de la pantalla y la dirección del mouse, para cambiar entre escritorio (mouse y 100%) y sofá (trackpad y 200%).

Espero que sea útil.

#!/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
])

información relacionada