imperador / chromefy

Project Croissant: Install Chrome OS on any Computer - Transforming Chromium to Chrome
GNU General Public License v3.0
881 stars 80 forks source link

Touchpad Lag/No Gesture Support #23

Open strayexplorer opened 5 years ago

strayexplorer commented 5 years ago

I assembled a ChromeOS image using arnoldthebats Chromium image, eve, and caroline per the recommendations because that seemed to be the best for my device(Dell e7250 i7 5th, trackpad registers as AlPS/2 ALPS Glidepoint via evtest). Everything else seems to work including the touch screen, but trackpad is laggy(as if it sticks) and multitouch gestures(3+) and tap to click/right click don't work. 2 finger scrolling and pinch to zoom do, however. I have tried various workarounds including editing /etc/chrome_dev.conf, /etc/gesture/40-touchpad-cmt.conf and 50-touchpad-cmt-eve.conf(the latter of which I don't think would do anything considering it doesn't share the same identifier) and editing the grub.conf to try and force different drivers. Everything else otherwise works fine.

I remember(inversely) that when I was putting ubuntu on my old falco that I needed to add/change some synaptics finger settings to the .conf file and I wonder if something's just missing there. I used the Special .img build and the trackpad works fine in Ubuntu live, as I got to test it there when I was resizing partitions.

One last thing, although I don't think it matters, but I installed via writing the image to my drive directly with rufus and an external msata reader, afterwhich I resized the partitions.

One last edit: the trackpad isn't so much laggy or glitchy as it is that it hesitates before it starts moving. If I get it moving and keep it moving, even varying my pace it tracks accurately. This, again, makes me think there could be something to do with the conf file needing some settings adjusted but I'm not sure.

strayexplorer commented 5 years ago

Upon further research and testing different distros this seems to be a driver issue and not a config issue. Libinput doesn't seem to support multitouch on my trackpad and I assume cmt is built on it, but synaptics works. Any way to get synaptics driver to work with the default gestures?

NSbuilder commented 5 years ago

With the latest version of the required files, I am now able to use trackpad gestures.

dragon788 commented 5 years ago

For those who come after, you can modify the settings for the touchpad and other input devices in the files under /etc/gesture/.

  1. Press Ctrl+Alt+T and then type shell at the crosh prompt and hit Enter
    • This is assuming you are in developer mode on a non-verified boot machine)
  2. Run sudo mount -o rw,remount /
  3. Run evtest < /dev/null to see the list of devices, you should see an Alps/Synaptics/PS2 entry for your touchpad.
  4. Edit the file(s) using sudo vim /etc/gestures/* -p
    • The file where you likely will find your device is 40-touchpad-cmt.conf, but the others show examples of settings that you might be able to borrow.
    • You can cycle through the tabs in vim by pressing gt or gT in "Normal mode" (as opposed to "Insert mode", hit Esc to go back to Normal mode if you aren't sure which one you are in). Pressing i enters "Insert mode" to let you type or paste in new lines with Ctrl+Shift+C, and then pressing Esc goes back to and you can use :wq use to save and close each file.
  5. To test what you changed use chrome://restart in the omnibar to quickly restart the UI without rebooting the whole system.

See also https://github.com/arnoldthebat/chromiumos/issues/128#issuecomment-418272523

ckopsa commented 5 years ago

@NSbuilder What are the required files and how did you acquire the latest version of them?

dragon788 commented 5 years ago

The touchpad driver configs come with ChromiumOS and are probably overwritten based on which ChromeOS recovery you are using. A selection of the configs are also available for GalliumOS and can be seen here to compare with what your machine has and modified as necessary to fix the sensitivity.

https://github.com/hugegreenbug/xf86-input-cmt/tree/master/xorg-conf