GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

bulletmark

libinput-gestures – libinputを使用したタッチパッド上のアクションジェスチャー

投稿日:

libinputを使用したタッチパッド上のアクションジェスチャー

リボンプリント紳士

Libinput-gesturesは、あなたのタッチパッドからlibinputジェスチャを読み込み、設定ファイルで設定するジェスチャにマップするユーティリティです。 各ジェスチャーは、デスクトップ/ウィンドウ/アプリケーションのキーボードの組み合わせとコマンドを実行するためのxdotoolコマンドであるシェルコマンドをアクティブにするように設定できます。 提供されているlibinput-gestures.confファイルの例を参照してください。 これを作成する私の動機は、ワークスペースを切り替えるために3重スワイプの上/下を使用し、デフォルトの設定に従ってブラウザで前後に3回スワイプして前後に移動することです。

この小さく簡単なユーティリティは、GNOMEや他のDEのアクションlibestputジェスチャがネイティブになるまで一時的に使用することを意図しています。 libinputのlist-deviceslibinputのデバッグイベントユーティリティの出力を解析するので、出力形式のバージョン変更には少し脆弱です。

このユーティリティは、XorgとWaylandのGNOME 3 DEを使用してArch Linux上で開発され、テストされています。 Waylandでは(XWayland経由で)やや不完全に動作します。 以下のWAYLANDセクションと、デフォルトのlibinput-gestures.confファイルのコメントを参照してください。 これはKDEで動作することが報告されています。 私はこれがすべてのディストリビューションやDEなどでうまくいくかどうかはわかりません。

最新のバージョンとドキュメントはhttps://github.com/bulletmark/libinput-gesturesにあります

インストール

重要:タッチパッドデバイスを読み取る権限を取得するには、 入力グループのメンバーである必要があります。

sudo gpasswd -a $USER input

上記のコマンドを実行した後、セッションを完全にログアウトしてから、再度ログインしてこのグループを割り当てます(または再起動するだけです)。

注記:Archユーザーは、AURからlibinput-gesturesをインストールすることができます。 次に、次のCONFIGURATIONセクションにスキップします。

Python 3.4以降が必要です。python2はサポートされていません。 また、libinputリリース1.0以降が必要です。 前提条件をインストールします。

# E.g. On Arch:
sudo pacman -S xdotool wmctrl

# E.g. On Debian based systems, e.g. Ubuntu:
sudo apt-get install xdotool wmctrl

# E.g. On Fedora:
sudo dnf install xdotool wmctrl

DebianとUbuntuのユーザは、パッケージがあなたのリリースに存在する場合、 libinput-toolsをインストールする必要があります:

sudo apt-get install libinput-tools

このソフトウェアをインストールする:

git clone https://github.com/bulletmark/libinput-gestures.git
cd libinput-gestures
sudo make install (or sudo ./libinput-gestures-setup install)

コンフィグレーション

多くのユーザーはデフォルト設定に満足しています。この場合、次のように入力するだけで準備が整います。

libinput-gestures-setup autostart
libinput-gestures-setup start

それ以外の場合は、独自のカスタムジェスチャーなどを作成したい場合は、読んでください。

デフォルトのジェスチャは/etc/libinput-gestures.confます。 独自のカスタムジェスチャーを作成する場合は、そのファイルを~/.config/libinput-gestures.confコピーして編集します。 使用できるジェスチャーは次のとおりです。

  • スワイプします(例:GNOME / KDE / etcへのマップは次のワークスペースに移動します)
  • 下にスワイプします(例えば、GNOME / KDE / etcへのマップはprevワークスペースに移動します)
  • 左にスワイプします(Webブラウザへのマップなど)
  • 右にスワイプします(Webブラウザへのマップは元に戻ります)
  • ピンチイン(例:GNOMEオープン/クローズ概要へのマップ)
  • ピンチアウト(例:GNOMEのオープン/クローズの概要へのマップ)

注:タッチパッドに「自然な」スクロール方向を使用しない場合は、デフォルトの左/右および上/下の設定を入れ替えることができます。

特定の指の数を指定することができます(通常は3本または4本の指)。 指定されている場合、その数の指がジェスチャーで使用されたときにコマンドが実行されます。 指定されていない場合、そのジェスチャーが任意の数の指で実行されたときにコマンドが実行されます。 フィンガーカウントで指定されたジェスチャーは、フィンガーカウントなしで指定された同じジェスチャーよりも優先されます。

もちろん、2本の指のスワイプとタップは、スクロールなどのためにあなたのDEとアプリによってすでに解釈されています。

重要:プログラムをテストしてください。 あなたのカスタムジェスチャー、欠落しているパッケージなどで報告されたエラーをチェックしてください:

# Ensure the program is stopped
libinput-gestures-setup stop

# Test to print out commands that would be executed:
libinput-gestures -d
(<ctrl-c> to stop)

3本の指スワイプ上下左右のジェスチャーと、2本または3本の指のピンチイン/アウトジェスチャーについて、正しいコマンドが報告されていることを確認します。 一部のタッチパッドは4本の指のジェスチャーもサポートしています。 問題がある場合は、以下のトラブルシューティングの手順に従ってください。

効率化のため、ほとんどの場合、 libinput-gesturesはシェルの下で設定されたコマンドを実行しないので、コマンドの置換や拡張などは解析されません。 しかし、これが必要な場合は、実行可能な個人用スクリプト(例: ~/bin/libinput-gestures.shコマンドを追加するだけ~/bin/libinput-gestures.sh あなたがlibinput-gestures.confコマンドとしてそのスクリプト名を設定するまで、手でそれを実行してください。

ほとんどの場合、 libinput-gestures自動的にあなたのタッチパッドデバイスを決定します。 ただし、必要に応じて設定ファイルで指定することができます。 複数のタッチパッドがある場合は、 libinput-gestures指定してすべてのデバイスを使用することもできます。 device設定コマンドについては、デフォルトのlibinput-gestures.confファイルの注意事項を参照してください。

スタートとストップ

あなたのDEのlibinput-gesturesアプリを検索して起動するか、コマンドラインユーティリティを使ってすぐにバックグラウンドで起動することができます:

libinput-gestures-setup start

あなたはバックグラウンドアプリを停止することができます:

libinput-gestures-setup stop

あなたがログインすると(GNOMEやKDEのようなXDGに準拠したDE上で)、アプリケーションをバックグラウンドで自動的に起動させることができます:

libinput-gestures-setup autostart

あなたは自動的にアプリを無効にすることができます:

libinput-gestures-setup autostop

アプリを再起動するか、次の方法で設定ファイルを再読み込みできます。

libinput-gestures-setup restart

あなたはアプリのステータスを以下のようにチェックすることができます:

libinput-gestures-setup status

アップグレードする

# cd to source dir, as above
git pull
sudo make install (or sudo ./libinput-gestures-setup install)
libinput-gestures-setup restart

除去

libinput-gestures-setup stop
libinput-gestures-setup autostop
sudo libinput-gestures-setup uninstall

ワイランドとその他のメモ

このユーティリティはxdotoolを悪用します。残念なことに、X11 / Xorgベースのアプリケーションでのみ動作します。 だからデスクトップ用のxdotoolショートカットは、GNOME 3.22以降のデフォルトであるWaylandのGNOMEでは動作しません。 しかし、 wmctrlデスクトップ選択コマンドはWaylandのGNOME(XWayland経由)で動作するので、このユーティリティーは組み込みの_internalコマンドを追加して、スワイプコマンドを使用してワークスペースを切り替えることができます。 _internal ws_upおよびws_downコマンドはwmctrlを使用して現在のワークスペースを処理し、次のワークスペースを選択します。 これはWaylandとXorg、GNOME、KDE、および他のEWMH準拠のデスクトップで動作するので、 libinput-gestures.confスワイプアップ/ダウンコマンドのデフォルト設定コマンドになりました。 _internalコマンドでできる他のオプションについては、そのファイル内のコメントを参照してください。 残念ながら、 _internalはUbuntu Unityデスクトップ用のCompizでは現在動作していませんので、Unityの明示的な例も参照してください。

もちろん、 xdotoolコマンドはXorgベースのアプリケーション用にXWaylandを介して動作します。たとえば、ページの送り/戻しのスワイプジェスチャーは、デフォルトの設定に従ってWaylandでFirefoxやChromeブラウザで動作します。

WaylandのGNOMEはネイティブに次のようなジェスチャーを実装していることに注意してください。

  • 3フィンチピンチはGNOMEの概要を開閉します。
  • 4指スワイプアップ/ダウンでワークスペースを変更します。

したがって、Waylandでlibinput-gesturesを実行する場合は、 libinput-gestures.confピンチとスワイプのlibinput-gestures.confを変更または無効にして、これらと衝突しないようにしてください。 たとえば、 libinput-gestures.confピンチジェスチャーを2本の指で構成し、3本の指だけスワイプしてネイティブジェスチャーとは独立して動作します。

GNOME on Xorgはネイティブにジェスチャーを実装していません。

拡張された服装

デフォルトのlibinput-gestures.conf設定ファイルでは有効になっていませんが、上記のCONFIGURATIONにリストされているジェスチャを拡張する拡張ジェスチャを有効にすることができます。 libinput-gestures.confコメントアウトされた例を参照してください。

  • 右にスワイプする(例えば、次に開いているブラウザタブにジャンプする)
  • 左にスワイプする(たとえば、前の開いているブラウザのタブにジャンプする)
  • 左にスワイプする(たとえば、現在のブラウザのタブを閉じる)
  • 右にスワイプする(例えば、再度開いて最後に閉じたブラウザのタブにジャンプする)
  • 時計回りにピンチ
  • 反時計回りに挟む

そのため、通常のスワイプを上下左右にそれぞれ90度の間隔で設定するのではなく、上記の4本のスワイプを追加して、それぞれ45度の間隔で合計8回のスワイプジェスチャーを行うことができます。 それは、少なくともいくつかの練習後、あなたが期待するよりもうまく機能します。 つまり、タッチパッドからブラウザのタブを完全に管理することができます。

トラブルシューティング

githubの問題を提起するのではなく、問題に関する情報をほとんど提供しないでください。次のすべてのステップを検討するまで問題を提起しないでください。 問題を提起する場合問題の内容にかかわらず、 libinput-gestures -l出力を含めて、使用している環境と構成を表示してください

  1. libinput-gestures githubリポジトリまたはArch AURから最新バージョンを実行していることを確認してください。

  2. ここでインストール手順を慎重に実行してください。 最も一般的な間違いは、ユーザーを入力グループに追加しておらず、上記のように再ログインしたことです。

  3. おそらく、一時的にカスタム設定を削除して、デフォルト設定を試してみてください。

  4. デバッグモードでコマンドラインでlibinput-gesturesを実行し、3本と4本の指左/右/上/下スワイプ、ピンチイン/アウトを実行します。 デバッグモードでは、設定されたコマンドは実行されず、単に画面に出力されます。

     libinput-gestures-setup stop
     libinput-gestures -d
     (<ctrl-c> to stop)
    
  5. libinput-gesturesをrawモードで実行するには、上記の手順と同じコマンドを繰り返しますが、 -d (– --raw )の代わりに-r (– --raw )スイッチを使用します。 Rawモードは、 libinput debug-eventsイベントから受け取った生のジェスチャーイベントをエコーする以外に何もしません。 POINTER_*イベントは表示されますがPOINTER_*イベントが表示されない場合は、残念ながらタッチパッドやlibinputの組み合わせでは指の動きは簡単に報告されますが、マルチフィンガーのジェスチャは報告されないため、 libinput-gesturesは機能しません。 また、 SWIPEPINCHジェスチャーの区別は、 SWIPEジェスチャーに達する前に、libinput内で完全に行われることにも注意してください。

  6. あなたの特定のタッチパッドデバイスやラップトップ/ PCに関するLinuxカーネルやlibinputの問題をWebで検索してください。 可能であればBIOSをアップデートしてください。

  7. 構成された外部コマンドは、 libinput-gestures用に構成するに、コマンドラインで直接実行したときとまったく同じように動作するようにしてください。 たとえばxdotool手動で実行し、さまざまな引数を試して、必要なものを実行するために必要な引数を正確に~/.config/libinput-gestures.confから、そのコマンド+引数を~/.config/libinput-gestures.confカスタム設定に追加します。 明らかに、マニュアルのxdotoolコマンドが正しく動作しない場合、 libinput-gesturesに関する問題が発生していません。

  8. 問題を提起する場合は、常にlibinput-gestures -l出力を含めて、使用している環境と構成を表示してください 必要に応じて、上の手順4と5の出力も貼り付けます。 デバイスがlibinput-gesturesによって認識されていない場合は、 libinput list-devices (libinput <v1.8のlibinput-list-devices )の完全な出力を貼り付けます。

ライセンス

Copyright(C)2015 Mark Blakeney。 このプログラムは、GNU一般公衆利用許諾契約書の条項に基づいて配布されています。 このプログラムはフリーソフトウェアであり、フリーソフトウェア財団が発行したGNU一般公衆利用許諾契約書、バージョン3のライセンス、またはそれ以降のバージョンのいずれかに基づいて、再配布および/または修正することができます。 このプログラムは有用であることを期待して配布されていますが、いかなる保証もありません。 商品性または特定目的への適合性の暗黙の保証さえも含みません。 詳細については、http://www.gnu.org/licenses/のGNU General Public Licenseを参照してください。







-bulletmark
-, ,

執筆者: