web-dev-qa-db-ja.com

タッチスクリーンでマウスの右ボタンクリックをエミュレートする方法は?

私の新しいタッチスクリーンラップトップにはメニューボタンがありません(つまり、マウスの右クリックのように動作します)-通常は右のctrlの隣にあります。

タッチで左クリックできないため、この機能のAlt GRのカスタムキーボードショートカットを作成しようとしています([システム]> [キーボード]> [ショートカット]> [カスタムショートカット])

オンボードキーボード(メニューボタンがある)でxevコマンドを使用すると、ボタン情報が次のようになることがわかりました。

KeyRelease event, serial 42, synthetic NO, window 0x4800001,
    root 0xab, subw 0x0, time 2544690, (1236,607), root:(1302,1050),
    state 0x0, keycode 135 (keysym 0xff67, Menu), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

しかし、私はこの情報をどうすればいいのか分かりません...

ところで、Ubuntu 13.04を使用しています。

どんな助けでも大歓迎です...

9
Ismail Moghul

gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true"またはdconfエディターを使用して、(Alinaがコメントしたように)2次クリックを有効にする必要があります。

次に、Ubuntuがタッチパッドをタッチパッドのように部分的に処理する可能性があります。代わりに、ショートタップ+長押しする必要があります。

12
Freddi Schiller

2〜3秒間画面に触れ続けると、「右メニュー」と呼ばれるものが表示されます。これは、タッチスクリーンで右クリックをエミュレートする通常の方法です。

6
Radu Rădeanu

Wacomタッチスクリーン(ドライバーxf86-input-wacomを使用)があり、少なくとも2本の指でマルチタッチできる場合、次のようにすると右クリックが生成されます。

  1. 最初の指で長押しします。
  2. 次に、2本目の指でタップします。

まだ機能しない場合は、xinput --listからタッチスクリーンの製品名を見つけて、この機能を有効にしてください:

xsetwacom --set "[your touchscreen product id]" Gesture on

この変更を永続的にするには、 私の他の答えを参照 テクニックについて。

Gnome/Ubuntu Shellでの長押しの右クリックとは異なり、これは(レガシー)ドライバーレベルの機能であるため、すべてのデスクトップ環境で機能します。一部のプログラムでは タッチスクリーンによる左クリックで問題が発生する可能性があります であることに注意してください。これが、システムで無効にする必要がある理由です。

1
tanius

この質問に対する私の答えのうち、これは私の個人的なお気に入りです。

少なくとも2本指のマルチタッチ入力をサポートするタッチスクリーンがある場合は、 touchegg をインストールし、2本指タップを右クリックとして解釈するように構成できます。これをLubuntu 18.10で試しましたが、うまくいきます。

1.インストール

toucheggはUbuntu 18.10リポジトリで使用できるため、次のように簡単にインストールできます。

Sudo apt install touchegg

開始するには、toucheggを実行します。ターミナルで実行すると、マルチタッチジェスチャを正しく検出したかどうかを出力から確認できます。

toucheggを各LXQtセッションで自動的に開始するには、単純に自動開始に追加します(LXQtメニュー→設定→LXQt設定→セッション設定→自動開始)。

2. toucheggを設定する方法

toucheggは、2つの代替方法で構成できます。

  • 設定ファイルを使用した設定ファイル~/.config/touchegg/touchegg.confを編集します。変更を有効にするには、ターミナルで次を実行するか、 Alt + F2 実行ダイアログ:

    killall touchegg; touchegg
    
  • GUIを使用した設定。toucheggには、touchegg-guiという素敵な設定GUIがあります。これは seen です。ただし、touchegg Ubuntuパッケージの一部ではありません。または、GUI touchegg-gceここで説明するとおり をインストールできます。 touchegg-gceは機能しますが、構成ファイルへの変更を保存した後、再度実行してtoucheggを手動で再起動する必要があります。

    killall touchegg; touchegg
    

3.右クリックをエミュレートするための構成

2本指タップの右クリックを構成するには、この構成ファイルを~/.config/touchegg/touchegg.confに使用できます。

<touchégg>
        <settings>
                <property name="composed_gestures_time">0</property>
        </settings>

        <application name="All">
                <gesture type="TAP" fingers="2" direction="">
                        <action type="MOUSE_CLICK">BUTTON=3</action>
                </gesture>
        </application>
</touchégg>

touchegg構成に関するコメント:

  • 上記の2本指タップの右クリックは、現在toucheggに付属するデフォルトの構成ファイルに既に含まれています。 (Ubuntu 18.10はこちら。)

  • プログラムは、composed_gestures_time(ミリ秒単位で与えられます)を待って、複数の部分(トラブルタップなど)で構成されるジェスチャのアクションを完了してから、それらを解釈します。したがって、toucheggを2本指タップの右クリックなどのシングルパートジェスチャにのみ使用する場合は、これを0に設定して、アクションの顕著な遅延を防ぐことができます。これは、toucheggによって作成された構成ファイルのデフォルトでもあります。

  • 少なくとも私のタッチスクリーンでは、両方の指でまったく同時に画面に触れると、2本指でのタップは認識されません。ただし、非常に小さな時間差(2回のタップ、おそらく10ミリ秒以上)がある場合でも、確実に機能します。そのため、人差し指と中指を画面に向かってわずかに垂直方向の隙間を空けて動かすだけで、確実に機能します。

  • 右クリックは、最初に画面に触れた指(このジェスチャーの2本のうち)の位置でトリガーされます。

  • toucheggは、カーソルの下のアプリケーションまでバブルするように構成されていないすべてのイベントをそこで解釈できるようにします。たとえば、Chromium、Chrome、Evinceに実装されているネイティブのピンチズームなどは、toucheggを使用するよりもスムーズに機能するため、これは良いことです。

  • toucheggは、(非常にお勧めです!)シングルタッチジェスチャ認識ソフトウェアと一緒に使用できます easystroke 干渉なし。もちろん、同じイベントによってトリガーされるように構成しないでください。

4.トラブルシューティング

  • toucheggは、一時停止と再開のサイクルの後に停止する場合があります。自動的に再起動する方法を見つける必要があります。

  • 少なくとも私にとっては およびその他toucheggはタッチスクリーンではなくタッチスクリーン上のタッチイベントのみを解釈します。この場合、これは望ましいことです。私のタッチパッドは、マルチタッチイベントをXサーバーに公開しないドライバーを使用している可能性があります(synapticsではなく、libinput)。 GEIS_DEBUG=3 toucheggで起動することにより、toucheggがバインドするデバイスを確認できます。

  • toucheggがすべてのプログラムで一種の「スタックハーフクリック」を引き起こす場合、タップはマウスポインターを移動しますが、左クリックをトリガーしなくなります。これは通常の動作ですnot。 LXQtを使用したUbuntu 18.10では、最初はこれがありませんでしたが、その後toucheggを何度か再起動したり、コンピューター全体を再起動したりしました。デフォルトのUbuntuデスクトップを起動してからLXQtに戻ると消えました。

    1本指でタップするために追加のジェスチャーを設定することでtouchegg構成ファイルを修正すると、「スタックハーフクリック」が修正されますが、このバグに伴うtoucheggのその他の誤動作は残るため、実際の修正ではありません。この誤動作には、(1)toucheggが設定されていないすべてのイベント、少なくとも1本の指のイベントも消費するようになり、(2)いくつかのJavaベースのプログラム(freemindなど)が影響を受けるようになりました「スタックしたハーフクリック」の逆の問題から、カーソル位置はスタックしますが、マウスの左ボタンクリックは登録されます。これは、toucheggが認識できるように、Javaベースのプログラムで2本指アクションを実行することにより一時的に修正されます。

0
tanius

havehave  メニューキー キーボードで、それを使用して右クリックを作成することに関する質問のメモは、実際には素晴らしいアイデアです。明らかではないので、以下にその仕組みを示します。

  1. 1本の指で画面をタップアンドホールドします。指を離さないでください。左クリックがトリガーされます。あなたの申請。ただし、タップアンドホールドは、マウスの左ボタンを押して放さないようなもので、通常はアプリケーションでアクションが発生しません。ただし、マウスポインターの位置は既に右クリックする場所に変更されているため、この手順を実行します。

  2. を押して放します  メニューキー。すでにキー押下イベントで、右クリックがトリガーされます。

明らかに、この手法には両手が必要であり、タブレットモードのコンバーチブルノートブックでは完全に不可能です。そのため、実際の使用は限られています。

0
tanius

easystroke を使用して、次のような修飾子とタップを使用して右クリックを作成できます。 Ctrl + Alt +タップします。追加の設定を行うと、タッチスクリーンだけでこれに片手でアクセスできます。以下を参照してください。

右クリックとしての「修飾子とタップ」はtouchegg(修飾子を認識しない)、mouseemu(スキャンコードがないためタップを認識しない)、またはxsetwacom "…" set Button 1 …(しない指入力はドライバーのボタンイベントではないため、タップを認識します)。

1.インストール

easystrokeプログラムは現在最小限に維持されていますが、 リリースノート では、Ubuntu 18.04でビルドされた最近のUbuntuパッケージにリンクしています。私にとってはうまくいきました(Ubuntu 18.10はこちら)。次のようにインストールできます。

wget http://openartisthq.org/easystroke/easystroke_0.6.0-0ubuntu8_AMD64.deb
Sudo apt install ./easystroke_0.6.0-0ubuntu8_AMD64.deb

2.設定

  1. easystrokeを使用してプログラムを開始します。

  2. 2番目のタブ「設定」の下で、「ジェスチャーボタン」をクリックし、 Ctrl + Alt +灰色のフィールドをタップします。 Ctrl + Alt 少なくともLXQtの下では、修飾子の最適な選択のようです。

    • 両方 Shift +クリックして Ctrl +クリックはすでに複数選択に使用されており、easystrokeに割り当てられている場合はその選択ができなくなります。
    • Alt、 Super および関連する任意の組み合わせ Super easystrokeには表示されません。これはおそらくLXQtまたはOpenboxの構成の問題ですが、これまでのところ解決できませんでした。
  3. 最初のタブ「アクション」の下で、「アクションの追加」をクリックします。

  4. 「タイプ:コマンド」と「詳細:xdotool keyup ctrl alt; xdotool click 3」でアクションを設定します。選択した修飾子に従って適応します。

    修飾子に応じて、副作用を防ぐために最初に修飾子をクリアすることが重要です。例えば Shift + Chromeを右クリックすると、テキストが選択されます。また、ソフトウェアでこれらのキーを押したときに修飾子がスタックしないように、修飾子を明示的にクリアする必要があります(以下のセクション3を参照)。コマンドを実行する前に修飾子を単独でクリアしないことは、easystrokeのバグと見なすことができます。

  5. 「ストロークの記録」をクリックして、シングルタップを記録します。

  6. [設定]→[外観]→[ポップアップを表示]で(ここではかなり役に立たない)ポップアップを無効にできます。

  7. このジェスチャ認識は、[詳細設定]→[デバイス]でタッチスクリーンとペン入力デバイスのみに制限できます。

さて、 Ctrl + Alt +タップすると、右クリックが作成されます。

easystrokeには、タッチスクリーンの使用中に多くのタスクを自動化するために使用できるシングルタッチジェスチャ(「画面に図形を描く」)のための優れたジェスチャ認識があります。これが主な目的ですが、右クリックエミュレーションは単なる副作用です。

3.改善:タッチのみの右クリック

この設定を改善して、(1)「次のタップは右クリック」を意味する特別な画面上のボタンをタップし、(2)次にタップすることで、片手とタッチスクリーンで右クリックをトリガーできるようにします。通常どおり画面に表示されます。

以下はLubuntu(LXQt)のレシピであり、 Ctrl + Alt 上記の修飾子を選択しますが、原則はすべてのデスクトップ環境とすべての修飾子で同じです:パネルのカスタムクイック起動エントリ。

  1. クイック起動エントリのカスタムアイコンを作成し、~/.icons/default/rightclick.pngとして保存します。

  2. 次の内容で、カスタム.desktopファイルを作成し、.local/share/applications/rightclick.desktopとして保存します。絶対パスにusernameを指定する必要があることに注意してください。

    [Desktop Entry]
    Name=Rightclick
    Comment=Next tap is a rightclick via Ctrl + Alt + easystroke gesture.
    Icon=/home/matthias/.icons/default/rightclick.png
    Exec=xdotool keydown ctrl alt
    Type=Application
    Categories=System;Utility;
    StartupWMClass=localdomain.rightclick
    
  3. 別のクイック起動ウィジェットをLXQtパネルに追加します。原則として既存のものを変更することもできますが、画面の右下隅に配置されたものは右手操作で最も自然であり、偶発的なミスクリックは日付のみを表示します(それが隣にある場合私の場合のように)いくつかの大きなアプリケーションを起動する代わりに。

  4. ~/.config/lxqt/panel.confを開き、新しい[quicklaunch2]セクションを調整して、カスタム.desktopファイルを参照します。繰り返しますが、usernameを指定する必要があります。外観例:

    [quicklaunch2]
    alignment=Left
    apps\1\desktop=/home/username/.local/share/applications/rightclick.desktop
    apps\size=1
    type=quicklaunch
    
  5. LXQtパネルを再起動して、変更を有効にします。そのために:

    1. 「LXQtメニュー→設定→LXQt設定→セッション設定」に進みます。
    2. 「基本設定→LXQtモジュール→パネル」を選択します。
    3. 「停止」をクリックします。
    4. 「開始」をクリックします。

    (また、killall lxqt-panel && lxqt-panelを実行することもできます Alt + F2 ダイアログを起動しますが、それは上記のダイアログで認識されるパネルステータスに干渉します。両方のテクニックを組み合わせた場合、2つのパネルが互いに重なり合って、1つのパネルアイコンが欠落します。しないでください。これはまだバグがあります。)

また、タッチスクリーンの側面に特別なハードウェアボタンがある場合は、代わりにxdotool keydown ctrl altコマンドをそれらのいずれかに割り当てることができます。

4.その他の改善とトラブルシューティング

  • ニースの副作用として、上記のタッチのみの右クリックの手法は、easystrokeで設定した他のすべてのジェスチャーへの片手アクセスも可能にします。これは、タッチスクリーンの使用を自動化するための非常に強力な機能です。

  • easystrokeで他のジェスチャーを構成する場合、次のバグに注意してください。easystrokeは、構成されたアクションを実行する前に、選択した修飾子をクリアしません。アクションタイプ「キー」と「テキスト」はすべて、キーの組み合わせになります Ctrl + Alt 上記の場合、使用できなくなります。回避策として、代わりにアクションタイプ「コマンド」を選択し、上記と同じ方法で修飾子を自分でクリアします。だからトリガーする Ctrl + V、コマンドは次のようになります。

    xdotool keyup ctrl alt; xdotool key "ctrl+v"
    

    xdotoolオプション--clearmodifiersは、キーの組み合わせ中に修飾子を無効にして実行し、後で再適用するだけなので、ここでは役に立ちません。この場合、上記の手法に従って次のタップを右クリックします。 、しかしこの場合はそれは望ましくありません。)

  • テスト中にモディファイヤをスタックしたことがある場合、物理キーボードのモディファイヤキーを押して放すと、状態が修正されます。

  • これらのテスト中に、LXQtのキーボードイベントとマウスイベントが非常に混乱することがあります。このような場合、グラフィカル環境からログアウトして再度ログインするだけで役立ちました。

  • ここで必要な右クリックの場合を含め、easystrokeで片手タッチのみの操作を実装する最もクリーンな方法は、easystrokeパネルアイコンをタップすると、構成されたカスタムパネルアイコンと同じ内部状態になります上記ですが、without実際にキーボードモディファイヤの状態を変更すると、モディファイヤのスタックなどにつながる可能性があります。easystrokeウィンドウを表示するには、パネルアイコンのコンテキストメニュー。明らかに、それにはeasystrokeコードのいくつかの変更が必要です。

0
tanius