開放より2段絞ったところ

徒然なるままに…主にカメラの事を書いていくことになるかと。

Linuxでもトラックパッドのジェスチャーを活用する

f:id:kabegamikamio:20200423173608p:plain
 こんにちは、壁紙です。

 よもや恒例とも言っていいほどの連載間隔ですが、今回もLinux(Ubuntu)を使いやすくするためのライフハックをご紹介します。

 今回は表題の通り、トラックパッドジェスチャー操作をUbuntuでも高度に利用できるようにする試みです。

2020/5/29 apt-getになってたのでaptに変更しました

Linuxタッチパッドに弱い

 誕生から長い月日が流れ、Linuxやその周辺ライブラリ等は進化してきました。おかげで今ではLinuxWindowsMacのように普段使い出来るまでになりました。

 ただLinuxユーザーがどちらかというと少数派になることは否めず、便利な機能はWindowsMacといったメジャーなOSに優先的に供給されるのが現状です。

 実はラップトップには必ずと行っていいほどついているトラックパッドLinuxにとっては鬼門なのです。もちろんカーソル操作やスクロール操作くらいはできます。しかし今や当たり前であるズーム機能や進む・戻る機能などなど、WindowsMacでは標準装備の機能がLinuxにはありません。

諦めるしか無いのか?

 OneNoteのときはそうでしたが、最終的には「妥協」することでゴールしました。やはり公式のツールが無い以上はどこかで「妥協」することは仕方ないのでしょうか?

 明確な解答はありませんが、公式ツールがないとはいえ、有志がクオリティの高い拡張機能を開発してくれていることは確かです。今回もあるネット有志が制作した設定を使わせていただきました。但し書きを見ると「常にうまく動くわけじゃないよ」などの旨書いてありますが十二分なパフォーマンスです。

導入

必要なもの

libinput-tools

 タッチパッド関連の拡張機能は基本的に「libinput」をベースとしています。今回askubuntuに掲載された方法もlibinputの構成ファイルをいじることでジェスチャ操作を可能にしています。

xdotool

 こちらは「コマンドからウィンドウを操作する」ツールです。ウィンドウサイズを変えたり、場所を移動したりできるツールです。デーモンが受け取った操作情報を実際のウィンドウに反映させる役割を担っています。

Ruby

 詳しくはわかりませんが、あの「Ruby」であってると思います。YMLを読み込むのに必要だったりするんですかね?

fusuma

 Linuxでマルチタッチやジェスチャーを実現するためのライブラリです。読み方は「ふすま」であってるようです。漢字で書くと襖ですね。GemというRubyのライブラリのようです。だからRubyが必要なのか。

手順

 まず自分のアカウントを入力グループに追加します。

$ sudo gpasswd -a $USER input

このコマンドを実行し終わったら一度PCを再起動してください。

 次にlibinputをインストールします。

$ sudo apt install libinput-tools 

 Rubyが未導入ならインストールしてください。

$ sudo apt install ruby

 続いてFusumaを入れます。

$ sudo gem install fusuma

 xdotoolは任意で。

$ sudo apt install xdotool

 導入は完了ですが、GNOMEに操作が送られているかどうか確認します。

$ gsettings set org.gnome.desktop.peripherals.touchpad send-events enabled

ジェスチャーを決める

 続いてジェスチャーを定義するファイルを作ります。端末から、

$ cd ~/.config

$ mkdir fusuma  

$ cd fusuma

$ touch config.yml   

$ nano config.yml  

 nanoエディタを呼び出し、YMLの中を書き換えます。コピペでいいそうです。

swipe:
  3: 
    left: 
      command: 'xdotool key alt+Right'
    right: 
      command: 'xdotool key alt+Left'
    up: 
      command: 'xdotool key super'
    down: 
      command: 'xdotool key super'
  4:
    left: 
      command: 'xdotool key ctrl+alt+Down'
    right: 
      command: 'xdotool key ctrl+alt+Up'
    up: 
      command: 'xdotool key ctrl+alt+Down'
    down: 
      command: 'xdotool key ctrl+alt+Up'
pinch:
  in:
    command: 'xdotool key ctrl+plus'
  out:
     command: 'xdotool key ctrl+minus'

threshold:
  swipe: 0.4
  pinch: 0.4

interval:
  swipe: 0.8
  pinch: 0.1

 使うときは管理者権限でfusumaを呼びます(管理者じゃないとうまく行かないっぽいです)
※製作者様のサイトではsudoは使われていません。正しい方法を模索中。

$ sudo fusuma

 最後は「自動起動するアプリ」にfusumaを追加します。まずfusumaをインストールした場所を確認します。

$ which fusuma

 アプリメニューかコマンドにて「自動起動するアプリ」を開きます。コマンドの場合は下です

$ gnome-session-properties

 ここで開いた画面で、コマンドに先程のパスを入力します。パスの終わりに「-d」をつけるので、入力するのは

(fusumaのパス) -d
例、 /usr/local/bin/fusuma -d

とします。名前や説明は任意ですのでなくても問題ありません。

f:id:kabegamikamio:20200423175140p:plain
設定の一例。この場合fusumaのパスは/usr/local/bin/fusuma


 これで完成。

 パラメータをいじったりすれば自分好みに更に近づけられますね。

まとめ

 今回特にターミナルを使う作業が多かったのですが、使いこなせるようになりたいですね。最近ようやくapt-getに慣れてきました。レポジトリ、ライブラリ、色々勉強してみようと思います。