Fusumaのインストールと設定

Linux上でタッチパッド上のジェスチャーをカスタマイズ出来るFusumaというライブラリをRubyGems公開している。 日本語の記事もあまりないので、使い方やカスタマイズの記事を書いてみることにした。

RubyGemsにライブラリを公開した時の記事⇓

Fusumaのインストール

Debian系を利用しているOS(パッケージ管理にaptを利用している)なら下記のapt install等のコマンドはそのまま利用できるはず。

自分はUbuntu16.04ベースのelementary OS lokiをインストールしたDell XPS 13(9360)で利用している。

Archの人はArchWikiに色々書いてもらっているようなのでそちらを参照。
https://wiki.archlinux.org/index.php/Libinput#fusuma

Ubuntu 15.04以降ではFusumaに依存するlibinputを使用することができるが、Ubuntu 14以下の古いバージョンではsynapticsドライバを使用するxswipexSwipeを試してみて欲しい。

インストールされているRubyのバージョンを確認

まず最初にRubyをインストールしてあるか確認。 システムにインストールされているRubyでも問題ない。
(もちろんrbenvやrvm使ってても問題ない)

$ ruby -v

ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
# ↑Rubyの2.4がインストールされていることを確認

依存パッケージのインストール

タッチパッドの入力を読ませる必要があるためlibinput-toolsをインストールする。 (Fusuma内部でlibinput debug-eventsによるデバッグログの出力を利用している)

$ sudo apt install libinput-tools

また、Alt+Left, Alt+Rightなどショートカットを発行できるようにするためxdotoolをインストールする。

$ sudo apt install xdotool

FusumaをRubyGemsからインストール

$ sudo gem i fusuma

iinstallの省略。システムのRubyでインストールする場合はsudoが必要。

(rbenvやrvmでインストールしているRubyを使う場合、$ gem i fusuma でインストール出来る)

Fusumaの設定ファイルを作成する

~/.config/fusuma/config.ymlに設定ファイルを作成する。

$ mkdir -p ~/.config/fusuma
$ touch ~/.config/fusuma/config.yml

エディタで~/.config/fusuma/config.ymlを開き、以下の内容を貼り付ける

swipe:
  3:
    left:
      command: 'xdotool key alt+Right'
    right:
      command: 'xdotool key alt+Left'
    up:
      command: 'xdotool key ctrl+t'
    down:
      command: 'xdotool key ctrl+w'

↑ 3本指スワイプでブラウザの(戻る/進む/タブを作成/タブを閉じる)ショートカットを登録する例。

inputグループにユーザーを追加

Fusumaの実行にはタッチパッドの入力を読み取り出来る権限をユーザーに与える必要がある。

$ sudo gpasswd -a $USER input

gpasswdというコマンドを使ってinputグループにユーザーを追加している。(ここの$USERは実行時のユーザー名が自動的に指定される)

ここで必ずXからログアウト・ログイン(もしくは再起動)を行うこと。

inputグループ追加の反映に必要で、これをやっておかないとfusumaがタッチパッドを認識出来ない。

Fusumaの起動

ターミナルを開き、fusumaと入力してエンター。

$ fusuma

ブラウザ上での3本指スワイプで戻る/進む/タブの作成/タブを閉じるができていればOK。

ターミナルを閉じてもバックグラウンドで実行し続けるようにする

$ fusuma -d

この-dオプションでdemonize(デーモン化) し、ターミナルプロセスから切り離される。そのためターミナルを閉じてもfusumaが有効な状態となる

ジェスチャに割り当てるコマンドを設定する

認識させるジェスチャと割り当てるコマンドを~/.config/fusuma/config.ymlに追加する。

ターミナル上で実行するコマンドを確認する

ワークスペースを切り替えるにはxdotool key ctrl+alt+Upxdotool key ctrl+alt+Downなどが正しく動作するかターミナル上で試してみることをおすすめする。 正しく実行出来たコマンドを~/.config/fusuma/config.ymlに登録する。
この例のワークスペースのショートカットはWindowManagerに依存する。(Gnome 3はワークスペース切替はxdotool key ctrl+alt+Upxdotool key ctrl+alt+Downで上下移動する)

4本指スワイプでワークスペースを切り替える

swipeセクションの最下部に以下を貼り付ける

  4:
    up: 
      command: 'xdotool key ctrl+alt+Down'
    down: 
      command: 'xdotool key ctrl+alt+Up'

設定ファイルを書き換えた場合はfusumaCtrl-ckillコマンドなどで停止させfusumaコマンドで再実行させる。

カスタマイズした4本指スワイプが反映されていればOK。

Fusumaの自動起動設定

再起動の度にターミナルを開いてFusumaコマンドを実行するのは面倒なので自動起動するように設定する。

  1. ターミナルでwhich fusumaを入力し、Fusumaの起動パスをメモする
  2. gnome-session-propertiesを起動し、メモしたパスを入力し末尾に-dオプション(デーモン化)を足しておく

Fusumaのアップデート

$ sudo gem update fusuma

(rbenv, rvmのRubyを利用してインストールした場合はgem update fusumaでOK)

その他のカスタマイズなど

~/.config/fusuma/config.yml上でピンチズーム(pinch in/pinch out)や各ジェスチャに対してのthreshold(しきい値)を設定できる。 連続してピンチインするようなジェスチャの設定も可能。

詳細はFusumaのリポジトリのREADMEを参照。

バグを見つけたら

バグを見つけた場合Github Issueへの登録をお願いしますm(_ _)m

Patreon

あと、寄付プラットフォームのPatreonはじめた。

Fusumaのアップデート内容はPatreonに投稿していく。 直近だと、FluentdのようにRubyGemsを利用したプラグインによる機能追加をサポートする予定で、その内容を紹介していきたい。