タッチスクリーンでのマウスの右クリックをエミュレートするにはどうすればよいですか?


9

私の新しいタッチスクリーンラップトップにはメニューボタンがありません(つまり、右マウスクリックのように動作します)。これは通常、右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を使用しています。

何か助けていただければ幸いです...


私の熱望のp3、ubuntu 14.04にもまったく同じ問題があります。右クリック機能がタッチスクリーンで機能しません:(
user65390

@ user65390あなたはフレディ・シラーの答えを試してみました...
Ismail Moghul

1
あなたはこの質問を編集してマニアックさを取り除くべきです。簡単に言うと、タッチスクリーンを右クリックする方法は?現在回答されている質問は、実際には回答と一致するには技術的すぎるようです
Bhikkhu Subhuti

回答:


12

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

その後、Ubuntuがタッチスクリーンをタッチパッドのように部分的に処理する可能性があります。代わりに、ショートタップ+押し続ける必要があります。


残念ながら、この手法は、標準のUbuntuなどのGnome3ベースのデスクトップ環境に限定されています。右クリックのための長押しはChrome / Chromiumでもそのまま機能しますが、それはタッチイベントを独自に処理するためです。
tanius

6

画面を2〜3秒間押し続けると、いわゆる「右メニュー」が表示されます。これは、任意のタッチスクリーンで右クリックをエミュレートする通常の方法です。


1
おそらく、gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true"Dconf Editor によって、またはDconf Editorを介して、最初にセカンダリクリックを有効にする必要があります。
AliN 2013

上記のコマンドをターミナルに入力し、ユニバーサル設定に行って、受け入れ遅延を最小に減らしました。しかし、これでも問題は解決しません-マウスを使用するとメニューは表示されますが、タッチスクリーンを使用すると機能しません...
Ismail Moghul

1
@IsmailM次に、売り手/製造元とこれについて話し合う必要があると思います...
RaduRădeanuSep

@RaduRădeanuWindows 8が搭載されたジョンルイスからこのラップトップを持ち込みました(Windows 8ではタッチスクリーン機能が正しく動作しています)。私はubuntuを自分でインストールしたので、私はまだチャットする必要があると思いますか?
Ismail Moghul

@IsmailMはい、そうする必要があります。
RaduRădeanu2013

1

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

  1. 人差し指でタップアンドホールドします。
  2. 次に、中指でタップします。

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

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

この変更を永続的なものにするには、このテクニックに関する他の回答参照してください

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


0

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

  1. 1本の指で画面をタップして押し続けます。指を離さないでください。左クリックすると、アプリケーションに望ましくない影響を与える可能性があります。ただし、タップアンドホールドは、マウスの左ボタンを押して離さないようなものであり、通常、アプリケーションでのアクションはそれによって発生しません。ただし、マウスポインターの位置は既に右クリックする場所に変更されているため、この手順を実行します。

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

明らかに、この手法は両手を必要とし、タブレットモードのコンバーチブルノートブックでは完全に不可能です。ですから、実用性は限られています。


0

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

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

1.インストール

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

sudo apt install touchegg

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

ようにするにはtouchegg、単に(→LXQt設定→セッションの設定→自動始動がLXQtメニュー→設定)自動起動に追加し、各LXQtセッションに自動的に起動。

2.構成する方法 touchegg

次のtouchegg2つの方法で構成できます。

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

    killall touchegg; touchegg
    
  • GUIによる構成。 toucheggと呼ばれる素晴らしい設定GUI touchegg-guiがあります。ただし、toucheggUbuntuパッケージの一部ではありません。または、touchegg-gce ここで説明するようにGUI インストールできます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は、複数の部分(トゥーブルタップなど)で構成されるジェスチャーのアクションが完了するのを(ミリ秒単位で)待機してから、それらを解釈します。したがって、touchegg2本指タップの右クリックなどの単一部分のジェスチャーのみを使用する場合は、これを設定0して、アクションの顕著な遅延を防ぐことができます。これは、によって作成された設定ファイルのデフォルトでもありますtouchegg

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

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

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

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

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

  • toucheggサスペンドアンドレジュームサイクルの後で動作を停止する場合があります。それでも自動的に再起動する方法を見つける必要があります。

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

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

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


0

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

右クリックとしての「モディファイアプラスタップ」はtoucheggmouseemu(モディファイアを認識しない)、(スキャンコード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ます。
    • AltSuperおよび関連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-panelAlt+のF2起動ダイアログが、それは、上記のダイアログで認識パネルの状態を妨害する、とあなたは両方の技術を混ぜる場合は、二つのパネルには、いくつかのパネルを逃すものに、互いの上に実行されている必要があると思いますアイコンを使用することをお勧めします。これにはまだバグがあります。)

また、タッチスクリーンの横に特別なハードウェアボタンがある場合は、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パネルアイコンをタップすると、上で構成したカスタムパネルアイコンと同じ内部状態になることです。しかしせずにそれが表示さにこだわった修飾子など。につながる可能性があるため、実際にキーボードの修飾状態を変更するeasystrokeウィンドウを、一つは、そのパネルのアイコンのコンテキストメニューを使用する必要があります。明らかに、これにはeasystrokeコードのいくつかの変更が必要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.