Trackpad two finger scrolling lags to get started

Discussion in 'Linux Virtual Machine' started by viola, Aug 18, 2020.

  1. viola

    viola Hunter

    Messages:
    149
    Very painful trackpad experience with Ubuntu 20.04 when scrolling in a browser like Firefox or Chrome or elsewhere. It seems to lag at first before the scrolling starts. It is just very non-mac like in its behavior. Please test the trackpad scrolling functionality more in Linux guests for trackpads like MagicTrackpad.
     
    Adrian8 likes this.
  2. Hello, could you please provide us with the tech report once the issue reproduced please?
     
  3. We're still looking forward to your reply.
    Please contact us at your earliest convenience.
    Thank you for your time.
     
  4. Phil Dennis

    Phil Dennis Bit poster

    Messages:
    3
    I am seeing the same issue as reported here.
    Parallels Desktop 16
    Fresh Ubuntu Linux 20.04 virtual machine (today) as provided by Parallels
    2-finger scrolling when in Ubuntu proceeds in jumps. So when first moving the 2 fingers slowly, no scrolling occurs. After moving the 2 fingers slowly about half an inch upward (for example) on the touch pad the window contents will then scroll upwards by maybe a couple of lines of text. Continuing to move the 2 fingers slowly upwards, after another half an inch the window contents will scroll again by another couple of lines. Scrolling can be made to move balisticaly with faster finger movements but overall it feels laggy, slow to respond and hard to control. This behavior occurs in all the applications I've tried that support scrolling (e.g. FireFox, System Monitor, OpenOffice, Terminal.
    Ubuntu is other wise normal and responsive. Scrolling using the scroll bars is smooth and normal
    I will submit a tech report now as you had requested the other person reporting this issue.
     
  5. Phil Dennis

    Phil Dennis Bit poster

    Messages:
    3
    Report ID: 351913836
     
  6. (GalaxyMaster)

    (GalaxyMaster) Hunter

    Messages:
    119
    I am not sure that Parallels will be able to solve this unless they re-design their ToolGate interface to present a virtual touchpad to the guest when the host is driven by the touchpad. I looked into the issue of smooth scrolling on Linux several times and it is not such a happy environment in this sense, there are dragons out there.

    A good and _very_ comprehensive read on the topic can be found over there: https://pavelfatin.com/scrolling-with-pleasure/ . I short even if Parallels do everything they can to provide a precision pointer it is unlikely that you will get the smooth and responsive scrolling in the system. A good start would be to switch to libinput and ensure that you are ready for any changes Parallels may introduce to their ToolGate interface.

    For example, right now on a Linux guest where the pointer is driven by libinput you can see the following:
    Code:
    [galaxy@archlinux ~]$ xinput list
    ⎡ Virtual core pointer                        id=2    [master pointer  (3)]
    ⎜   ↳ Virtual core XTEST pointer                  id=4    [slave  pointer  (2)]
    ⎜   ↳ Parallels Virtual Mouse                    id=8    [slave  pointer  (2)]
    ⎜   ↳ Parallels Virtual Mouse                    id=9    [slave  pointer  (2)]
    ⎜   ↳ ImExPS/2 Generic Explorer Mouse            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)]
        ↳ Sleep Button                                id=7    [slave  keyboard (3)]
        ↳ AT Translated Set 2 keyboard                id=10    [slave  keyboard (3)]
    
    Here, pointer with id 8 is the whatever device is managing your cursor in the host system mapped to the virtual device presented by Paralles to your guest. I don't know why we have 3 different interfaces through the ToolGate, though.

    Code:
    [galaxy@archlinux ~]$ xinput list 8
    Parallels Virtual Mouse                    id=8    [slave  pointer  (2)]
        Reporting 7 classes:
            Class originated from: 8. Type: XIButtonClass
            Buttons supported: 11
            Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right" "Button Side" "Button Extra" "Button Forward" "Button Back"
            Button state:
            Class originated from: 8. Type: XIValuatorClass
            Detail for Valuator 0:
              Label: Abs X
              Range: 0.000000 - 65535.000000
              Resolution: 0 units/m
              Mode: absolute
              Current value: 35505.458221
            Class originated from: 8. Type: XIValuatorClass
            Detail for Valuator 1:
              Label: Abs Y
              Range: 0.000000 - 65535.000000
              Resolution: 0 units/m
              Mode: absolute
              Current value: 40043.388977
            Class originated from: 8. Type: XIValuatorClass
            Detail for Valuator 2:
              Label: Rel Horiz Scroll
              Range: -1.000000 - -1.000000
              Resolution: 0 units/m
              Mode: relative
            Class originated from: 8. Type: XIValuatorClass
            Detail for Valuator 3:
              Label: Rel Vert Scroll
              Range: -1.000000 - -1.000000
              Resolution: 0 units/m
              Mode: relative
            Class originated from: 8. Type: XIScrollClass
            Scroll info for Valuator 2
              type: 2 (horizontal)
              increment: 15.000000
              flags: 0x0
            Class originated from: 8. Type: XIScrollClass
            Scroll info for Valuator 3
              type: 1 (vertical)
              increment: 15.000000
              flags: 0x0
    
    Above, you may have spotted that the increment for scrolling is 15, so it is going to be quite jumpy. Usually, you can adjust these settings if the device exposes some capabilities for adjusting the scroll speed, however, with the current implementation the list of supported capabilities is just the following:

    Code:
    [galaxy@archlinux ~]$ xinput list-props 8
    Device 'Parallels Virtual Mouse':
        Device Enabled (116):    1
        Coordinate Transformation Matrix (118):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Natural Scrolling Enabled (255):    0
        libinput Natural Scrolling Enabled Default (256):    0
        libinput Middle Emulation Enabled (257):    0
        libinput Middle Emulation Enabled Default (258):    0
        libinput Calibration Matrix (259):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Calibration Matrix Default (260):    1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Left Handed Enabled (261):    0
        libinput Left Handed Enabled Default (262):    0
        libinput Send Events Modes Available (238):    1, 0
        libinput Send Events Mode Enabled (239):    0, 0
        libinput Send Events Mode Enabled Default (240):    0, 0
        Device Node (241):    "/dev/input/event3"
        Device Product ID (242):    8250, 65532
        libinput Drag Lock Buttons (263):    <no items>
        libinput Horizontal Scroll Enabled (264):    1
    [galaxy@archlinux ~]$
    
    So we are missing capabilities to actually fine tune the scrolling. You may try to use "evdev" driver that does support adjustments of the scroll speed, but still do not expect it to be on par with what you have on your macOS. :)
     
  7. robert34

    robert34 Bit poster

    Messages:
    3
    Same issue here. I have bought v16 upgrade specifically having in mind Linux support. Disappointing.
     
  8. KasperP1

    KasperP1 Bit poster

    Messages:
    3
    Is there any update on this? v17 definitely still has this problem.
     

Share This Page