Ubuntu で三本指スワイプ

Ubuntu で Synaptics ドライバを使用している TouchPad の二本指や三本指の動作を有効にするためには、「マウスの設定」や gpointing-device-settings で GUI 画面から簡単に設定できる (cf. Mac と Ubuntu を併用する: 設定 TrackPad)。私は ASUS UL20A に Ubuntu 11.04 を入れて使用しているが、これらの設定で以下のような動作が可能である。

  • 二本指
    • 上下左右の動き → 垂直・水平スクロール (VertTwoFingerScroll = 1, HorizTwoFingerScroll = 1)
    • タップ → センタークリック (TapButton2 = 2)
  • 三本指
    • タップ → 右クリック (TapButton3 = 3)1

他にも Control キー + 二本指スクロールの動きで Zoom In/Out の操作ができる。

さらに次のページのガイドに従えば、synclient と X の合成イベントを使って、二本指でのピンチオープン・クローズや三本指スワイプの動作が可能となる。

このページで提供されている Sample Code を実行すれば良いのだが、いくつか事前に導入するものがあったのでメモしておく。なお Ubuntu のバージョンは 11.04 (Natty Narwhal) である。

まず Perl のモジュール (Time::HiRes と X11::GUITest) を導入する必要があるが、これには xorg-dev を入れておく必要があった。

$ sudo apt-get install xorg-dev

これで cpan コマンドからのインストールで各モジュールの make test が通った (→ let me google “how to use cpan command”)。

また SHMConfig を有効にするため以下のように /usr/share/X11/xorg.conf.d/50-synaptics.conf を編集した (このファイルの編集はくれぐれも気をつけてください)。

Section "InputClass"
        Identifier "enable synaptics SHMConfig"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Option "SHMConfig" "on"
EndSection

以上で gestureListener.pl を実行すると目的の動作が有効になる… はずだったが、二本指のピンチオープン・クローズの動作は非常に不安定で、なかなか思うように操作できない。三本指スワイプは一応問題なく動作しているようだったので、この三本指スワイプの部分だけ有効にしておき、起動時に実行するプログラムに追加しておいた。

ただ、ASUS の UL20A のタッチパッドは三本指が自由に動かせるほど十分に大きくはなく、スワイプしにくいのである… Eee PC や Aspire One などで Ubuntu を動かしている方も多くいるだろうが、それらで三本指動作を設定したとすればいっそうコツが必要だと思う。

【追記 2011/10/16】

一応同じマシン (ASUS UL20A) の Ubuntu 11.10 (Oneiric Ocelot), perl v.5.12.4 でも動作を確認した。ただやはりスワイプするには “コツ” がいる…

Footnotes:

1 二本指・三本指タップの動作は私の環境では実際こうなっているが、あるいは逆かもしれない。適宜読み替えてください。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s