2013/01/30

Linux でノート PC のタッチパッドのクリックロックを有効にするとか

大抵のノート PC に付属し、マウスの代わりになるタッチパッド。

皆さん、タッチパッドでクリックする時はどのようにされているでしょうか?タッチパッドの下にある左ボタンを押します?それともタッチパッドをタップします?クリックする時は好みで、どちらでもいいでしょう。

しかし、ドラッグともなるとタッチパッドの下の左ボタンを押しながらタッチパッド上を指で操作するのは、少々面倒です。ましてや、片手で操作ともなると、左ボタンを押しながらタッチパッドの操作と二つの動作を同時にしなければならないため、さらに操作しづらくなります。
タップだけでドラッグしようにも、Ubuntu や Linux Mint のデフォルトではドラッグ中に指がタッチパッドの端まで行ってしまって…となると、指を一度離す必要がありますが、そうするとドラッグが無効になってしまいます。しかし、 Windows では、ドラッグ中に指を離しても無効にならないクリックロックという機能があります。

このクリックロックを Ubuntu や Linux Mint で有効にする方法を紹介します。
詳細は折りたたみ。


参考にしたのは「Locked Drags (Click Lockページは) in Ubuntu (Linux)」という英語のページ。

ここでは、私の Netbook Ideapad S10-2 での実行例を交えて紹介します。私が端末内で入力したのは行頭に $ がついた所だけです。
  1. 端末を起動
  2. 入力デバイスの一覧を表示
    $ xinput list
    ⎡ Virtual core pointer                     id=2 [master pointer  (3)]
    ⎜   ↳ Virtual core XTEST pointer               id=4 [slave  pointer  (2)]
    ⎜   ↳ ELECOM ELECOM Wireless Laser Mouse       id=10 [slave  pointer  (2)]
    ⎜   ↳ SynPS/2 Synaptics TouchPad               id=13 [slave  pointer  (2)]
    ⎣ Virtual core keyboard                    id=3 [master keyboard (2)]
        ↳ Virtual core XTEST keyboard              id=5 [slave  keyboard (3)]
        ↳ Power Button                             id=6 [slave  keyboard (3)]
        ↳ Video Bus                                id=7 [slave  keyboard (3)]
        ↳ Power Button                             id=8 [slave  keyboard (3)]
        ↳ Sleep Button                             id=9 [slave  keyboard (3)]
        ↳ Lenovo EasyCamera                        id=11 [slave  keyboard (3)]
        ↳ AT Translated Set 2 keyboard             id=12 [slave  keyboard (3)]
        ↳ Ideapad extra buttons                    id=14 [slave  keyboard (3)]
    
    "TouchPad" と書かれたデバイス(id=13)がタッチパッドということになります。
  3. タッチパッド(デバイス ID: 13)のクリックロックに関する設定状態を確認
    $ xinput list-props 13 | grep Lock
     Synaptics Locked Drags (303): 0
     Synaptics Locked Drags Timeout (304): 5000
    
    各項目の意味については以下の通りです。項目の後の括弧内の数字(303 とか 304)は設定 ID です。
    • Synaptics Locked Drags:
      クリックロックの ON/OFF を示します (今は値が 0 なので、OFF 状態です)。
    • Synaptics Locked Drags Timeout:
      クリックロック状態でドラッグされた状態が解除されるまでの時間 (ms) (今は値が 5000 なので、50 秒後にドラッグが解除されます)。
  4. クリックロック機能を有効化
    Synaptics Locked Drags を ON (1) にしたいので、「デバイス ID」と、「設定 ID」(3 の操作で表示された括弧内の数字)で指定します。
    $ xinput set-prop 13 303 1
    
  5. ドラッグが解除されるまでの時間を変更
    これも 4 の操作と同様に「デバイス ID」と「設定 ID」を指定します。今回は 60 秒に設定しましました。勿論、ここは変更しなくても結構です。
    $ xinput list-prop 13 304 6000
    
    これで、クリックロック機能が有効になったはずです。しかし、これでは PC 再起動時に再度設定しなければならないので、PC 起動時に有効になるように設定します。
  6. 上記のコマンドを実行するスクリプトを作成
    1. 好きなエディタを起動
    2. 以下の内容をコピペ
      #!/bin/bash
      
      command=`which xinput`
      if [ "${command}" ]; then
       ${command} set-prop 13 303 1
       ${command} set-prop 13 304 6000
      fi
      
    3. コピペした内容の「デバイス ID」や「設定 ID」を環境に合わせて変更
    4. "start_clicklock.sh" という名前でホームに保存
      (今回はホームに保存しましたが、以降の操作で適宜変更すればどこでも OK です)
    5. 以下のコマンドを実行し、スクリプトに実行権限を付与
      $ chmod +x ~/start_clicklock.sh
      
  7. .desktop ファイルを作成
    1. エディタで新規ファイルを作成
    2. 以下の内容をコピペ
      [Desktop Entry]
      Version=1.0
      Type=Application
      Exec=~/start_clicklock.sh
      Icon=
      Hidden=false
      NoDisplay=false
      Terminal=false
      X-GNOME-Autostart-enabled=true
      Name=
      Comment=
      
    3. 必要箇所を修正
      • Exec: 先ほどのスクリプトのパスを記述します。ホームにあるのであれば変更する必要なし。
      • Name: 自動起動するアプリケーションから閲覧した場合、ここに記述されたものが名前として表示されます。
      • Comment: 自動起動するアプリケーションから閲覧した場合、ここに記述されたものが説明として表示されます。
    4. "start_clicklock.desktop" という名前でホームに保存
  8. 自動起動するように設定
    $ mv ~/start_clicklock.desktop ~/.config/autostart
    
これで、クリックロックが完全に有効になるはずです。

タッチパッドでのドラッグはここで説明する必要はないかもしれませんが、ダブルタップして、その 2 回目のタップで指を付けたら、そのまま離さずに移動させれば ドラッグとなります。クリックロック有効時は、目的の場所まで指を移動させたら、通常通りタップすればドラッグ解除となります。

0 件のコメント:

コメントを投稿