Gerakan multitouch pada touchpad

11

Saya ingin tahu bagaimana saya bisa mengonfigurasi gerakan multi-sentuh di Ubuntu. Di windows saya bisa melakukan ini menggunakan perangkat lunak driver sinaptik.

Saya sudah terbiasa synclientmengkonfigurasi tap, palmdetect, gulir, dll. Tapi saya juga ingin dukungan gerakan. Apakah mungkin?

System-Info: Ubuntu 12.10, Synaptics clickpad

kapad
sumber
ingin menentukan beberapa detail: Yang ingin saya lakukan adalah untuk dapat mengkonfigurasi gerakan untuk tombol back / forward browser / nautilus. Di windows saya bisa melakukan ini dengan sapuan 3 jari. Demikian pula untuk memperkecil / membuka semua windows. Di Win7 ini dapat dilakukan dengan sapuan empat jari baik ke atas atau ke bawah. Saya ingin hal-hal yang mirip dengan Mac. Apakah ini mungkin?
kapad

Jawaban:

11

Pembaruan 9/15/2016 Multitouch berfungsi dengan baik, dan semua solusi yang tercantum di bawah ini (mtrack, synclient, ginn, ...) akan mengacaukan semuanya, jadi jika Anda memperbarui dari kernel lama yang membutuhkannya, hapus semua aplikasi pembantu dan coba perilaku kernel out-of-box dengan touchpad ui untuk manajer desktop Anda. Ini harus melakukan apa yang Anda butuhkan, dan jika Anda menginginkan lebih banyak gerakan dan hal lain, tambahkan easystroke yang berfungsi dengan baik. Ini diurutkan dalam driver input kernel sekarang dan bekerja tanpa masalah karena setidaknya kernel 4.1.32, meskipun beberapa kernel 4.0 4.0 awal tidak akan berfungsi. Kernel LTS saat ini, 4.4 berfungsi dengan baik, seperti halnya 4.7.

perbarui 9/2015 ... kernel di atas 3.14 atau lebih memiliki multitouch bawaan sekarang, jadi coba hapus instalan mtrack jika Anda memiliki masalah. hanya driver multitouch bawaan dan easystroke yang bekerja dengan baik untuk saya sejak kernel 3.14, meskipun versi 4.0 ke atas tampaknya memiliki regresi yang merusak trackpad apel. 3,18 kernel bekerja dengan baik.

Ada banyak solusi, yang sebagian besar masih setengah matang. Banyak yang didokumentasikan kedaluwarsa, jadi pastikan Anda melihat tanggal apa pun yang Anda cari di Google.

Ubuntu telah membangun dukungan gerakan dasar (2 jari) di applet pengaturan mouse / touchpad.
Saya menemukan itu terkelupas secara acak dan menggulirkan dua jari kemudian akan secara misterius diklik, menempatkan saya pada rantai panjang googling untuk mungkin mendapatkannya kembali.
Lalu saya mencoba touchegg, yang kadang-kadang berfungsi.
Ini adalah yang termudah untuk dikonfigurasikan dan ada instruksi yang baik tetapi didasarkan pada solusi daemon yang lebih lama untuk masalah tersebut.
Ubuntu multitouch howto (Anda harus mencarinya di Google karena saya hanya dapat menyertakan dua tautan) sudah usang tetapi perlahan-lahan mulai dikerjakan. Ini semacam menawarkan satu set solusi tambal sulam, tetapi sedang dalam proses mendapatkan pembaruan.

Solusi yang saya gunakan saat ini adalah mtrack (dalam repos) dikombinasikan dengan easystroke (harus dikompilasi dari sumber).
Mtrack mendukung versi multitouch kernel daripada solusi ad hoc seperti touchegg dan ginn jika saya mengerti benar, tetapi easystroke adalah solusi daemon lain yang tampaknya berfungsi dengan baik untuk saat ini di atas mtrack.

Pendekatan Mtrack tampaknya adalah arah pengembangan yang diambil.

hapus instalan hal-hal lain (ginn, touchegg) jika Anda menggunakannya dan kemudian instal mtrack dari repo nama lengkapnya adalah xserver-xorg-input-mtrack .

Sangat sulit untuk mengkonfigurasi dan saya belum mendapatkan tiga jari untuk menggesek. Lihat tautan di akhir utas untuk berbagai file konfigurasi orang. Saya menggunakan trackpad apel ajaib dan cukup bagus untuk itu, meskipun memiliki satu kesalahan yang mengganggu di ketuk ganda dan seret misalnya untuk memindahkan jendela yang tidak menentu. solusinya adalah baik menggunakan klik tombol yang sebenarnya untuk memindahkan windows, atau untuk ragu sepersekian detik setelah ketuk dua kali dan tahan sebelum memindahkan jendela.

Saya baru saja menemukan easystroke , dan sampai mtrack mendapat gui Anda mungkin ingin mencobanya jika Anda cukup berani untuk mencoba menyusun program.

Setelah dikompilasi dengan menjalankan make -j2dan menginstal oleh sudo make install, mulai dengan easystroke -guntuk mendapatkan GUI dan pergi ke halaman wiki untuk instruksi.

Satu masalah lain yang perlu Anda selesaikan adalah driver.

Jika Anda menggunakan mtrack , Anda mungkin perlu memberi nomor baru pada file sehingga driver mtrack Anda dibaca terakhir atau pengaturan sinaptik akan mengambil semuanya.

Driver-driver tersebut disimpan di /usr/share/X11/xorg.conf.d .

salin driver mtrack ke /etc/X11/xorg.conf.d , edit pengaturan di folder itu (lihat utas terkait dan README untuk caranya) untuk mendapatkan kebaikan tiga jari Anda jika Anda bisa (atau menggunakan easystroke ), dan ganti nama file ke nomor yang lebih tinggi sehingga 50-mtrack.conf menjadi 60-mtrack.conf , kalau tidak saya menemukan driver synaptic akan mengambil touchpad Anda separuh waktu.

Menempatkan file di / etc berarti file itu tidak akan ditimpa pada pembaruan seperti file / usr , dan itu dibaca terakhir dan dengan demikian mengambil prioritas di atas driver default di / usr .

Semoga ini membantu. Ini adalah area pengembangan yang cukup aktif, jadi apa pun yang saya tulis mungkin akan usang dalam satu tahun, semoga menjadi lebih baik.

Richard Rath
sumber
Hai terima kasih atas jawaban yang bagus ini. Maaf butuh beberapa saat untuk memeriksanya :)
kapad
Ada berita tentang solusi yang tepat tentang masalah ini? Masih tidak bisa membuatnya bisa
diterima
Tampaknya ada paket easystroke saat ini, dan opsi -g tidak diketahui. Tanpa argumen, itu memulai GUI. :) PS: Saya menjalankan Mint 16.
Herbert
2

Saya hanya ingin menyarankan menggunakan kelanjutan mtrack saya yang tersedia di github: https://github.com/p2rkw/xf86-input-mtrack , karena mendukung seret 3 jari (instruksi di bagian bawah readme).

Saya juga menggunakannya bersamaan dengan easystroke, tetapi saya harus memodifikasi easystroke untuk menghapus batasan tentang perangkat absolut, dengan perubahan sederhana ini (saya tidak ingat alasan pasti untuk melakukan ini, maaf):

diff --git a/handler.cc b/handler.cc
index 8830ea2..c9e3f91 100644
--- a/handler.cc
+++ b/handler.cc
@@ -563,7 +563,7 @@ protected:
        }
 protected:
        void move_back() {
-               if (!prefs.move_back.get() || (xstate->current_dev && xstate->current_dev->absolute))
+               if (!prefs.move_back.get())
                        return;
                XTestFakeMotionEvent(dpy, DefaultScreen(dpy), orig_x, orig_y, 0);
        }

Saya juga mengurangi margin kesalahan untuk gerakan:

diff --git a/gesture.cc b/gesture.cc
index 8531c08..0df990e 100644
--- a/gesture.cc
+++ b/gesture.cc
@@ -104,9 +104,9 @@ int Stroke::compare(RStroke a, RStroke b, double &score) {
                return -1;
        score = MAX(1.0 - 2.5*cost, 0.0);
        if (a->timeout)
-               return score > 0.85;
+               return score > 0.95;
        else
-               return score > 0.7;
+               return score > 0.92;
 }

... dan itu bekerja dengan baik.

Catatan samping tentang konfigurasi yang menyakitkan: Anda dapat menggunakan xinput untuk mengkonfigurasinya dengan cepat, kemudian mengedit xorg.conf yang sesuai, atau membuat skrip startup dengan doa xinput.

p2rkw
sumber