web-dev-qa-db-ja.com

タッチパッドでのマルチタッチジェスチャ

Ubuntuでマルチタッチジェスチャを構成する方法を知りたいと思いました。 Windowsでは、synapticsドライバーソフトウェアを使用してこれを行うことができます。

私はすでにsynclientを使用してタップ、手のひら検出、スクロールなどを設定しました。しかし、ジェスチャーのサポートも必要です。可能ですか?

システム情報:Ubuntu 12.10、Synapticsクリックパッド

11
kapad

Update 9/15/2016 Multitouchはそのまま使用でき、以下にリストされているすべてのソリューション(mtrack、synclient、ginnなど)が混乱するため、それらを必要とする古いカーネルから更新する場合は、すべて削除しますヘルパーアプリを使用して、デスクトップマネージャーのタッチパッドUIを使用して、すぐに使用できるカーネルの動作を試してください。必要なことを行う必要があり、さらにジェスチャーやものが必要な場合は、イージーストロークを追加してうまく機能します。初期の4.0カーネルの一部は機能しませんが、現在は標準のカーネル入力ドライバーでソートされ、少なくともカーネル4.1.32以降は問題なく動作します。現在のLTSカーネル4.4は、4.7と同様に正常に機能します。

アップデート9/2015 ...カーネル3.14以上では、ほとんどのマルチタッチが組み込まれているため、問題がある場合はmtrackをアンインストールしてみてください。カーネル3.14以降、組み込みのマルチタッチドライバーとeasystrokeだけが正常に機能していますが、4.0以上ではAppleトラックパッドを壊す退行があるようです。しかし3.18カーネルはうまく機能します。

多数のソリューションがありますが、そのほとんどはまだ少し中途半端です。文書化されたものの多くは古くなっていますので、グーグルの日付を必ず確認してください。

Ubuntuには、マウス/タッチパッド設定アプレットの基本的なジェスチャー(2本指)のサポートが組み込まれています。
ランダムにくすぶっていると、2本の指のスクロールが不思議な灰色で表示され、それを取り戻すためにグーグルの長いチェーンに引きずり込まれます。
それからtoucheggを試してみました。
構成するのが最も簡単で、適切な指示がありますが、問題に対する古いデーモンソリューションに基づいています。
ubuntuマルチタッチハウツー(2つのリンクしか含めることができないため、グーグルで検索する必要があります)が古くなっていましたが、徐々に取り組んでいます。パッチのようなソリューションの別のセットを提供しますが、更新中です。

私が現在使用しているソリューションは、 mtrack (リポジトリ内)と easystroke (ソースからコンパイルする必要がある)を組み合わせたものです。
Mtrackは、toucheggやginnのようなアドホックソリューションではなく、カーネルバージョンのマルチタッチをサポートしていますが、easystrokeは、mtrackの上で今のところうまく機能する別のデーモンソリューションです。

Mtrackのアプローチは、開発の方向性のようです。

他のものをアンインストールします(ginn、touchegg)それを使用し、リポジトリからmtrackをインストールする場合フルネームはxserver-xorg-input- mtrack

設定するのは苦痛で、3本の指でスワイプすることはありません。人々のさまざまな設定ファイルについては、スレッドの最後にあるリンクを参照してください。私はAppleマジックトラックパッドを使用していますが、そのためにはダブルタップとドラッグで面倒な不具合が1つありますが、ウィンドウを移動するのは不安定です。回避策は、実際のボタンクリックを使用してウィンドウを移動するか、ダブルタップしてからウィンドウを移動する前に1秒待ってから待つことです。

私はちょうどeasystrokeを見つけたので、mtrackがguiを取得するまで、プログラムをコンパイルするのに十分な冒険をしているなら、それを試してみてください。

make -j2を実行してコンパイルし、Sudo make installでインストールしたら、easystroke -gで起動してGUIを取得し、手順についてwikiページに移動します。

あなたが整理する必要があるかもしれないもう一つの問題は、ドライバーです。

mtrackを使用する場合、mtrackドライバーが最後に読み込まれるようにファイルの番号を変更するか、synaptics設定はすべてを取得します。

これらのドライバーは/ usr/share/X11/xorg.conf.dに保存されています。

mtrackドライバーを/ etc/X11/xorg.conf.dにコピーし、設定を編集します可能であれば(またはeasystrokeを使用)3本の指の良さを取得し、ファイルの名前を変更するには、そのフォルダー(リンクされたスレッドとREADMEを参照) 50-mtrack.confはより大きな数になり、60-mtrack.conf、そうでない場合、シナプスドライバーがタッチパッドを半分の時間でつかむことがわかりました。

/ etcにファイルを置くことは、/ usrファイルのような更新で上書きされず、読み取られることを意味します最後に、したがって/ usrのデフォルトのドライバーよりも優先されます。

お役に立てれば。これはかなり活発に開発されている分野なので、私が書いたものはおそらく1年以内に陳腐化するでしょう。

11
Richard Rath

私はgithubで利用可能なmtrackの続きを使用することを提案したかっただけです: https://github.com/p2rkw/xf86-input-mtrack 、そのまま3本指ドラッグ(readmeの下部にある指示)をサポートします。

また、easystrokeと組み合わせて使用​​していますが、easystrokeを変更して、絶対的なデバイスに関する制限を削除する必要がありました。

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);
        }

また、ジェスチャーのエラーマージンを減らしました。

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;
 }

...そしてそれは素晴らしく機能します。

苦痛な設定に関する補足事項:xinputを使用してその場で設定し、それに応じてxorg.confを編集するか、xinput呼び出しで起動スクリプトを作成できます。

2
p2rkw